An open API service indexing awesome lists of open source software.

https://github.com/http4s/hpack

Header Compression for HTTP/2
https://github.com/http4s/hpack

Last synced: 7 months ago
JSON representation

Header Compression for HTTP/2

Awesome Lists containing this project

README

          

This is an internal fork of [Twitter HPACK](https://github.com/twitter/hpack) for http4s that has been ported to pure Scala and cross-built for Scala.js and Scala Native.

HPACK [![Build Status](https://travis-ci.org/twitter/hpack.png?branch=master)](https://travis-ci.org/twitter/hpack) [![Coverage Status](https://coveralls.io/repos/twitter/hpack/badge.png?branch=master)](https://coveralls.io/r/twitter/hpack?branch=master)
=====

[Header Compression for HTTP/2](http://tools.ietf.org/html/rfc7541)

## Download

HPACK can be downloaded from the Maven central repository. Add the following dependency section to your pom.xml file:

```xml

com.twitter
hpack
1.0.1

```

## Getting Started

This library provides support for compression of header lists into header blocks. The following code fragment demonstrates the use of Encoder and Decoder:

try {
int maxHeaderSize = 4096;
int maxHeaderTableSize = 4096;
byte[] name = "name".getBytes();
byte[] value = "value".getBytes();
boolean sensitive = false;

ByteArrayOutputStream out = new ByteArrayOutputStream();

// encode header list into header block
Encoder encoder = new Encoder(maxHeaderTableSize);
encoder.encodeHeader(out, name, value, sensitive);

ByteArrayInputStream in = new ByteArrayInputStream(out.toByteArray());

HeaderListener listener = new HeaderListener() {
@Override
public void addHeader(byte[] name, byte[] value, boolean sensitive) {
// handle header field
}
};

// decode header list from header block
Decoder decoder = new Decoder(maxHeaderSize, maxHeaderTableSize);
decoder.decode(in, listener);
decoder.endHeaderBlock();
} catch (IOException e) {
// handle exception
}

## Problems?
If you find any issues please [report them](https://github.com/twitter/hpack/issues) or better,
send a [pull request](https://github.com/twitter/hpack/pulls).

## Authors
* Jeff Pinner
* Bill Gallagher

## License
Copyright 2013 Twitter, Inc.

Licensed under the Apache License, Version 2.0: http://www.apache.org/licenses/LICENSE-2.0