🚀 Big News: Socket Acquires Coana to Bring Reachability Analysis to Every Appsec Team.Learn more
Socket
DemoInstallSign in
Socket

http-compression

Package Overview
Dependencies
Maintainers
0
Versions
25
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

http-compression

Adding gzip/brotli for your HTTP server

1.1.1
latest
Source
npm
Version published
Weekly downloads
9.1K
-24.84%
Maintainers
0
Weekly downloads
 
Created
Source

http-compression

Last version Coverage Status NPM Status

http-compression adds compression for your HTTP server in Node.js by:

  • No dependencies (< 1kB).
  • Express style middleware support.
  • Auto detect the best encoding to use (gzip/brotli).

Install

$ npm install http-compression --save

Usage

If you are using an Express style framework, you can add it as middlware:

const compression = require('http-compression')
const express = require('express')

express()
  .use(compression({ /* see options below */ }))
  .use((req, res) => {
    // this will get compressed:
    res.end('hello world!'.repeat(1000))
  })
  .listen(3000)

Otherwise, just pass req, res primitives to it:

const compression = require('http-compression')({ /* see options below */ })
const { createServer } = require('http')

const server = createServer((req, res) => {
  compression(req, res)
  res.end('hello world!'.repeat(1000))
})

server.listen(3000, () => {
  console.log('> Listening at http://localhost:3000')
})

API

The compression(options) function returns an Express style middleware of the form (req, res, next).

Options

threshold

Type: Number
Default: 1024

Responses below this threshold (in bytes) are not compressed. The default value of 1024 is recommended, and avoids sharply diminishing compression returns.

level

Type: object
Default: { brotli: 1, gzip: 1 }

The compression effort/level/quality setting, used by both Gzip and Brotli. The scale range is:

  • brotli: from 0 to 11.
  • gzip: from -1 to 9.

The library uses uses the most efficiency level by default determined by a benchmark.

brotli

Type: boolean
Default: true

Enables response compression using Brotli for requests that support it. as determined by the Accept-Encoding request header.

gzip

Type: boolean
Default: true

Enables response compression using Gzip for requests that support it, as determined by the Accept-Encoding request header.

mimes

Type: RegExp
Default: /text|javascript|\/json|xml/i

The Content-Type response header is evaluated against this Regular Expression to determine if it is a MIME type that should be compressed. Remember that compression is generally only effective on textual content.

License

Thanks to developit for written the original code implementation for polka#148.

http-compression © Kiko Beats, released under the MIT License.
Authored and maintained by Kiko Beats with help from contributors.

kikobeats.com · GitHub Kiko Beats · X @Kikobeats

Keywords

br

FAQs

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