amongoc
Features#
amongoc
is the first official asynchronous MongoDB C driver library, and
targets compatibility with the driver library APIs that are common across other
language implementations.
Because the library needs to be built from the ground-up to support asynchronous
control flow, very little of the existing C driver implementation can be used
directly, meaning that much of the feature set needs to be reimplemented. This
page documents the status of the common driver library APIs within amongoc
.
Since the library is a proof-of-concept, many features have no target release
date, but may be added in some future production-ready version.
Legend
✅ - Feature is implemented and supported
✏ - Feature is partially implemented
❌ - Feature is not implemented in this proof-of-concept
🚫 - Feature is not planned
Feature Status
✏ Connection URIs
✅ Basic URI parsing — Most URI options are recognized, but several are unimplemented
❌ Multi-host URIs — Requires a non-standard URI parser
❌ Programmatic connection parameters — Only connection URI strings are supported.
✏ Connectivity
✅ Hostname resolution
✅ Transport encryption (TLS) — See also: the TLS point below
✏ Connection pooling
✅ Basic connection pooling
❌ Pool options:
minPoolSize
,maxPoolSize
,maxIdleTimeMS
,maxConnecting
❌ SRV discovery
❌ Compression
❌ Authentication
❌ Automatic server selection
❌ Server discovery and monitoring
❌ Load balancing
🚫 Legacy protocol support — e.g.
OP_QUERY
✏ TLS
✅ TLS Connectivity
✅ Client certificates
✅ Custom CA certificates
✅ Respects system CAs
❌ Disable CRLs
❌ OCSP
✏ Data management
✅ Basic CRUD APIs
❌ Collection management
❌ Index management
❌ Bulk write APIs
❌ Data encryption
❌ Retryable operations
❌ Retryable reads
❌ Retryable writes
❌ Client sessions
❌ Transaction support
❌ GridFS
❌ Extended JSON parsing
❌ Client-side monitoring
❌ Command event monitoring
❌ SDAM events (SDAM is not yet supported)