==============================
Cyrus IMAP 2.4.0 Release Notes
==============================

Changes to the Cyrus IMAP Server since 2.3.x

*   All databases are now default skiplist, and ctl_cyrusdb will automatically convert database type on startup.
*   make_sha1 and make_md5 are removed (replaced by GUID and reconstruct changes)
*   Charset subsystem rewritten - Unicode 5.2 rather than Unicode 2, and UTF-8 support in sieve.
*   Core mailbox handling code largely rewritten with new APIs, CRC checksums, new locking mechanisms, merging of cyrus.index and cyrus.expunge, inclusion of user \Seen flag, and much more.
*   Replication code largely rewritten to provide better performance, consistency checking, and recovery from "split-brain" scenarios.
*   Added support for LIST-EXTENDED IMAP extension. Removed support for deprecated (compile-time) LISTEXT IMAP extension. Based on work by Martin Konold <martin.konold@erfrakon.de>
*   Added support for ESEARCH IMAP extension.
*   Added support for WITHIN extension to IMAP SEARCH.
*   Added support for ENABLE IMAP extension.
*   Added support for QRESYNC IMAP extension.
*   Added support for URLAUTH=BINARY IMAP extension.
*   Removed legacy IMAP[2|3|4] cruft. We now only support IMAPrev1 + extensions.
*   Added support for marking QoS on traffic. (courtesy of Philip Prindeville <philipp@redfish-solutions.com>)
*   Modified user_deny.db code to open database once at service startup time.
*   ... and hundreds of tiny things too numerous to mention in a short change log ...

:ref:`imap-release-notes-2.4`
