The libmdbx project has unveiled a new development strategy and announced a change in the code development and distribution model. While the libmdbx source code will remain open and offer high-quality free support, development will now be conducted within the team with the result published only in amalgamated form. The development strategy is centered around the long-anticipated MithrilDB project, which aims to support multiple database formats under a common API. The project emphasizes its commitment to supporting old databases as long as users require.
Previously, all source code, test frameworks, and internal documentation were publicly available. However, now only the amalgamated source code of the library is accessible. The team has promised to provide an extended example using the C++ API as a simple smoke test. The reasons for these changes are detailed in comments embedded in the presentation slides, with the focus on delivering the library in its most complete form without unnecessary dependencies for development and testing.
In addition to outlining the capabilities of libmdbx, the new database format introduced key features such as:
- An improved prefix tree integrated with the Merkle tree on a basic B+tree structure, resembling the Patricia Tree but with unique technical specifications.
- Support for long keys, prefix compression, continuous element numbering for precise assessment, and large blob support in streaming mode.
- Optional database file-to-memory mapping, encryption, and data compression support.
- Introduction of a new API leveraging SWIG for automatic generation of bindings for popular programming languages.
- Replication support drawing from experience gained during the development of ReOpenLDAP.
During a live presentation, the team also expressed interest in merging various implementations written in different languages (such as C, C++, and Rust) within MithrilDB, ensuring seamless cross-interoperability among applications written in these languages.
Among the features currently in development and set to be released soon is “Search with caching“. This feature involves storing data pointers directly inside the database for quick relevance checks. By stopping the search at unchanged pages since the last check, the search with caching significantly accelerates the process, potentially achieving speeds tens of thousands of times faster. Even in the worst-case scenario, the