Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

lz-utils

Package Overview
Dependencies
Maintainers
1
Versions
12
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

lz-utils

lz-utils

  • 2.0.2
  • npm
  • Socket score

Version published
Maintainers
1
Created
Source

lz-utils - Utils for string compression

  • deflateSync and deflate
    • Compress raw string and encode in base64
    • Node.js only
    • The highest performance (Using native zlib)
    • Synchronous and Asynchronous
    • The smallest size (minified) 0.13KB / 0.17KB
  • inflateSync and inflate
    • Decompress base64 string to raw string
    • Browser only (Using Uint8Array and TextDecoder)
    • Higher performance (Using tiny-inflate)
    • Synchronous and Asynchronous/Multi-thread (Using Worker)
    • Smaller size (minified) 3.16KB / 3.62KB
  • compress / decompress
    • Using lz-string compress/decompress in base64 only
    • Both browser and Node.js
    • Normal performance
    • Synchronous only
    • The smallest size (minified) 1.75KB / 1.67KB

Install

npm install lz-utils

Usage

import { 
    compress, decompress,
    deflateSync, deflate,
    inflateSync, inflate
} from 'lz-utils';

const raw = "this is string";
const cs = compress(raw);
const ds = decompress(cs);

Examples

Business Requirements and Why lz-utils?

  • The business here is to generate a lot of html reports to users or customers, so the report needs to be generated as fast as possible and the file size should be as small as possible.
  • The possible process is to compress the report data and bundle it with the html file. When the user opens the html file in the browser, the report data will be self-decompressed and rendered in the browser. So that's why inflate browser only.
  • Why base64? First of all, the data is stored in JSON format, which is easily serialized and compressed. At this time, we get binary data. Although its size is the smallest, it has many problems, such as security issues (CORS) because it is not JS type or object, so we need to convert binary data into JS string, and base64 is a good choice.

String Compression Benchmark

Changelog

  • 2.0.1

    • added types
  • 2.0.0

    • added tiny-inflate
  • 1.0.7

    • added ESM supported
  • 1.0.5

    • added browser version

Keywords

FAQs

Package last updated on 10 Jan 2024

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc