Sign Up for Free

RunKit +

Try any Node.js package right in your browser

This is a playground to test code. It runs a full Node.js environment and already has all of npm’s 400,000 packages pre-installed, including kompression with all npm packages installed. Try it out:

var kompression = require("kompression")

This service is provided by RunKit and is not affiliated with npm, Inc or the package authors.

kompression v1.0.0

koa compression middleware



This is a fork of koa-compress with support for brotli compression.

Because zlib and iltorb options doesn't have much in common so including support for brotli would be a breaking change.

I'm trimming down the available options in this package down to just filter and threshold.


const compress = require('kompression')
const Koa = require('koa')

const app = new Koa()
        filter: function(content_type) {
            return /text/i.test(content_type)
        threshold: 2048



An optional function that checks the response content type to decide whether to compress. By default, it uses compressible.


Minimum response size in bytes to compress. Default 1024 bytes or 1kb.

Manually turning compression on and off

You can always enable compression by setting this.compress = true. You can always disable compression by setting this.compress = false. This bypasses the filter check.

app.use((ctx, next) => {
    ctx.compress = true
    ctx.body = fs.createReadStream(file)
RunKit is a free, in-browser JavaScript dev environment for prototyping Node.js code, with every npm package installed. Sign up to share your code.
Sign Up for Free