twotree /

Filename Size Date modified Message
35.1 KB
753 B
13.0 KB


twotree is a compatibility layer to make it easier to write plugins for both libpurple2 and libpurple3. The name comes from the phrase "a couple two tree" which is meant to mean "a couple two or three". It's one of those weirdly regional phrases. In our case, it works great, because you get support for a couple libpurple releases, two, and three.


Copy purplecompat.h into your plugin and you're good to go. Now you can use the purple3 API and it'll work (for the most part) on purple2 as well.

There is a #define PURPLE_TWOTREE_VERSION that can be used to track whether or not a new version has been released. It follows DNS serial syntax. That is YYYYMMDDNN where NN is the nth update for that given day.