Release notes
What each doc release contains.
The authoritative, commit-level history lives in CHANGELOG.md and on the releases page.
This page summarises each version.
v0.1.0
The first public release. doc is feature-complete across milestones M0 through M9. It is pre-1.0, so the library API is still settling toward 1.0; see the stability page for what that means.
What a .doc file and binary give you:
- The MongoDB document model and query language. BSON documents in collections with ObjectId
_ids, the MQL comparison, logical, element, and array operators, dotted-path access with array fan-out, MongoDB null and missing semantics, and the BSON cross-type total order. - A driver-shaped Go API.
Openreturns aDB;DatabaseandCollectionwalk down to the sameInsertOne,Find,UpdateMany,ReplaceOne,BulkWrite,FindOneAndUpdate,Distinct,Aggregate, and index-view methods the official MongoDB Go driver exposes, with matching result types and cursors. - The aggregation pipeline.
$match,$project,$groupwith the accumulators,$sort,$skip,$limit,$unwind, and$lookupincluding the MongoDB 5.0 pipeline form. - Indexes and a planner. Single-field, compound, multikey, unique, sparse, partial, and TTL indexes, maintained on the commit path, with order-preserving key encoding and a cost-based planner that chooses between collection, index, and covered scans, with
Explain. - Transactions. Multi-document, multi-collection transactions through sessions, under snapshot isolation by default or serializable (SSI) on request, on an MVCC core where readers never block writers.
- Durability and recovery. A WAL-mode pager with a 2Q buffer pool and group commit, crash recovery to the last committed transaction, online backup, incremental backup, WAL archiving, and point-in-time restore.
- A MongoDB wire server.
doc <file> serveanswers the wire protocol somongoshand the official Go, Node, and Python drivers connect unchanged, with SCRAM-SHA-256 authentication, role-based access control, TLS including x509, wire compression, and wire-level sessions and transactions. - Operational tooling.
validate,compact,checkpoint,vacuum,backup,restore,import,export,dump,load,stats,schema, andrekey, plus an interactivemongosh-style shell. - At-rest encryption. Page-level encryption with a passphrase or a raw key, and
rekeyto rotate it. - Hardening. A fuzz suite over the BSON codec, the MQL parser, the update operators, and WAL replay; property tests for MVCC snapshot isolation and recovery; and a crash-injection recovery campaign.
- A versioned, forward-checked file format. The header records a format major and minor version. A file whose major version is newer than the build is rejected with a clear error instead of misread, so an upgrade is safe.
How it was built
The engine was built bottom-up across ten milestones, each compiled, tested, and benchmarked before the next:
- M0 the file format, the storage SPI seam, the WAL substrate, and the WAL-mode pager with a 2Q buffer pool.
- M1 the slotted-page record store with durable inserts and the
_idB-tree. - M2 the BSON codec, the snapshot-isolation MVCC core, and the
Collectionlayer, verified against live MongoDB. - M3 the read query path (MQL, projection, sort, skip, limit), the document-mutation write path (the update operators,
updateOne/updateMany/replaceOne, the find-and-modify family,distinct), and secondary indexes with the cost-based planner. - M4 array updates and
$setOnInsert, bulk writes and upsert, and the aggregation pipeline. - M5 sessions and multi-document transactions, serializable snapshot isolation, and the linearizability corpus.
- M6 the multi-collection engine, the public library API, document validation, capped and TTL collections, and the CLI and shell.
- M7 observability, online checkpoint and vacuum, online backup, WAL archiving and point-in-time recovery, and the bench and soak harnesses.
- M8 the full MongoDB wire server: framing and handshake, the data commands and compression, authentication and RBAC, TLS and at-rest encryption, wire sessions and transactions, and driver-compatibility checks.
- M9 hardened fuzz corpora,
$lookupwith a pipeline, the columnar projection store, crash and recovery at scale, the performance polish, and this first release.