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