Releases: calebsander/structure-bytes
Releases · calebsander/structure-bytes
17.2.0
- Added
SingletonType, which serializes a single value, e.g. a string literal. It is a more efficient encoding of anEnumTypewith only one possible value. See the documentation for more information. - Added TypeScript
__promisify__()declarations to I/O functions so they can now be used withutil.promisify()in TypeScript code - Rewrote
READMEto 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
ArrayBufferslicing - Lazy computation of
EnumType.valueIndicesmap - Updated dev dependencies
- A lot of refactoring to make the code more concise
17.1.0
- New syntax for registering
RecursiveTypes:RecursiveType.setType() - Fixed bug when writing values using a
RecursiveTypeinside aChoiceType - 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
- Changed
sb.r.value({type, buffer})totype.readValue(buffer)(large internal rewrite) - There is now a separate
READ_VALUEgeneric from theVALUEgeneric, so this may require changes to generics in code that usesstructure-bytes - Added
FlexIntType(likeFlexUnsignedIntTypebut for signed ints) - Fixed using
ChoiceTypeinsidePointerTypeorRecursiveType - Support for inspecting circular values
- Removed unused methods of
GrowableBuffer - Updated README with new serialization format
16.0.1
- Added
typingsto 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 writingBooleanArrayTypes andBooleanTupleTypes
16.0.0
Much more efficient PointerType serialization (both in terms of binary value representations and structure-bytes code)
15.0.2
Fixed list of files included by npm
15.0.0
Converted to semver
4.0.11
- 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-bytescan 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
webpackinstead ofbrowserify - Using
typedocinstead ofJSDoc - Using
tslintinstead ofeslint - More sophisticated
util-inspect - Less hacky testing framework
3.2.11
- Updated dependencies and
jQuery - Internal rewrite of
requiresystem - Add
FlexInttypes to README
3.1.11
- 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
FlexUnsignedIntTypethat 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