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

compression-streams-polyfill

Package Overview
Dependencies
Maintainers
1
Versions
8
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

compression-streams-polyfill

Lightweight polyfill/ponyfill for the Compression Streams API

  • 0.1.7
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
676
increased by21.8%
Maintainers
1
Weekly downloads
 
Created
Source

compression-streams-polyfill

Lightweight polyfill/ponyfill for the Compression Streams API

Usage

Install:

npm i compression-streams-polyfill # or yarn add, or pnpm add

Import:

import 'compression-streams-polyfill';
// CompressionStream and DecompressionStream are now available

If your environment doesn't support ES Modules:

require('compression-streams-polyfill');

If you want to load from a CDN in the browser:

<!--
You should use either UNPKG or jsDelivr (i.e. only one of the following)
You can specify the version, e.g. with compression-streams-polyfill@0.1.4
-->
<script src="https://unpkg.com/compression-streams-polyfill"></script>
<script src="https://cdn.jsdelivr.net/npm/compression-streams-polyfill"></script>

Ponyfill usage

This polyfill is almost perfectly spec-compliant. Nonetheless, if you'd like to avoid adding CompressionStream and DecompressionStream to the global scope, you can use the ponyfill.

Note that you must supply your own TransformStream implementation to use the ponyfill (though TransformStream is available in most modern browsers).

import { makeCompressionStream, makeDecompressionStream } from 'compression-streams-polyfill/ponyfill';

// If you'd like to also ponyfill TransformStream:
// import { TransformStream } from 'web-streams-polyfill/ponyfill';

const CompressionStream = makeCompressionStream(TransformStream);
const DecompressionStream = makeDecompressionStream(TransformStream);

Performance and size

This polyfill is based on fflate and is therefore very fast. It tends to be between 20% slower and 5% faster than Chromium's native CompressionStream and DecompressionStream. The CompressionStream polyfill also yields similar compression ratios to the native implementation.

The polyfill's full bundle size is about 17kB minified, or 7kB gzipped.

License

MIT

Keywords

FAQs

Package last updated on 07 Feb 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