Path: csiph.com!fu-berlin.de!uni-berlin.de!not-for-mail From: "Tobias Oberstein" Newsgroups: comp.lang.python.announce Subject: [Python-announce] zlmdb v25.10.1 released Date: Fri, 07 Nov 2025 10:43:04 -0000 Lines: 73 Approved: python-announce-list@python.org Message-ID: <176251218408.8797.6222025459985300557@mail.python.org> Reply-To: python-list@python.org Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 8bit X-Trace: news.uni-berlin.de 8CDXP1mk/FyjDjCHHQ4eIwOds4iwShC+Xg3Y4hrOhqdA== Cancel-Lock: sha1:YFnrqK0lBKwMgAVyV6mr3kOc8zo= sha256:zP87ShTzZQS4/3NvEpe4jX2LQe/7RounnZ/ukIump00= Delivered-To: python-announce-list@x.python.org Authentication-Results: mail.python.org; dkim=none reason="no signature"; dkim-adsp=none (unprotected policy); dkim-atps=neutral User-Agent: HyperKitty on https://mail.python.org/ X-MailFrom: tobias.oberstein@gmail.com X-Mailman-Rule-Hits: emergency X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; header-match-python-announce-list.python.org-0; header-match-python-announce-list.python.org-1; header-match-python-announce-list.python.org-2; header-match-python-announce-list.python.org-3; header-match-python-announce-list.python.org-4 Message-ID-Hash: 63VV4QS6PZW753CVKMUM3U6VBD4SRZRZ X-Message-ID-Hash: 63VV4QS6PZW753CVKMUM3U6VBD4SRZRZ X-Mailman-Approved-At: Fri, 07 Nov 2025 07:21:49 -0500 X-Mailman-Version: 3.3.11b1 Precedence: list List-Id: Announcement-only list for the Python programming language Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: Xref: csiph.com comp.lang.python.announce:4328 Hi all, I'd like to share a new release of zlmdb: LMDB for Python with PyPy Support, Binary Wheels, and Vendored Dependencies. - **📦 PyPI:** https://pypi.org/project/zlmdb/25.10.1/ - **📖 Docs:** https://zlmdb.readthedocs.io/en/latest/ - **💻 GitHub:** https://github.com/crossbario/zlmdb - **📋 Full Announcement:** https://github.com/crossbario/zlmdb/discussions/73 ## What is zlmdb? zlmdb provides two APIs in one package: 1. **Low-level py-lmdb compatible API** - Drop-in replacement for py-lmdb with the same interface 2. **High-level ORM API** - Type-safe persistent objects with automatic serialization ## Why this release is interesting **🔋 Batteries Included - Zero Dependencies** - Vendored LMDB (no system installation needed) - Vendored Flatbuffers (high-performance serialization built-in) - Just `pip install zlmdb` and you're ready to go! **🐍 PyPy Support** - Built with CFFI (not CPyExt) so it works perfectly with PyPy - Near-C performance with JIT compilation - py-lmdb doesn't work on PyPy due to CPyExt dependency **📦 Binary Wheels for Everything** - CPython 3.11, 3.12, 3.13, 3.14 (including free-threaded 3.14t) - PyPy 3.11 - Linux (x86_64, aarch64), macOS (Intel, Apple Silicon), Windows (x64) - No compilation required on any platform **⚡ Performance Features** - Memory-mapped I/O (LMDB's legendary speed) - Zero-copy operations where possible - Multiple serializers: JSON, CBOR, Pickle, Flatbuffers - Integration with Numpy, Pandas, and Apache Arrow ## Quick Example ```python # Low-level API (py-lmdb compatible) from zlmdb import lmdb env = lmdb.open('/tmp/mydb') with env.begin(write=True) as txn: txn.put(b'key', b'value') # High-level ORM API from zlmdb import zlmdb class User(zlmdb.Schema): oid: int name: str email: str db = zlmdb.Database('/tmp/userdb') with db.begin(write=True) as txn: user = User(oid=1, name='Alice', email='alice@example.com') txn.store(user) ``` ## When to use zlmdb? - ✅ Need PyPy support (py-lmdb won't work) - ✅ Want zero external dependencies - ✅ Building for multiple platforms (we provide all wheels) - ✅ Want both low-level control AND high-level ORM - ✅ Need high-performance embedded database zlmdb is part of the [WAMP project family](https://wamp-proto.org/) and used in production by [Crossbar.io](https://crossbar.io/).