Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore(deps): bump bson from 4.7.2 to 6.4.0 #449

Closed

Conversation

dependabot[bot]
Copy link
Contributor

@dependabot dependabot bot commented on behalf of github Mar 4, 2024

Bumps bson from 4.7.2 to 6.4.0.

Release notes

Sourced from bson's releases.

v6.4.0

6.4.0 (2024-02-29)

The MongoDB Node.js team is pleased to announce version 6.4.0 of the bson package!

Release Notes

BSON short basic latin string writing performance improved!

The BSON library's string encoding logic now attempts to optimize for basic latin (ASCII) characters. This will apply to both BSON keys and BSON values that are or contain strings. If strings are less than 6 bytes we observed approximately 100% increase in speed while around 24 bytes the performance was about 33% better. For any non-basic latin bytes or at 25 bytes or greater the BSON library will continue to use Node.js' Buffer.toString API.

The intent is to generally target the serialization of BSON keys which are often short and only use basic latin.

Fixed objectId symbol property not defined on instances from cross cjs and mjs

We do recommend that users of the driver use the BSON APIs exported from the driver. One reason for this is at this time the driver is only shipped in commonjs format and as a result it will only import the commonjs BSON bundle. If in your application you use import syntax then there will be a commonjs and an es module instance in the current process which prevents things like instanceof from working.

Also, private symbols defined in one package will not be equal to symbols defined in the other. This caused an issue on ObjectId's private symbol property preventing the .equals method from one package from operating on an ObjectId created from another.

Thanks to @​dot-i's contribution we've changed the private symbol to a private string property so that the .equals() method works across module types.

Deserialization performance increased

If BSON data does not contain Doubles and UTF8 validation is disabled the deserializer is careful to not allocate data structures needed to support that functionality. This has shown to greatly increase (2x-1.3x) the performance of the deserializer.

Thank you @​billouboq for this contribution!

Improve the performance of small byte copies

When serializing ObjectIds, Decimal128, and UUID values we can get better performance by writing the byte-copying logic in Javascript for loops rather than using the TypedArray.set API. ObjectId serialization performance is 1.5x-2x faster.

Improved the performance of serializing and deserializing doubles and bigints

We now use bit shifting and multiplication operators in place of DataView getX/setX calls to parse and serialize bigints and a Float64Array to convert a double to bytes. This change has been shown to increase deserializing performance ~1.3x and serializing performance ~1.75x.

Use allocUnsafe for ObjectIds and Decimal128

For small allocations Node.js performance can be improved by using pre-allocated pooled memory. ObjectIds and Decimal128 instance will now use allocUnsafe on Node.js.

Features

  • NODE-5909: optimize writing basic latin strings (#645) (ec51256)

Bug Fixes

  • NODE-5873: objectId symbol property not defined on instances from cross cjs and mjs (#643) (4d9884d)

... (truncated)

Changelog

Sourced from bson's changelog.

6.4.0 (2024-02-29)

Features

  • NODE-5909: optimize writing basic latin strings (#645) (ec51256)

Bug Fixes

  • NODE-5873: objectId symbol property not defined on instances from cross cjs and mjs (#643) (4d9884d)

Performance Improvements

  • NODE-5557: move DataView and Set allocation used for double parsing and utf8 validation to nested path (#611) (9a150e1)
  • NODE-5910: optimize small byte copies (#651) (24d035e)
  • NODE-5934: replace DataView uses with bit math (#649) (6d343ab)
  • NODE-5955: use pooled memory when possible (#653) (78c4264)

6.3.0 (2024-01-31)

Features

  • NODE-3034: deprecate number as an input to ObjectId constructor (#640) (44bec19)
  • NODE-5861: optimize parsing basic latin strings (#642) (cdb779b)

6.2.0 (2023-10-16)

Features

  • NODE-5040: add color to BSON inspect (#635) (7802c66)

Bug Fixes

  • NODE-5640: BsonVersionError improve message clarity (#629) (eb98b8c)

6.1.0 (2023-09-12)

Features

  • NODE-5594: add Decimal128.fromStringWithRounding() static method (#617) (6fee2d5)

Bug Fixes

... (truncated)

Commits
  • b64e912 chore(main): release 6.4.0 [skip-ci] (#644)
  • 78c4264 perf(NODE-5955): use pooled memory when possible (#653)
  • 6d343ab perf(NODE-5934): replace DataView uses with bit math (#649)
  • 24d035e perf(NODE-5910): optimize small byte copies (#651)
  • f53db84 chore(NODE-5830): update js-bson dependencies (#648)
  • 9a150e1 perf(NODE-5557): move DataView and Set allocation used for double parsing and...
  • ec51256 feat(NODE-5909): optimize writing basic latin strings (#645)
  • 22e9b6e test(NODE-5922): replace hardcoded reference to bson#main (#647)
  • e18b774 ci(NODE-5899): remove unneeded stats from benchmark results (#646)
  • 4d9884d fix(NODE-5873): objectId symbol property not defined on instances from cross ...
  • Additional commits viewable in compare view
Maintainer changes

This version was pushed to npm by dbx-node, a new releaser for bson since your current version.


Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot merge will merge this PR after your CI passes on it
  • @dependabot squash and merge will squash and merge this PR after your CI passes on it
  • @dependabot cancel merge will cancel a previously requested merge and block automerging
  • @dependabot reopen will reopen this PR if it is closed
  • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

Bumps [bson](https://github.com/mongodb/js-bson) from 4.7.2 to 6.4.0.
- [Release notes](https://github.com/mongodb/js-bson/releases)
- [Changelog](https://github.com/mongodb/js-bson/blob/main/HISTORY.md)
- [Commits](mongodb/js-bson@v4.7.2...v6.4.0)

---
updated-dependencies:
- dependency-name: bson
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot bot added the dependencies Pull requests that update a dependency file label Mar 4, 2024
Copy link
Contributor Author

dependabot bot commented on behalf of github Mar 18, 2024

Superseded by #454.

@dependabot dependabot bot closed this Mar 18, 2024
@dependabot dependabot bot deleted the dependabot/npm_and_yarn/develop/bson-6.4.0 branch March 18, 2024 22:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
dependencies Pull requests that update a dependency file
Projects
None yet
Development

Successfully merging this pull request may close these issues.

0 participants