Minimal, unoptimized, and unaudited recursive-length prefix (RLP) serialization library in JavaScript/TypeScript.
npm install @bradthomasbrown/rlpsh
npm i @bradthomasbrown/rlp
`
Usage
`js
import { encode } from "@bradthomasbrown/rlp";
const T = new TextEncoder();
console.log(encode(T.encode("dog")).toHex());
// 83646f67
console.log(encode([T.encode("cat"), T.encode("dog")]).toHex());
// c88363617483646f67
console.log(encode(new Uint8Array()).toHex());
// 80
console.log(encode([]).toHex());
// c0
console.log(encode(0n).toHex());
// 80
console.log(encode(new Uint8Array([0x00])).toHex());
// 00
console.log(encode(new Uint8Array([0x0f])).toHex());
// 0f
console.log(encode(new Uint8Array([0x04, 0x00])).toHex());
// 820400
console.log(encode([ [], [[]], [ [], [[]] ] ]).toHex());
// c7c0c1c0c3c0c1c0
console.log(encode(T.encode("Lorem ipsum dolor sit amet, consectetur adipisicing elit")).toHex());
// b8384c6f72656d20697073756d20646f6c6f722073697420616d65742c20636f6e7365637465747572206164697069736963696e6720656c6974
``