bencodec
Version:
Library for decoding and encoding bencode data
70 lines (47 loc) • 1.9 kB
Markdown
# Bencodec

[](https://coveralls.io/github/IvanSolomakhin/bencodec)
[](https://npmjs.org/package/bencodec)
[](LICENSE.md)
[](http://commitizen.github.io/cz-cli/)
Library for decoding and encoding [bencode](https://en.wikipedia.org/wiki/Bencode) data
Compliant with the [BitTorrent bencoding specification](https://wiki.theory.org/index.php/BitTorrentSpecification#Bencoding)
Fast and easy to use
Written in TypeScript
Fully tested with 100% code coverage
Without dependencies
## Installation
``` bash
npm install --save bencodec
```
## Getting Started
### Decode data
By default, all strings will be parsed as buffers
``` typescript
import bencodec from 'bencodec';
const result = bencodec.decode( 'd3:bar4:spam3:fooi42ee' );
// result = { bar: <Buffer 73 70 61 6d>, foo: 42 }
```
To convert buffers to strings add `stringify` option
``` typescript
const result = bencodec.decode( 'd3:bar4:spam3:fooi42ee', { stringify: true } );
// result = { bar: 'spam', foo: 42 }
```
### Encode data
By default method encode will return buffer
``` typescript
import bencodec from 'bencodec';
const result = bencodec.encode({ bar: 'spam', foo: 42 });
// result = <Buffer 64 33 ... 65 65>
```
To convert buffer to string add `stringify` option
``` typescript
const result = bencodec.encode({ bar: 'spam', foo: 42 }, { stringify: true });
// result = 'd3:bar4:spam3:fooi42ee'
```
## Tests
``` bash
npm test
```
## License
This project is licensed under the MIT License - see the [LICENSE](LICENSE.md) file for details