Package Exports
- borsh
- borsh/lib/index.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (borsh) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
Borsh JS
Borsh JS is an implementation of the Borsh binary serialization format for JavaScript and TypeScript projects.
Borsh stands for Binary Object Representation Serializer for Hashing. It is meant to be used in security-critical projects as it prioritizes consistency, safety, speed, and comes with a strict specification.
Examples
Serializing an object
const value = new Test({ x: 255, y: 20, z: '123', q: [1, 2, 3] });
const schema = new Map([[Test, { kind: 'struct', fields: [['x', 'u8'], ['y', 'u64'], ['z', 'string'], ['q', [3]]] }]]);
const buffer = borsh.serialize(schema, value);
Deserializing an object
const newValue = borsh.deserialize(schema, Test, buffer);
Type Mappings
Borsh | TypeScript |
---|---|
u8 integer |
number |
u16 integer |
number |
u32 integer |
number |
u64 integer |
BN |
u128 integer |
BN |
u256 integer |
BN |
u512 integer |
BN |
f32 float |
N/A |
f64 float |
N/A |
fixed-size byte array | Uint8Array |
UTF-8 string | string |
option | null or type |
map | N/A |
set | N/A |
structs | any |
Contributing
Install dependencies:
yarn install
Continuously build with:
yarn dev
Run tests:
yarn test
Run linter
yarn lint
Publish
Prepare dist
version by running:
yarn build
When publishing to npm use np.
License
This repository is distributed under the terms of both the MIT license and the Apache License (Version 2.0). See LICENSE-MIT and LICENSE-APACHE for details.