fast-encoding
v1.0.0
Published
<!-- /TITLE -->
Downloads
6
Readme
fast-encoding
Fast, cross-platform, small and easy-to-use base64 and hex encoding.
Performance
it's always faster than native Buffer
for any size of data.
Result is located in bench/result.txt
.
Tested on i7-9700k, node v16.9.1.
Hex decoding
~25x faster than js. ~3.7x faster than native buffer.
Hex encoding
~60x faster than js. ~1.4x faster than native buffer.
Base64 decoding
~8x faster than js. ~3.9x faster than native buffer.
Base64 encoding
~22x faster than js. ~1.4x faster than native buffer.
Usage
import { base64, hex } from 'fast-encoding';
// for deno import { base64, hex } from 'https://esm.sh/fast-encoding';
const buf = new Uint8Array([0, 1, 2, 3]);
// base64 encoding and decoding
base64.encode(buf) === 'AAECAw==';
base64.decode('AAECAw==') === buf;
// hex encoding and decoding
hex.encode(buf) === '00010203';
hex.decode('00010203') === buf;
Platform
Either Buffer
or TextEncoder
is required.
WebAssembly is optional.
Docs
interface BinaryEncoding {
// same as buffer.toString('encoding')
encode(data: ArrayBufferView | ArrayBuffer | string): string;
// same as Buffer.from(data, 'encoding')
decode(data: string): Uint8Array;
}
export const base64: BinaryEncoding;
export const hex: BinaryEncoding;
Special Thanks
fastest base64 algorithm https://github.com/aqrit/base64 (BSD-2)
wasm concept https://github.com/mitschabaude/fast-base64 (MIT)