Home Download FAQ / Knowledge Base Screenshots Documentation Support Roadmap

Why Don't You Build A Store Driver For MySQL, Postgres, Oracle, etc.?

You're probably asking this, because...

Accessing your email

Although there are solutions available that use SQL database backends, Citadel does not. You wouldn't want to access the database on an SQL basis on dbmail either, since it would harm the application's abstraction model. However, Citadel does offer several ways to access your email without hurting that principle. The preferred way is to use the Citadel Protocol as an API to access your email. If you want to get a more detailed picture, have a look at sample client source code. The other ways would be using IMAP to access them.

Backing up your data

There are several ways to do so. Both of them require a service window. For an architecture-independent backup (if you were to move from a SPARC box to an Intel one, for example) Citadel has data export and import commands. The quicker way may be copying the Berkeley DB files within the data/ directory, which you can combine with LVM or Btrfs snapshots to make the process perfect.

How Citadel stores your data

Citadel uses Berkeley DB because it is powerful, reliable, and offers the best matching access and tightest integration to Citadel's data model.

Berkeley DB is a "NoSQL" database, not an RDBMS. Therefore there is no schema layer, and that is why it is unlikely that a MySQL store driver will be built in the foreseeable future.

Any other store drivers would need to be contributed by someone in the community. And although we currently have no plans to write additional store drivers ourselves, we have kept the API clean enough that it is possible to do so.

There are no social media links here. Enjoy a friendly Citadel community instead. Or go outside.