Pre-Alpha Version of Pidgin 3.0 Released

Pidgin 3.0 Experimental 1 instant messaging apps land with GTK 4 and Adwaita support, modernized APIs, and more. Not for end-users yet.

The development team behind the once-famous Pidgin instant messaging client has just unveiled the first experimental release of Pidgin 3.0. And if you’re wondering why that’s so exciting, it’s because it marks the end of a 16-year break in development.

Immediately, however, it should be noted that this pre-alpha version (officially labeled 2.90.0) is far from ready for the broader public but signals substantial progress toward the official 3.0 release, which the Pidgin developers say will be suitable for end users.

With that said, here is the list of the most important developments in Pidgin 3.0 Experimental 1:

General Updates

  • Internationalization: Preliminary translation work has begun. All translatable strings have been marked, but no translations are ready yet.
  • Modern Code Base: The code has been revamped to be more accessible, aiming to attract fresh contributors.
  • Meson Build System: Pidgin now uses Meson for building; details can be found in the source README.
  • Integration of External Libraries: New or existing external libraries have replaced several internal components.
  • No Rust Rewrite: Despite some speculation, the developers confirm they will not rewrite any portion in Rust.

libpurple Highlights

  • API Renaming: AIM-centric terms are gone; “Buddy” is now “Contact,” for example, and “Chat” is now “Channel.”
  • Plugin Overhaul: GPlugin now manages plugins, so existing plugins require porting or complete rewrites.
  • GObject-Based Architecture: By adopting GObject, the API is fully introspectable.
  • Removing Windows-Specific Code: Redundant Windows-only code has been stripped out.
  • XDG Compliance: The .purple directory is migrated to XDG_CONFIG_HOME/.
  • Secure Password Storage: No more plain-text passwords; integration with libsecret, KWallet, wincred, and keychain is in place.
  • SQLite for Complex Data: Conversation history and other complex data now reside in an SQLite database.
  • Preferences via GSettings: Configuration details have shifted to GSettings.
  • Documentation via gi-docgen: The new docs are posted at Purple – 3.0.

Pidgin Client

  • GTK 4 and Adwaita: The interface has transitioned to GTK 4, though significant UI polishing remains on the to-do list.
  • Consolidated Windows: The contact list and conversation windows are now combined in a single interface window.
  • Accessibility Delayed: The team is postponing accessibility improvements until the UI design is finalized.
  • GTK Builder XML: Much of the UI is generated from XML, simplifying future adjustments.

Finch Status

  • Temporarily Removed: Finch, the text-based interface, is on hold. The team might reintroduce it when Pidgin’s primary interface becomes more stable.

Protocol Updates

  • New Directory Structure: Protocol modules have been moved to a top-level “protocols” directory.
  • Redesigned Implementations: Classic protocols are removed, allowing modern replacements under active development.

Bonjour

  • Based on the new XMPP library called Xeme. Currently non-functional, serving as an early stub.

Demo

  • A specialized protocol plugin to illustrate and test new features in Pidgin 3.

IRCv3

  • Implemented via Ibis (an IRCv3 library) with SASL support from HASL.
  • Functional in many respects, though a few features are still in progress.
  • Includes support for IRC enhancements such as account-tag, capability negotiation, message ids, and typing client-only tag.

XMPP

  • Another from-scratch implementation using Xeme, backed by HASL for SASL.
  • Currently, it is just a stub; expect more features as development continues.

If you’re feeling adventurous, you can now download Pidgin 3.0 Experimental 1 from SourceForge. The “README” file in the package offers detailed instructions for those planning to build from source.

For more information, see the announcement.

Bobby Borisov

Bobby Borisov

Bobby, an editor-in-chief at Linuxiac, is a Linux professional with over 20 years of experience. With a strong focus on Linux and open-source software, he has worked as a Senior Linux System Administrator, Software Developer, and DevOps Engineer for small and large multinational companies.