The MongoKitten 5 release


(Joannis Orlandos) #1

Hello everyone,

MongoKitten 5 has been under more active development recently and we ticked off a huge amount of boxes on our todo-list. At this point in time we're planning to change fundamental issues and personally or API technical issues only.

The following features will be picked up by us for 5.0:

  • Re-opening the connection automatically when a connection fails
  • Decimal128 encoding/decoding support
  • Resolving all current TODO/FIXME's
  • Expanding support for the Index APIs
  • Cluster support (without mongodb+srv:// resolution)
  • Reviewing BSONDecoder/Encoder as it's a critical component
  • Reviewing support for Sessions so they can later be leveraged

The following features will be deferred until later releases:

  • TextSearch query helpers
  • GridFS streaming file reading APIs (for HTTP streams)
  • Transactions, casual consistency and retryable writes (leveraging sessions)
  • Document as CustomReflectable

The following features will not be implemented by us according to current planning but we're welcoming PRs:

  • Collation
  • Read/Write concerns
  • Decimal128 APIs so that it integrated with the Swift standard library
  • MongoDB CR authentication
  • X509 certificate based authentication
  • ZLib compression (OP_COMPRESSED)
  • Custom root certificates for SSL

(Joannis Orlandos) #2

A progress update:

Cluster support has been implemented as did most other API's that were required for the release.
The current phase is review. Alongside MK5's release we'll start the beta of MK6 which will lean on NIO 2.0. This will have a very similar API. We plan to change very little about MongoKitten in that release unless essential API problems occur in 5.0.

The new checklist:

Completed tasks that need review

  • BSONEncoder/Decoder (including performance)
  • Sessions APIs
  • Re-opening the connection automatically when a connection fails
  • Decimal128 encoding/decoding support
  • Cluster support (without mongodb+srv:// resolution)

5.0 features

  • Very basic transactions (new)
  • Expanding support for the Index APIs

Welcoming PR's:

  • TextSearch query helpers

  • GridFS streaming file reading APIs (for HTTP streams)

  • Transactions, casual consistency and retryable writes (leveraging sessions)

  • Document as CustomReflectable

  • Collation

  • Read/Write concerns

  • Decimal128 APIs so that it integrated with the Swift standard library

  • X509 certificate based authentication

  • ZLib compression (OP_COMPRESSED)

  • Custom root certificates for SSL