Releases: bufbuild/protobuf-es
Releases · bufbuild/protobuf-es
Release list
v2.14.0
What's Changed
This is a performance release of protobuf-es. We've made substantial improvements to the runtime, while also reducing bundle size by 5%. Here are the results from our benchmarks (compared against v2.13.0):
| fixture | toBinary | fromBinary | toJson | fromJson |
|---|---|---|---|---|
| general | 4.66x | 1.46x | 2.29x | 1.67x |
| scalar | 2.91x | 1.96x | 1.74x | 1.64x |
| repeated-scalar | 4.37x | 1.53x | 3.06x | 1.65x |
| map-scalar | 4.43x | 1.44x | 2.42x | 2.28x |
| repeated-message | 5.27x | 1.89x | 1.71x | 1.63x |
| map-message | 5.21x | 1.95x | 1.81x | 1.66x |
| user-tiny | 1.44x | 1.99x | 1.49x | 1.50x |
| user-normal | 5.24x | 1.99x | 2.33x | 2.03x |
Individual changes are below:
- Add benchmarks by @ajeetdsouza in #1474
- Optimize BinaryWriter with a growable buffer by @jlucaso1 in #1108
- Use Set to check for WKTs by @ajeetdsouza in #1475
- Cache DataView in BinaryWriter by @ajeetdsouza in #1483
- Use native String.prototype.isWellFormed() when available by @ajeetdsouza in #1479
- Drop support for Node.js 20 by @timostamm in #1488
- Use native toBase64 / fromBase64 when available by @ajeetdsouza in #1477
- Avoid allocations in varint64 by @ajeetdsouza in #1498
- Compile descriptors to closure trees by @ajeetdsouza in #1491
- Reserve bytes for lenPrefix in strings / fork-join by @ajeetdsouza in #1490
- Fix byte size estimate in base64 fallback by @ajeetdsouza in #1504
- Define descriptor toString instead of assigning it by @ltrouton in #1507
- Use setFromBase64 instead of fromBase64 by @ajeetdsouza in #1508
- Compile and cache create() function by @ajeetdsouza in #1499
- Add ASCII fast paths by @ajeetdsouza in #1509
New Contributors
- @anuraaga made their first contribution in #1478
- @jlucaso1 made their first contribution in #1108
- @ltrouton made their first contribution in #1507
Full Changelog: v2.13.0...v2.14.0
v2.13.0
What's Changed
- Add support for the Protobuf Text Format by @timostamm in #1450
- Support enums with erasable syntax by @timostamm in #1464
- Add readMaxBytes option to sizeDelimitedDecode by @ajeetdsouza in #1468
Full Changelog: v2.12.1...v2.13.0
v2.12.1
What's Changed
- Add GitHub publish workflow with trusted publishing by @ajeetdsouza in #1406
- Docs: fix buf logo with dark mode by @sudorandom in #1417
- Fix dual package type hazard by @timostamm in #1421
- Add recursion limit to fromBinary and fromJson by @timostamm in #1436
- Apply recursion limit to BinaryReader.skip by @timostamm in #1441
- Fix -0.0 serialization for implicit-presence float and double fields by @timostamm in #1443
- Fix open enum range checks by @timostamm in #1442
- Reject duplicate keys when parsing JSON by @timostamm in #1446
New Contributors
- @ajeetdsouza made their first contribution in #1406
- @sudorandom made their first contribution in #1417
Full Changelog: v2.12.0...v2.12.1
v2.12.0
What's Changed
- Gracefully handle Number for BigInt fields by @timostamm in #1346
- Support
exactOptionalPropertyTypesby @haines in #1371 - Fix UTF-8 validation for proto3 and edition feature
utf8_validationby @emcfarlane in #1386 - Fix binary tag parse validation to reject overlong values by @emcfarlane in #1387
- Fix Any JSON encoding for messages without a custom JSON representation by @emcfarlane in #1388
- Update to protocolbuffers/protobuf v34.0 by @emcfarlane in #1385
- Update conformance tests to protocolbuffers/protobuf v34.0 by @emcfarlane in #1391
New Contributors
- @emcfarlane made their first contribution in #1386
Full Changelog: v2.11.0...v2.12.0
v2.11.0
What's Changed
- Support Bun by @timostamm in #1343
- Add plugin option
elide_plugin_version=trueby @timostamm in #1336 - Add tests for duplicate field ordering and unknown field errors when performing JSON deserialization by @hudlow in #1132
- Remove dead branches for null handling in fromJson by @hudlow in #1315
- Fix validation for FieldMask (de-)serialization to/from JSON by @hudlow in #1323
- Cache field maps for fromJson() by @hudlow in #1334
Full Changelog: v2.10.2...v2.11.0
v2.10.2
What's Changed
- Update to protocolbuffers/protobuf v33.2 by @timostamm in #1308
- Permit
google.protobuf.Value.null_valuein map values in ProtoJSON by @timostamm in #1314
Full Changelog: v2.10.1...v2.10.2
v2.10.1
v2.10.0
What's Changed
- Cache list of sorted fields in WeakMap by @cptpcrd in #1240
- Add functions durationFromMS and durationMs by @noahbald in #1244
- Add section for google.protobuf.Duration in MANUAL.md by @timostamm in #1245
- Add additional checks to toJson for Timestamp and Duration by @timostamm in #1263
- Fix nanos sign in durationFromMs() by @timostamm in #1262
- Update to protocolbuffers/protobuf v33 by @timostamm in #1270
- Add Deno example by @timostamm in #1234
- Mention Deno in package README.md by @timostamm in #1258
New Contributors
Full Changelog: v2.9.0...v2.10.0
v2.9.0
v2.8.0
What's Changed
- Add support for Edition 2024 by @timostamm in #1228
- Fix Valid types for interstitial references by @timostamm in #1230
Full Changelog: v2.7.0...v2.8.0