A modern bencode parser focused on speed and perfomance
npm install btparseA modern bencode parser focused on speed and perfomance. It used recursive descent parser, a kind of top-down parsers.
``js
// classic api
const decode = require('btparse')
// or you can use lazy parser
// const decode = require('btparse/lazy')
console.log(decode(torrent).info.name)
console.log(decode('d3:abcli13eee')) // {abc: [ 13 ]}
`
|Library| op/s | ms (1e5 op) |
|-------|:---:|:---:|
|bencode| 118,387| 838.424 |
|btparse| 161,059 | 641.632 |
|btparse#lazy|143,258| 1090.971 |
##### decode(input: Buffer|String, opts: Options) -> Object|Number|Array|Buffer
Parse and decode bencoded message.
* opts.depth: Number
Max parse depth for objects; default = infinity, min = 1
`js
const decode = require('btparse')
console.log(decode('d2:abi2e2:bbd2:ccleee', {depth: 1})) // {ab: 2, bb: Buffer.from('d2:cclee')}
`
##### decode(input: Buffer|String) -> Proxy
`js
const decode = require('btparse/lazy')
// get prop
console.log(decode(torrent).info.name)
// check prop
console.log('name' in decode(torrent).info)
// get all keys / props
console.log(Reflect.ownKeys(decode(torrent)))
``
MIT, (c) Dmitry Tsvettsikh, 2017+