binstring

0.2.1 • Public • Published

BinString

JavaScript component to convert to/from strings and byte arrays.

AMD/CommonJS compatible.

Usage

This library exposes a single function that takes a data parameter and an options object. Set options.in and options.out to the format of the input and desired output. Possible values include:

  • hex: Hex-encoded string; two hexadecimal characters per byte
  • binary: Binary-encoded string (ASCII-encoded)
  • utf8: Binary-encoded string (UTF8-encoded)
  • bytes: Byte array; an array of numbers, each representing one byte of data
  • buffer: A Node.js native Buffer object

The default encoding for options.out is a buffer (buffer). The input format is duck-typed if it's an Array (bytes) or Buffer (buffer) or Number object. If it's a string, it's interpreted as binary unless it's prefixed by 0x (then it's hex). If options.in is set, it overrides the automatic duck-typing of the input variable.

var conv = require('binstring');
 
console.dir(conv('hello', { in:'binary' })); // No output encoding specified, defaults to Buffer; output: Buffer([104,101,108,108,111])
console.dir(conv([104,101,108,108,111], { out:'hex' })); // No input encoding specified, auto-detected as Byte Array; output: 68656c6c6f
console.dir(conv('hello', { in:'binary', out:'hex' })); // output: 68656c6c6f

Test

Unit tests are written in Mocha. To run the test suite, checkout the git repository, and from within the base folder run:

$ npm install --dev
$ ./node_modules/mocha/bin/mocha

References on JavaScript UTF-8 forced encoding

(these sources are also included as PDFs in the repo in case the links go dead)

License

(MIT License)

Copyright 2014, Brooks Boyd boydb@midnightdesign.ws

Package Sidebar

Install

npm i binstring

Weekly Downloads

2,127

Version

0.2.1

License

none

Last publish

Collaborators

  • midnightlightning
  • sidazhang
  • nadav
  • jprichardson