shorter

0.3.1 • Public • Published

shorter

Node.js module to very quickly (de)compress short strings.

Uses the SIMD-powered entropy encoding features of Christian Schramm's shoco.

Encodes ASCII-compatible characters (0x00 to 0x7F) whilst maintaining full UTF-8 support.

For ASCII-only strings, the byte length of the compressed output will never exceed the byte length of the input.

Works well with strings up to around 100 characters and is particularly well-suited to e-mail addresses and URLs.

Compression and decompression is typically 10x faster than zlib deflate.

Installation

npm install shorter

Usage

const shorter = require('shorter');
const encoded = shorter.compress('test');
console.log(Buffer.isBuffer(encoded)); // true
console.log(encoded.length);           // 2
console.log(encoded.toString('hex'));  // 'c899'
const encoded = shorter.compress(Buffer.from('test'));
console.log(Buffer.isBuffer(encoded)); // true
console.log(encoded.length);           // 2
console.log(encoded.toString('hex'));  // 'c899'
const decoded = shorter.decompress(Buffer.from('c899', 'hex'));
console.log(typeof decoded); // 'string'
console.log(decoded.length); // 4
console.log(decoded);        // 'test'

API

compress(input)

  • input is the Buffer or String to compress.

Returns the compressed/encoded Buffer.

decompress(input)

  • input is the Buffer to decompress.

Returns the decompressed/decoded String.

Testing

Build Status

npm test

Licence

Copyright 2016, 2017 Lovell Fuller

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Package Sidebar

Install

npm i shorter

Weekly Downloads

54

Version

0.3.1

License

Apache-2.0

Unpacked Size

60.8 kB

Total Files

12

Last publish

Collaborators

  • lovell