micro-rlp
Node+Browser-friendly fork of rlp with following changes:
- Removes dependency on bn.js, which makes library zero-dep
- Replaces bigints from bn.js with native BigInts
- Replaces all instances of
Buffer
usage with Uint8Array
- which is a superclass of Buffer
,
which makes rlp browser-friendly
Install via:
npm install micro-rlp
SYNOPSIS
or #ethereumjs on freenode
Recursive Length Prefix Encoding for node.js.
INSTALL
npm install rlp
install with -g
if you want to use the cli.
USAGE
var RLP = require('rlp')
var assert = require('assert')
var nestedList = [[], [[]], [[], [[]]]]
var encoded = RLP.encode(nestedList)
var decoded = RLP.decode(encoded)
assert.deepEqual(nestedList, decoded)
API
rlp.encode(plain)
- RLP encodes an Array
, Buffer
or String
and returns a Buffer
.
rlp.decode(encoded, [skipRemainderCheck=false])
- Decodes an RLP encoded Buffer
, Array
or String
and returns a Buffer
or an Array
of Buffers
. If skipRemainderCheck
is enabled, rlp
will just decode the first rlp sequence in the buffer. By default, it would throw an error if there are more bytes in Buffer than used by rlp sequence.
CLI
rlp decode <hex string>
rlp encode <json String>
TESTS
Test uses mocha. To run tests and linting: npm test
. To auto fix linting problems use: npm run test:fix
.
CODE COVERAGE
Install dev dependencies
npm install
Run
npm run coverage
The results are at
coverage/lcov-report/index.html
EthereumJS
See our organizational documentation for an introduction to EthereumJS
as well as information on current standards and best practices.
If you want to join for work or do improvements on the libraries have a look at our contribution guidelines.