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 anEnumType
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 withutil.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
- New syntax for registering
RecursiveType
s:RecursiveType.setType()
- Fixed bug when writing values using a
RecursiveType
inside 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_VALUE
generic from theVALUE
generic, so this may require changes to generics in code that usesstructure-bytes
- Added
FlexIntType
(likeFlexUnsignedIntType
but for signed ints) - Fixed using
ChoiceType
insidePointerType
orRecursiveType
- Support for inspecting circular values
- Removed unused methods of
GrowableBuffer
- Updated README with new serialization format
16.0.1
- 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 writingBooleanArrayType
s andBooleanTupleType
s
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-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 ofbrowserify
- Using
typedoc
instead ofJSDoc
- Using
tslint
instead ofeslint
- More sophisticated
util-inspect
- Less hacky testing framework
3.2.11
- Updated dependencies and
jQuery
- Internal rewrite of
require
system - Add
FlexInt
types 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
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