The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

Changes for version v1.0.0 - 2016-07-06

  • !!! Incompatible Changes !!!
    • Internal representation of BSON::Bool changed to make it a subclass of boolean.pm for conistency with other "boolean" type classes on CPAN.
    • All BSON type wrapper classes are now immutable; accessors have been changed to read-only.
  • *** Deprecations ***
    • BSON::Binary deprecated in favor of the new BSON::Bytes module.
    • BSON::Bool deprecated in favor of direct use of boolean.pm.
    • BSON::ObjectID deprecated in favor of the new BSON::OID module.
    • The 'ixhash' option is deprecated in favor of 'ordered' and the resulting tied object is no longer guaranteed to be Tie::IxHash. This will allow future optimization, as Tie::IxHash is extremely slow.
  • API
    • BSON module is now object-oriented, with an API and options directly compatible with the MongoDB driver. Options set as constructor attributes apply to all encoding/decoding, unless options given to methods override them.
    • Added a method for inflation of MongoDB's extended JSON format to BSON type wrapper objects.
  • BSON types
    • Added new type wrappers to cover all BSON Types, including forthcoming Decimal128 (but Decimal128 is still considered 'experimental' and subject to change).
    • Rationalized/harmonized BSON type classes for compatibility with pre-existing MongoDB BSON classes. Classes that could not be made to interoperate are deprecated as listed above.
  • Bug fixes
    • Fixed numerous encoding and decoding bugs revealed by greater test coverage (e.g. fixes to UTF-8 encoding/decoding).
  • Testing
    • Significantly improved test coverage, including tests using a standardized BSON corpus.
    • Skip threads tests before 5.8.5 because of problems with weak references during global destruction.
    • Require newer Path::Tiny with full-featured "basename" method.
  • Prereqs
    • Bump boolean prereq to 0.45 to avoid conflicts between some versions of JSON::XS and older boolean.pm releases that had read-only singletons.
    • Bump Moo prereq to 2.002004 to work around core sub shadowing bug in generated constructor.
  • ~Internal Changes~
    • Pure-perl implementation split into a separate module to avoid its load time in the future when an XS implementation becomes available.
    • Will prefer BSON::XS (when released) or fallback to BSON::PP; PERL_BSON_BACKEND environment variable will override.

Changes for version v0.999.5 - 2016-06-29 (TRIAL RELEASE)

Changes for version v0.999.4 - 2016-06-27 (TRIAL RELEASE)

Changes for version v0.999.3 - 2016-06-23 (TRIAL RELEASE)

Changes for version v0.999.2 - 2016-06-13 (TRIAL RELEASE)

Changes for version v0.999.1 - 2016-06-08 (TRIAL RELEASE)

Changes for version v0.999.0 - 2016-06-01 (TRIAL RELEASE)

Modules

BSON serialization and deserialization
Legacy BSON type wrapper for binary data (DEPRECATED)
Legacy BSON type wrapper for Booleans (DEPRECATED)
BSON type wrapper for binary byte strings
BSON type wrapper for Javascript code
BSON type wrapper for MongoDB DBRefs
BSON type wrapper for Decimal128 (EXPERIMENTAL)
BSON type wrapper for ordered documents
BSON type wrapper for Double
BSON type wrapper for Int32
BSON type wrapper for Int64
BSON type wrapper for MaxKey
BSON type wrapper for MinKey
BSON type wrapper for Object IDs
Legacy BSON type wrapper for Object IDs (DEPRECATED)
Pure Perl BSON implementation
BSON type wrapper for pre-encoded BSON documents
BSON type wrapper for regular expressions
BSON type wrapper for strings
BSON type wrapper for date and time
BSON type wrapper for timestamps
Helper functions to wrap BSON type classes