# leb128

> LEB128 encoding and decoding for signed and unsinged intergers

Latest version **0.0.5** (published 2019-07-26) · MPL-2.0 license · 0 weekly downloads

## Install

```sh
npm install leb128
pnpm add leb128
yarn add leb128
bun add leb128
```

## Health

**Score 23/100 (F)** — status: abandoned.

Positive: has types package; no vulnerabilities; high quality score.

Warnings: low downloads; no esm support; pre 1.0.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 0.0.5 |
| Published | 2019-07-26 |
| First published | 2016-12-14 |
| Weekly downloads | 0 |
| License | MPL-2.0 |
| TypeScript types | separate (@types/leb128) |
| Module format | CommonJS |
| Dependencies | 2 |
| Unpacked size | 6.8 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Author | mjbecze |
| Maintainers | null_radix |
| Keywords | leb128 |

## Links

- npm: https://www.npmjs.com/package/leb128
- Repository: https://gitlab.com/mjbecze/leb128
- Homepage: https://gitlab.com/mjbecze/leb128#readme
- Issues: https://gitlab.com/mjbecze/leb128/issues
- npm.io page: https://npm.io/package/leb128

## Dependencies (2)

- [bn.js](https://npm.io/package/bn.js.md) ^5.0.0
- [buffer-pipe](https://npm.io/package/buffer-pipe.md) 0.0.3

## Recent versions

- 0.0.5 (latest) — 2019-07-26
- 0.0.4 — 2017-10-18
- 0.0.3 — 2017-10-03
- 0.0.2 — 2017-08-20
- 0.0.0 — 2016-12-14

## README

# SYNOPSIS 
[![NPM Package](https://img.shields.io/npm/v/leb128.svg?style=flat-square)](https://www.npmjs.org/package/leb128)
[![Build Status](https://img.shields.io/travis/wanderer/leb128.svg?branch=master&style=flat-square)](https://travis-ci.org/wanderer/leb128)
[![Coverage Status](https://img.shields.io/coveralls/wanderer/leb128.svg?style=flat-square)](https://coveralls.io/r/wanderer/leb128)

[![js-standard-style](https://cdn.rawgit.com/feross/standard/master/badge.svg)](https://github.com/feross/standard)  

[LEB128](https://en.wikipedia.org/wiki/LEB128) encoding and decoding for signed and unsinged intergers. Supports arbitary length intergers larger then `Number.MAX_SAFE_INTEGER`

# INSTALL
`npm install leb128`

# USAGE
```javascript
const leb = require('leb128')
let encoded = leb.unsigned.encode('9019283812387')
console.log(encoded)
// <Buffer a3 e0 d4 b9 bf 86 02>

let decoded = leb.unsigned.decode(encoded)
console.log(decoded)
// 9019283812387

encoded = leb.signed.encode('-9019283812387')
console.log(encoded)
// <Buffer dd 9f ab c6 c0 f9 7d>

decoded = leb.signed.decode(encoded)
console.log(decoded)
// '-9019283812387'
```

# API
Use `require('leb128/signed')` for signed encoding and decoding and 
`require('leb128/unsigned')` for unsigned methods

## encode

LEB128 encodeds an intergerl.

**Parameters**

-   `num` **([String](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String) \| [Number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number))** 

Returns **[Buffer](https://nodejs.org/api/buffer.html)** 

## decode

decodes a LEB128 encoded interger

**Parameters**

-   `buffer` **[Buffer](https://nodejs.org/api/buffer.html)** 

Returns **[String](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)** 

# LICENSE
[MPL-2.0](https://tldrlegal.com/license/mozilla-public-license-2.0-(mpl-2))

---
_Source: https://npm.io/package/leb128 · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
