Skip to content

jkulvich/tobin

Repository files navigation

CircleCI Master Version GitHub GitHub issues npm GitHub top language

๐Ÿšง Please, wait for release

If you need in stability, please wait for release before use. API may be change till release.

About

This is small and lightweight library for binary conversion written on TypeScript. The library allows creating and parsing binary structures.

Or it can be used as a part of big binary serialization library.
(P.S. Coming soon)

Installation

๐Ÿˆ with yarn:
yarn add tobin

๐Ÿ”ง with npm:
npm i tobin

Repo and issues

๐Ÿ’พ repo: https://github.com/jkulvich/tobin
๐Ÿ’ฌ issues: https://github.com/jkulvich/tobin/issues

Supported types

  • Byte
  • SByte
  • Int16
  • UInt16
  • Int32
  • UInt32
  • Int64 // ES2020 only with BigInt
  • UInt64 // ES2020 only with BigInt
  • Float
  • Double
  • Bool
  • String
    • String // Null Terminated String (default)
    • ShortString // Short String (255 bytes max)
    • FixedString // String with fixed size. Null Terminated if less than size

Examples

Formal:

tobin.(convert|parse)(S?Byte|U?Int16|U?Int32|U?Int64|Float|Double|Bool|(Short|Fixed)?String)
import tobin from "tobin"

tobin.convertInt32(500) // [0, 0, 1, 244]
tobin.convertInt32(-500) // [128, 0, 1, 244]
tobin.convertUInt16(65535) // [255, 255]
tobin.convertByte(128) // [128]
tobin.convertString("Hello") // [104, 101, 108, 108, 111, 0]
tobin.convertShortString("Hello") // [ 5, 104, 101, 108, 108, 111 ]

tobin.parseSByte(new Uint8Array([129])) // -1
tobin.parseString(new Uint8Array([104, 101, 108, 108, 111, 0])) // "Hello"
tobin.parseShortString(new Uint8Array([5, 104, 101, 108, 108, 111])) // "Hello"

Performance