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年解決這一個問題。

其他功能包括可自訂的表情符號、拼字檢查等。

### 協定支援

#### 官方開發

- .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通用公共許可證