Skip to content

Depend on the BSON module on CPAN #23

@xdg

Description

@xdg

The plan for BSON support in the official MongoDB driver is evolving as follows:

  • BSON v1.0.0 (coming in the next month or so) will provide a complete, well-tested pure-Perl BSON encoder/decoder (BSON::PP) and a full set of BSON type wrapper classes
  • BSON-XS v1.0.0 (coming in the next couple months) will provide a high-performance BSON encoder/decoder (BSON::XS)
  • BSON v1.0.0 will use BSON::XS if installed or else fall back to BSON::PP
  • MongoDB v1.6.0 (coming Q3 2016) will depend on BSON-v1.0.0 in order to provide Decimal128 support, but will still bundle its own XS-based encoder
  • MongoDB v2.0.0 (coming Q4 2016 or early 2017) will remove its bundled encoder and depend solely on the BSON distribution (and thus automatically get either BSON::XS or BSON::PP); legacy MongoDB namespaced type wrappers (e.g. MongoDB::Code) will become empty subclasses of BSON namespaced type wrappers (e.g. BSON::Code).

If Mango were able to make a similar change -- depending on BSON and using (subclassing) its type wrappers, then Mango wouldn't have to support BSON changes over time and could offer both a pure-Perl or XS backend without any extra development.

This might involve some breaking changes or work to ensure compatibility in the type-wrappers, but might be worth it in the long run for Mango users. I'm happy to help think through implications and approaches.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions