3.0.2 • Published 4 years ago

@bitrelay/bufio v3.0.2

Weekly downloads
-
License
MIT
Repository
github
Last release
4 years ago

bufio

npm.io code style: prettier License: MIT

Buffer and serialization utilities for node.js and browser.

Installation

npm install @bitrelay/bufio

Usage

import * as assert from 'assert'
import * as bufio from '@bitrelay/bufio'

const bw = bufio.write()
bw.writeU64(100)
bw.writeString('foo')
const data = bw.render()

const br = bufio.read(data)
assert(br.readU64() === 100)
assert(br.readString(3) === 'foo')

Struct Usage

import { BufferReader, BufferWriter, Struct } from '@bitrelay/bufio'

class MyStruct extends Struct {
  public str: string
  public value: number
  constructor(data: Partial<MyStruct> = {}) {
    super()
    Object.assign(this, data)
  }

  public static fromReader(br: BufferReader): MyStruct {
    const str = br.readVarString('ascii')
    const value = br.readU64()
    return new this({ str, value })
  }

  public toWriter(bw: BufferWriter): BufferWriter {
    bw.writeVarString(this.str, 'ascii')
    bw.writeU64(this.value)
    return bw
  }
}

const instance = new MyStruct({ str: 'hello', value: 0 })

console.log('Buffer:')
console.log(instance.toBuffer())

console.log('Decoded:')
console.log(MyStruct.fromBuffer(instance.toBuffer()))

console.log('Hex:')
console.log(instance.toHex())

console.log('Decoded:')
console.log(MyStruct.fromHex(instance.toHex()))

console.log('Base64:')
console.log(instance.toBase64())

console.log('Decoded:')
console.log(MyStruct.fromBase64(instance.toBase64()))

Contribution and License Agreement

If you contribute code to this project, you are implicitly allowing your code to be distributed under the MIT license. You are also implicitly verifying that all code is your original work. </legalese>

License

See LICENSE for more info.

3.0.2

4 years ago

3.0.1

4 years ago

3.0.0

4 years ago

2.0.1

4 years ago

1.0.2

4 years ago

2.0.0

4 years ago

1.0.1

4 years ago

1.0.0

4 years ago