@litert/encodings
v2.3.0
Published
The buffer-based encoding utility method for node.js.
Downloads
100
Maintainers
Readme
LiteRT/Encodings
The buffer-based encoding utility method for node.js.
Following types of encodings are supported:
Name | Description | Binary-Safe
-------------|---------------------------------|:-----------:
base64
| The standard BASE64 encoding. | Yes
base64url
| The URL-safe BASE64 encoding. | Yes
base62x
| The BASE62x encoding. | Yes
base32
| The standard BASE32 encoding. | Yes
hex
| The hexadecimal encoding. | Yes
urlencode
| The purely URL-safe encoding. | Yes
strict_uri
| The extended URL-safe encoding. | No
Encoding
urlencode
This is a real urlencode implement, it will escape all bytes as
%xx
format, exceptingA-Z
,a-z
and0-9
. This is a binary-safe encoding.Binary-safe means it could work with binary data perfectly, without gibberish. And it's all the same below.
Encoding
uri
This is a simple reference of method
encodeURIComponent
, so it works as methodencodeURIComponent
does. And it's not a binary-safe encoding.Encoding
strict_uri
This is based on
uri
, but all special chars including"-"
,"."
,"_"
,"!"
,"*"
,"("
,")"
,"~"
,"'"
will be escaped. However, it's still not a binary-safe encoding.NOTE: The data of
strict_uri
encoding, could be simply decoded by functiondecodeURIComponent
.Encoding
base64url
This is based on
base64
, while charactors"="
,"+"
,"/"
will be replaced with URL-safe charactors. This is a binary-safe encoding.Encoding
base62x
This is a variation of
base64
. And it is a binary-safe encoding.
Installation
npm i @litert/encodings -S
Usage
import * as Enc from "@litert/encodings";
const hex = Enc.stringToHex("hello world"); // Encode a string into hex
const b62 = Enc.stringToBase62x("hello world"); // Encode a string into BASE62x
const b64 = Enc.stringToBase64("hello world"); // Encode a string into BASE64
const b64url = Enc.stringToBase64Url("hello world"); // Encode a string into BASE64URL
const b32 = Enc.stringToBase32("hello world"); // Encode a string into BASE32
const url = Enc.stringToUrlencode("hello world"); // Encode a string into URL
const strict = Enc.stringToStrictUri("hello world"); // Encode a string into Strict-URI
// Also, buffer is accepted as input.
Enc.bufferToHex(Buffer.from("hello world"));
Enc.bufferToBase62x(Buffer.from("hello world"));
Enc.bufferToBase64(Buffer.from("hello world"));
Enc.bufferToBase64Url(Buffer.from("hello world"));
Enc.bufferToBase32(Buffer.from("hello world"));
Enc.bufferToUrlencode(Buffer.from("hello world"));
Enc.bufferToStrictUri(Buffer.from("hello world"));
Enc.stringFromHex(hex); // Decode a hex-encoded data as a string
Enc.stringFromBase62x(b62); // Decode a BASE62x-encoded data as a string
Enc.stringFromBase64(b64); // Decode a BASE64-encoded data as a string
Enc.stringFromBase64Url(b64url); // Decode a BASE64URL-encoded data as a string
Enc.stringFromBase32(b32); // Decode a BASE32-encoded data as a string
Enc.stringFromUrlencode(url); // Decode a urlencoded data as a string
Enc.stringFromStrictUri(strict); // Decode a Strict-URI-encoded data as a string
Enc.bufferFromHex(hex);
Enc.bufferFromBase62x(b62);
Enc.bufferFromBase64(b64);
Enc.bufferFromBase64Url(b64url);
Enc.bufferFromBase32(b32);
Enc.bufferFromUrlencode(url);
Enc.bufferFromStrictUri(strict);
License
This library is published under Apache-2.0 license.