protobuf v6.1.0 Release Notes

  • ๐Ÿ’ฅ Breaking

    โšก๏ธ :hash: Removed as-function overload for Reader/Writer, profiler stub, optimized version of Reader#int32 ๐Ÿ“š :hash: Refactored Prototype and inherits away, is now Class and Message for more intuitive documentation and type refs

    ๐Ÿ›  Fixed

    โœ… :hash: Fixed failing test case on node < 6 ๐Ÿ›  :hash: Fixed serialization order of sfixed64, fixes #536 ๐Ÿ‘€ :hash: Fixed serialization order of fixed64, fallback to parseInt with no long lib, see #534 ๐Ÿ›  :hash: Actually allow undefined as service method type, fixes #528 ๐Ÿ›  :hash: Do not skip optional delimiter after aggregate options, fixes #520 ๐Ÿ‘€ :hash: Verify empty base64 encoded strings for bytes fields, see #535 :hash: wrong spell role should be rule ๐Ÿ‘€ :hash: decodeDelimited always forks if writer is specified, see #531 ๐Ÿ‘€ :hash: Mimic spec-compliant behaviour in oneof getVirtual, see #523

    ๐Ÿ†• New

    ๐Ÿ‘€ :hash: Initial base64 string support for bytes fields, see #535 ๐Ÿ‘€ :hash: Initial type-checking verifier, see #526, added to bench out of competition ๐Ÿ‘€ :hash: Initial loadSync (node only), see #529 ๐Ÿ‘€ :hash: Initial RPC service implementaion, see #529 ๐Ÿ‘€ :hash: added 'defaults' option to Prototype#asJSON, see #521 ๐Ÿ’ป :hash: Use Uint8Array pool in browsers, just like node does with buffers ๐Ÿ‘€ :hash: Also validate map fields, see #526 (this really needs some tests)

    CLI

    ๐Ÿ‘€ :hash: Added json-module target to pbjs, renamed static to static-module, see #522 โšก๏ธ :hash: updated internals and static target to use immutable objects on prototypes

    ๐Ÿ“„ Docs

    ๐Ÿ‘€ :hash: Added a couple of alternative signatures, protobuf.load returns promise or undefined, aliased Reader/Writer-as-function signature with Reader/Writer.create for typed dialects, see #518 ๐Ÿ‘€ :hash: Added variations for Root#load, see #527 :hash: Added benchmark and profile related information to README ๐Ÿ‘€ :hash: Added service example to README, see #529 โœ… :hash: README on tests โšก๏ธ :hash: Update README/dist to reflect recent changes ๐Ÿ“š :hash: Minimal documentation for micromodules ๐Ÿ‘€ :hash: Document all the callbacks, see #527 :hash: Documented streaming-rpc example a bit

    Other

    ๐Ÿ‘€ :hash: Removed the need for triple-slash references in .d.ts by providing a minimal Long interface, see #527, see #530 :hash: Transition to micromodules ๐Ÿ”จ :hash: Refactored argument order of utf8 for plausibility :hash: Restructured reusable micromodules :hash: Can't use Uint8Array#set on node < 6 buffers โœ… :hash: Test case for #531 ๐Ÿšฆ :hash: Safer signaling for synchronous load, see #529 ๐Ÿšฆ :hash: Proper end of stream signaling to rpcImpl, see #529 ๐Ÿ‘€ :hash: Moved event emitter to util, also accepts listener context, see #529 ๐Ÿ‘€ :hash: Probably the worst form of hiding require programmatically, see #527 ๐Ÿ‘€ :hash: Attempt to hide require('fs') from webpack, see #527 ๐Ÿ‘€ :hash: Trying out jsdoc variations, see #527 :hash: by the way, why not include the json->proto functionality into "util"? โšก๏ธ :hash: Update proto.js :hash: Automatic profile generation and processing ๐Ÿšš :hash: Generalized buffer pool and moved it to util :hash: Make shields visible on npm, yey โ†ช :hash: More shields, I love shields, and maybe a workaround for travis timing out when sauce takes forever :hash: Trying SauceLabs with higher concurrency