Development FAQ
What format is the song database in?
It's a pickled list of AudioFile instances.
Why don't you use SQLite for the song database?
Although the song data Quod Libet stores would benefit from a relational database, it does not have a predefined schema, and opts to let users define their own storage keys. This means relational databases based on SQL, which require predefined schemata, cannot be used.
Why did the plugin interface change so much between 0.18 and 0.21?
The old plugin interface was very fragile in some places, and had a lot of unintended side effects (for example, it had to scan for plugins by calling every function in a module). The new one is only slightly more complicated (most old plugins can be ported simply by subclassing the new type), but is much more extensible for those interested in doing advanced GTK+ tricks. It also lets Ex Falso avoid loading event plugins, which don't make any sense for it.
