protobuf v6.3.0 Release Notes

  • ๐Ÿ’ฅ Breaking

    ๐Ÿšš :hash: Moved camelCase/underScore away from util to where actually used :hash: Renamed asJSON option keys (enum to enums, long to longs) because enum is a reserved keyword ๐Ÿ‘€ :hash: Moved JSON/Message conversion to its own source file and added Message/Type.from + test case, see #575 :hash: Relicensed the library and its components to BSD-3-Clause to match the official implementation (again) ๐ŸŽ :hash: Dropped support for browser buffer entirely (is an Uint8Array anyway), ensures performance and makes things simpler ๐Ÿšš :hash: Removed dead parts of the Reader API ๐Ÿ”จ :hash: Refactored BufferReader/Writer to their own files and removed unnecessary operations (node always has FloatXXArray and browser buffer uses ieee anyway) ๐Ÿ‘ :hash: Stripped out fallback encoder/decoder/verifier completely (even IE8 supports codegen), significantly reduces bundle size, can use static codegen elsewhere

    ๐Ÿ›  Fixed

    ๐Ÿ“œ :hash: Actually concatenate mixed custom options when parsing ๐Ÿ— :hash: Fixed a couple of issues with alternative browser builds 0๏ธโƒฃ :hash: Properly set long defaults on prototypes ๐Ÿ‘€ :hash: Fixed reference error in minimal runtime, see #580 ๐Ÿ‘€ :hash: Non-repeated empty messages are always present on the wire, see #581 :hash: Properly check Buffer.prototype.set with node v4 ๐Ÿ›  :hash: Prevent NRE and properly annotate verify signature in tsd-jsdoc, fixed #572 :hash: Fix directly using Buffer instead of util.Buffer ๐Ÿ›  :hash: Added filter type to Namespace#lookup, fixes #569 ๐Ÿ‘€ :hash: Fixed parsing enum inner options, see #565 ๐Ÿš€ :hash: Fixed release links in README files

    ๐Ÿ†• New

    ๐Ÿ— :hash: Added a noparse build for completeness :hash: Now compresses .gz files using zopfli to make them useful beyond being just a reference โšก๏ธ :hash: Updated non-bundled google types folder with missing descriptors and added wrappers to core โœ… :hash: Replaced the ieee754 implementation for old browsers with a faster, use-case specific one + simple test case ๐Ÿ‘€ :hash: Added .create to statically generated types and uppercase nested elements to reflection namespaces, see #576 ๐Ÿ‘€ :hash: Also added Namespace#getEnum for completeness, see #576 ๐Ÿ‘€ :hash: Added Namespace#getEnum and changed #lookupEnum to the same behavior, see #576 :hash: Added a heap of coverage comments for usually unused code paths to open things up โœ… :hash: Added codegen test to determine if any ancient browsers don't actually support it ๐Ÿ‘€ :hash: Added legacy groups support to pbjs, see #568 ๐Ÿ‘€ :hash: Initial support for legacy groups + test case, see #568 ๐Ÿ‘€ :hash: Added asJSON bytes as Buffer, see #566

    CLI

    ๐Ÿ‘€ :hash: Annotated callback types in pbjs-generated services, see #582 ๐Ÿšš :hash: Removed type/ns alias comment in static target to not confuse jsdoc unnecessarily ๐Ÿ‘€ :hash: Made pbjs use loadSync for deterministic outputs, see #573

    ๐Ÿ“„ Docs

    ๐Ÿ“š :hash: Updated documentation on runtime and noparse builds ๐Ÿ›  :hash: Fixed an issue with the changelog generator skipping some commits :hash: Added notes on how to use pbjs and pbts programmatically :hash: Manually sorted old changelog entries ๐Ÿ‘€ :hash: Initial changelog generator, see #574 :hash: Added static/JSON module interchangeability to README โšก๏ธ :hash: Updated README and bundler according to dynamic require calls

    Other

    โœ… :hash: Added basic services test case :hash: Just polyfill Buffer.from / .allocUnsafe for good โœ… :hash: Added a test case to find out if all the fallbacks are just for IE8 โœ… :hash: Commented out float assertions in float test including explanation โœ… :hash: Expose array implementation used with (older) browsers on util for tests โšก๏ธ :hash: Updated test cases โœ… :hash: Added assumptions to float test case โšก๏ธ :hash: Updated travis config to use C++11 โšก๏ธ :hash: Updated / added additional LICENSE files where appropriate ๐Ÿ— :hash: Integrated changelog into build process, now also has 'npm run make' for everything, see #574 :hash: Minor optimizations through providing type-hints โช :hash: Reverted shortened switch statements in verifier :hash: Enums can't be map key types ๐Ÿ‘€ :hash: Use custom require (now a micromodule) for all optional modules, see #571 ๐Ÿ‘ :hash: Support usage when size = 0 โช :hash: Reverted aliases frequently used in codegen for better gzip ratio :hash: Shrinked bundle size - a bit :hash: Can finally run with --trace-deopt again without crashes :hash: Other minor optimizations