0.3.1 • Published 5 years ago
@bonfida/borsh-js v0.3.1
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 installContinuesly build with:
yarn devRun tests:
yarn testRun linter
yarn lintPublish
Prepare dist version by running:
yarn buildWhen 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.
0.3.1
5 years ago