binary-util

A utility library for working with binary data.

  • Types
  • ESM
License
MIT
Deps
0
Install Size
20.1 kB
Vulns
0
Published

Get started

$npm install binary-util
$pnpm add binary-util
$yarn add binary-util
$bun add binary-util
$deno add npm:binary-util
$vlt install binary-util
$vp add binary-util
$nub add binary-util

Weekly DownloadsAcross all versions

Node.js
>=20.19
2.0.5
latest

Readme

binary-util

Open on npmx.dev Open on npmx.dev Open on npmx.dev npm bundle size

A library to simplify parsing and building binary data.

It does not support all types of data, but it does have the ones I needed. :^)

Usage

A full example of how to use this library can be found in my RE MSG library.

Here are some non-exhaustive examples:

Decoder
import { Decoder } from "binary-util"

const data = Buffer.from([
  0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x2c, 0x20, 0x57, 0x6f, 0x72, 0x6c, 0x64, 0x21,
])
const decoder = new Decoder(data)

// You can use it to just read data straight from the buffer
decoder.readString({ length: 5 }) // Hello
decoder.readString({ length: 7 }) // ", World"

// Utilities
encoder.seek(-1)
encoder.seek(1)
encoder.alignTo(8)

// Or you can use it more ergonomically when possible
const decoder2 = new Decoder(Buffer.alloc(2, 2))
const result = {
  a: decoder2.readUint8(), // 2
  b: decoder2.readUint8(), // 2
}
Encoder
import { Encoder } from "binary-util"

const encoder = new Encoder()

encoder.writeString("Hello, World")
encoder.seek(-1)
encoder.seek(1)
encoder.alignTo(8)
encoder.writeUint8(2)

encoder.goto(1)