Pidgin

Pidgin（前称Gaim）是一个跨平台的即时通讯用户端，使用GNU通用公共许可证发布。这款软件支援多个现时常用的即时通讯协定，让使用者可以用同一个软件登入不同的即时通讯服务。

截至2007年，Pidgin约有300万名使用者。

## 功能

<image>

Pidgin支援多个操作系统，包括Windows和其他类Unix系统，例如Linux、BSD和AmigaOS。软件本身支援NSS，为支援用户端和服务器之间加密通信的协定提供基础。除此之外，使用者可以安装插件来得到更多功能。

Pidgin包含了一般即时通信软件的功能，例如分页聊天视窗、联络人名单、文件传输、聊天记录的功能。

使用者可以选择是否开启分页聊天视窗功能，聊天视窗也提供按钮给使用者修改讯息的格式，例如变成粗体或者把文字改变为橙色。

使用者可以在“Buddy List”新增联络人（在Pidgin中叫“Buddy”）或者其他IRC频道。使用多个协定的联络人可以被归入同一个联络人处理，使用者更可以为他们设定昵称。

使用者可以透过“Buddy Pounces”，使Pidgin在某些特定的条件进行预先设定好的操作，例如在朋友Chris Wong上线时向他发送“你好！”。

Pidgin也支援文件传输，各种功能包括暂停、续传、取消。所有的传输皆可在同一个视窗管理。然而，使用MSN协定传输文件的时候，所有资料都经MSN的服务器转发，并非点对点传输，结果传输速度十分慢。一个Google Summer of Code专案希望在2007年解决这一个问题。

其他功能包括可自订的Emoji、拼字检查等。

### 协定支援

#### 官方开发

- .NET Messenger Service
- Bonjour（苹果公司的）
- Internet Relay Chat
- XMPP ( Facebook Chat, ...)
- （AIM、ICQ、.Mac）
- Sametime
- Session Initiation Protocol（SIP）
- Yahoo! Messenger
- Zephyr

#### 第三方开发

- Internet CB (ICB) Network
- Napster
- NateOn
- QQ
- SNPP
- Skype
- Tlen
- WinMX
- Xfire
- 飞信

### 加密传输

Pidgin可以透过安装不留记录组件（OTR）和Pidgin-Encryption来实作加密传输功能。

## 历史

<image>

这个应用程序本来由Mark Spencer，一名奥本大学的二年级学生，所编写。程式雏型为一款以Linux上的GTK+工具开发的AOL即时通讯用户端。那时候，它的名称是GAIM（GTK+ AOL即时通讯）。这项工作并不是由逆向工程来完成，而是透过AOL在网站上发布的技术文件来开发。而事实上，一些AOL的员工也曾经协助GAIM的开发工作。在此之后，GAIM陆续加入对其他即时通讯协定的支援。

Pidgin的开发者然后开始分离核心代码；将负责通讯部分与图形使用者界面部分分开。完成分离后，开发者将有可能以自己的图形程式库编写自己的用户端界面。分离后的核心程式库将被称为“libpurple”（原称“libgaim”）；这个程式库已被Adium与Proteus这些用户端使用。

而新版也解决了以往登入Yahoo! Messenger时，中文显示乱码的问题（需修改账号设定中的编码为UTF-8）。

### 名字争议

由于AOL的抗议，开发团队把名字中的“AIM”改为小写－Gaim。但随着AOL即时通讯日渐受欢迎，AOL把“AIM”一词注册作为商标，之后，AOL和Gaim开发人员之间展开一段长时间的法律诉讼。

在2007年4月6日，开发团队宣布他们和AOL的最终协议：Gaim 改名为Pidgin，libgaim 改名为libpurple，而gaim-text 变为finch。开发团队之所以选取“Pidgin”是因为这个字能够表达不同语言的使用者能共同沟通的概念。另一方面“Pigeon”是一种受欢迎的猎鸟和传信鸽。至于“purple”取自“IM protocol plugin”（即时通讯协定插件）。

由于法律问题，2.0版本一直被冻结在beta开发阶段。在事件得圆满的解决后，团队宣布正式版Pidgin 2.0.0大约会在2007年4月8日起的两周内发布。然而，Pidgin 2.0.0最后未能如期推出。4月22日开发团队解释问题在于未能处理好用作存放用户资料的资料夹－“.gaim”的名称问题。

第一次以“Pidgin”来命名的版本2.0.0最终在2007年5月3日正式发布，并以全新的图形设计示人。

## 批评

- 由于部分专利通讯协定是使用逆向工程来开发，Pidgin和有关官方用户端在功能上会有所出入。
- 密码是储存在一个未经加密的纯文字档案中。任何人只要有权限打开有关档案，即可得知密码。开发者认为因为Pidgin是一个开源的软件，任何人都可以得知加密的密码用的钥匙，所以加密有关档案是没有意义的。）一个Google Summer of Code 2008专案正尝试透过libpurple经由第三方的密码库读取密码（例如GNOME Keyring、Kwallet，或 Apple钥匙串访问）
- 2.6之前的Pidgin版本并不支援任何形式的视讯或者语音对话。开发人员正考虑加入有关功能。曾经有人打算同步开发gaim-vv函式库，但最后开发者宣布放弃2.6及之后的Pidgin虽然支持语音/视频聊天但只能在Linux/Mac OS X上使用，并不支持Windows。
- 在更换布景主题的时候，随Pidgin安装的GTK+有时会和GIMP发生冲突。不过后来发现与GIMP的错误有关，而非设定档的问题。
- Pidgin未有自己的布景主题系统，但是它的姊妹计划“Adium”却有。另一方面，GTK+ 有时会提供一个“Theme Selector”给使用者使用。
- MSN协定不支援读取或设定官方版本拥有的“个人讯息”功能，使用者须要安装第三方插件来达成有关功能。在2007年7月13日，其中一名开发人员约翰在他的网志上表示，经过开发团队多年的努力，2.5.0版本将采用MSNP15，届时Pidgin就能够支援“离线讯息”、“个人讯息”等官方版本已经拥有的功能。
- 2.4版本之后，使用者再无法自行改变文字输入字段的高度，而是根据已输入资料的多少来自动调节，最多至视窗大小的一半。部分使用者认为这是一个烦人的功能。

## 相关产品

- Adium和Proteus都是使用libpurple为基础的Mac OS X多协定即时讯息用户端。
- ScatterChat是一个基于Pidgin的加密即时讯息用户端。
- Meebo使用libpurple开发网页式即时讯息服务用户端。
- OpenWengo是以SIP为基础的VoIP用户端，支援即时讯息。
- PhoneGaim是以SIP为基础的VoIP用户端，同样以GPL发布。
- Carrier是一个以开发官方版本缺乏的功能为目标的分支。

## 外部链接

- Pidgin官方网站** Planet Pidgin（官方开发团队的网志）
- Pidgin计划（SourceForge上的专案页）

## 参见

- Empathy——可视作Pidgin的继任
- 即时通讯软件列表、即时通讯软件比较
- 即时通讯协定比较
- XMPP协议的客户端软件列表

## 基本资料

- 域：

<image>

- 作者：Sean Egan
- 发行日期：1999年
- 编程语言：C（C#、Perl、Python和Tcl用于插件的编写）
- 平台：跨平台
- 语言：多国语言
- 类型：即时通讯用户端
- 许可协议：GNU通用公共许可证