Skip to content

jkulvich/tobin

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

48 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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