CLMDB is a SwiftPM package wrapper for LMDB, a key-value database storage solution created for fast read and write processes. You can read more about this project at: http://www.lmdb.tech/doc.
This wrapper provides exposure of the library's C interfaces to Swift, allowing a Swift application or service to easily create, read, and manage database instances of LMDB.
Changes in LMDB will be pulled into this repository as the upstream project evolves. The LMDB repository is mirrored here: https://github.com/LMDB/lmdb.
Swift LMDB makes two local changes to LMDB in order to pass thread sanitization checks in IndexStoreDB. These changes are:
- Use
_Atomic
instead ofvolatile
for transaction types - Build with POSIX mutexes enabled and robust mutexes disabled on Linux and macOS
The included LMDB database project is released under The OpenLDAP Public License. This same license applies to the Swift code included in this repository.