Skip to content

Releases: calebsander/structure-bytes

17.2.0

03 Oct 07:57
Compare
Choose a tag to compare
  • Added SingletonType, which serializes a single value, e.g. a string literal. It is a more efficient encoding of an EnumType with only one possible value. See the documentation for more information.
  • Added TypeScript __promisify__() declarations to I/O functions so they can now be used with util.promisify() in TypeScript code
  • Rewrote README to simplify examples and clarify explanations
  • Fixed tests so Node 8 is supported in addition to 9 and 10
  • SHA256 is now implemented in WebAssembly, so computing type signatures will run faster on platforms that support WebAssembly (e.g. Chrome and Node.js 8+)
  • Refactored I/O functions to avoid unnecessary ArrayBuffer slicing
  • Lazy computation of EnumType.valueIndices map
  • Updated dev dependencies
  • A lot of refactoring to make the code more concise

17.1.0

24 Dec 04:27
Compare
Choose a tag to compare
  • New syntax for registering RecursiveTypes: RecursiveType.setType()
  • Fixed bug when writing values using a RecursiveType inside a ChoiceType
  • Much smaller bundle size due to excluding unneeded Node.js libraries
  • Faster GrowableBuffer.toBuffer() if internal buffer is completely occupied
  • Documentation fixes
  • Internal rewrites

17.0.0

27 Sep 18:57
Compare
Choose a tag to compare
  • Changed sb.r.value({type, buffer}) to type.readValue(buffer) (large internal rewrite)
  • There is now a separate READ_VALUE generic from the VALUE generic, so this may require changes to generics in code that uses structure-bytes
  • Added FlexIntType (like FlexUnsignedIntType but for signed ints)
  • Fixed using ChoiceType inside PointerType or RecursiveType
  • Support for inspecting circular values
  • Removed unused methods of GrowableBuffer
  • Updated README with new serialization format

16.0.1

06 Sep 19:41
Compare
Choose a tag to compare
  • Added typings to package.json
  • Internal rewrite of how IO is handled which should make it faster and more memory-efficient
  • Rewrite of writeBooleans() which should decrease memory usage when writing BooleanArrayTypes and BooleanTupleTypes

16.0.0

05 Sep 03:51
Compare
Choose a tag to compare

Much more efficient PointerType serialization (both in terms of binary value representations and structure-bytes code)

15.0.2

04 Sep 21:16
Compare
Choose a tag to compare

Fixed list of files included by npm

15.0.0

04 Sep 15:18
Compare
Choose a tag to compare

Converted to semver

4.0.11

04 Sep 15:11
Compare
Choose a tag to compare
  • Rewrote almost all of project in TypeScript. This should make for a more robust codebase. Also, type declarations are automatically distributed along with the compiled code, so structure-bytes can be used in a TypeScript project.
  • Client-side code uses fetch() instead of jQuery AJAX
  • Wrote my own SHA-256 library to avoid the dependency
  • Using webpack instead of browserify
  • Using typedoc instead of JSDoc
  • Using tslint instead of eslint
  • More sophisticated util-inspect
  • Less hacky testing framework

3.2.11

15 Apr 02:57
Compare
Choose a tag to compare
  • Updated dependencies and jQuery
  • Internal rewrite of require system
  • Add FlexInt types to README

3.1.11

15 Jan 07:22
Compare
Choose a tag to compare
  • Using variable-length ints for more efficient representations of many types and values, where fixed-length ints had been used. In most use cases, this should result in shorter binary representations.
  • Added FlexUnsignedIntType that can serialize any non-negative JavaScript integer. Generally more efficient than fixed-length ints for distributions skewed towards smaller values.
  • Limits removed from array lengths, map sizes, set sizes, and octets lengths