This is just a general TODO. It does not imply a roadmap, just things that I am thinking about and need a place to write them down.
- $(NETCAT) => nc has different options on difference hosts. For example, on debian we need to do something like (echo -n '' | nc -q 0 ...) where as with GNU nc we can just do nc ... </dev/null
- [M2] Shutdown clients when we no longer need them (on push())
- [M2] Try to keep more recently used (if healthy) and discard old ones.
See Replica Sets and Sharded Cluster.
- [M2] Detect commands as cursors if possible.
- [M2] GridFS support adding new mongoc_gridfs_t structure. We can add mongoc_client_get_gridfs() to access the structure in a similar fashion to get_collection().
- [M2] The server is getting new bulk commands for insert/update/etc. If we detect that the server supports these, use them instead.
- [M1] Needs more testing on reconnection strategies.
- [M1] Occasionally perform reconnect when in unhealthy state and time period has elapsed. This means keeping the monotonic time we last performed a reconnect.
- [M1] Don't discard ping times when reconnecting to nodes.
- [M1] Still needs implementation, reconnect strategies.
- [M2] Finish support for mongoc_stream_tls_t.
- [M2] Apply TLS stream if ssl=true in URI.
- [M2] X509 Certificate Authentication
- [M2] Kerberos Authentication
- [M1] mongoc-stat is really useful, needs documentation.
- [M1] man pages for basic documentation.
- [M1] Generate API docs.
- [M2] Build an example application using the library. Probably something basic that uses HTTP to push data into MongoDB.
- [M4] mongoc_client_async_t
- [M4] mongoc_collection_async_t
- [M4] mongoc_database_async_t
- [M4] mongoc_client_pool_async_t
- [M4] Be careful with timeouts
- [M4] Support for GLib main loop, libev, etc.