GSoC/GCI Archive
Google Summer of Code 2010

Pidgin, Finch and libpurple

Web Page:

Mailing List:

Pidgin is an instant messaging program which lets you log in to accounts on multiple chat networks simultaneously. It runs on Windows, Linux, and other UNIX operating systems. Pidgin is compatible with the following chat networks out of the box: AIM, ICQ, Google Talk, Jabber/XMPP, MSN Messenger, Yahoo!, Bonjour, Gadu-Gadu, IRC, Novell GroupWise Messenger, QQ, Lotus Sametime, SILC, SIMPLE, MySpaceIM, and Zephyr. It is written in C and makes heavy use of GLib and GTK+.






Finch is a command line instant messaging program. It also lets you log in to accounts on multiple chat network simultaneously, and it is compatible with the same chat networks as Pidgin. It is written in C and makes heavy use of GLib and ncurses.




Pidgin and Finch utilize a programming library called libpurple in order to connect to the various IM networks. libpurple is also used by the OS X IM application Adium (although Adium is a separate project and not affiliated with Pidgin/Finch/libpurple). It is written in C and makes heavy use of GLib.








  • GSOC Proposal — Libpurple detachable sessions Proposal for the “libpurple detachable sessions” project: details of the project and my proposed approach, the scheduled timeline, my motivations for doing this, and who am I and what I have done. The goal of this project is to allow a user to have several running libpurple based applications simultaneously, all sharing the same the same data and connections.
  • Improving the ICQ implementation in Pidgin Even though Pidgin supports ICQ, it lags behind the official client in many respects. Some features are missing altogether; some are present, but their implementation is lacking. What I'd like to do with this project is to bring Pidgin as close as possible to the official client in terms of user experience.
  • MSN-prpl refactor and SLP rewrite One of the reason people avoid to fix errors or implement new features in msn-prpl is because the code is a really mess.