https://github.com/twitter/hpack
Header Compression for HTTP/2
https://github.com/twitter/hpack
Last synced: 8 months ago
JSON representation
Header Compression for HTTP/2
- Host: GitHub
- URL: https://github.com/twitter/hpack
- Owner: twitter
- License: apache-2.0
- Created: 2013-12-20T20:52:48.000Z (about 12 years ago)
- Default Branch: master
- Last Pushed: 2023-04-10T11:35:45.000Z (almost 3 years ago)
- Last Synced: 2025-05-07T19:43:09.622Z (10 months ago)
- Language: Java
- Homepage: https://twitter.com/http_2
- Size: 173 KB
- Stars: 198
- Watchers: 121
- Forks: 60
- Open Issues: 13
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-list - hpack
README
HPACK [](https://travis-ci.org/twitter/hpack) [](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