1.0.19 • Published 3 months ago

http-compression v1.0.19

Weekly downloads
-
License
MIT
Repository
github
Last release
3 months ago

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 a Express style iddleware 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: Number Default: -1

The compression effort/level/quality setting, used by both Gzip and Brotli. The scale ranges from 1 to 11, where lower values are faster and higher values produce smaller output. The default value of -1 uses the default compression level as defined by Gzip (6) and Brotli (6).

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 · Twitter @Kikobeats

1.0.19

3 months ago

1.0.18

3 months ago

1.0.17

6 months ago

1.0.16

7 months ago

1.0.11

8 months ago

1.0.15

7 months ago

1.0.14

7 months ago

1.0.13

7 months ago

1.0.12

7 months ago

1.0.9

10 months ago

1.0.8

10 months ago

1.0.7

11 months ago

1.0.6

12 months ago

1.0.10

10 months ago

1.0.5

1 year ago

1.0.4

1 year ago

1.0.3

1 year ago

1.0.2

1 year ago

1.0.1

1 year ago

1.0.0

1 year ago

0.0.0

1 year ago