2.0.3 • Published 1 year ago

@nickname-ru/borsh v2.0.3

Weekly downloads
-
License
MIT
Repository
-
Last release
1 year ago

borsh

Simple library for serialize and deserialize objects in borsh encoding

Types:
schema/js type

  • i8/number - 8-bit signed integer
  • i16/number - 16-bit signed integer
  • i32/number - 32-bit signed integer
  • i64/bigint - 64-bit signed integer
  • i128/? - 128-bit signed integer
  • u8/number - 8-bit unsigned integer
  • u16/number - 16-bit unsigned integer
  • u32/number - 32-bit unsigned integer
  • u64/bigint - 64-bit unsigned integer
  • u128/? - 128-bit unsigned integer
  • boolean/boolean - bool
  • string/string - strings
  • { maybe: Object }/?Object - optional object (see Rust Option)
  • [Object]/Array - arrays
  • [Object, number]/Array - fixed arrays
  • [Buffer, number]/Buffer - bytes
  • Object - custom objects (to (de-)serialize them make rules for deserialize or serialize functions)

Example

import {
	serialize, deserialize
} from "@nickname-ru/borsh";

const Partial = {
	kind: "struct",
	fields: [
		["chess", "u16"]
	]
}

const Job = {
	kind: "enum",
	fields: [
		[ // Shopkeep
			["cost", "u64"]
		],
		[ // Army
			["cost", "u64"],
			["rank", "u16"]
		]
	]
}

const Human = {
	kind: "struct",
	fields: [
		["name", "string"],
		["age", "u64"],
		["job", { maybe: Job }],
		["seed", [ Partial, 8 ]]
	]
}

const human = {
	name: "John",
	age: 15,
	job: {
		type: 0,
		cost: 1000
	},
	seed: [
		{ chess: 0 },
		{ chess: 1 },
		{ chess: 2 },
		{ chess: 3 },
		{ chess: 4 },
		{ chess: 5 },
		{ chess: 6 },
		{ chess: 9 }
	]
};

console.log(human);

const human_buffer = serialize(human, Human);

console.log(human_buffer);

const human_new = deserialize(human_buffer, Human);

// we see it's same object
console.log(human_new);
2.0.3

1 year ago

2.0.2

1 year ago

2.0.1

1 year ago

2.0.0

1 year ago

1.3.4

2 years ago

1.3.3

2 years ago

1.3.2

2 years ago

1.3.1

2 years ago

1.3.0

2 years ago

1.2.1

2 years ago

1.2.0

2 years ago

1.1.0

2 years ago

1.0.0

2 years ago