{"id":13724694,"url":"https://github.com/twitter/hpack","last_synced_at":"2025-07-09T22:43:12.960Z","repository":{"id":12675894,"uuid":"15347941","full_name":"twitter/hpack","owner":"twitter","description":"Header Compression for HTTP/2","archived":false,"fork":false,"pushed_at":"2023-04-10T11:35:45.000Z","size":177,"stargazers_count":198,"open_issues_count":13,"forks_count":60,"subscribers_count":121,"default_branch":"master","last_synced_at":"2025-05-07T19:43:09.622Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://twitter.com/http_2","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/twitter.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2013-12-20T20:52:48.000Z","updated_at":"2025-03-02T17:47:16.000Z","dependencies_parsed_at":"2024-06-21T17:45:44.223Z","dependency_job_id":null,"html_url":"https://github.com/twitter/hpack","commit_stats":null,"previous_names":[],"tags_count":13,"template":false,"template_full_name":null,"purl":"pkg:github/twitter/hpack","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/twitter%2Fhpack","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/twitter%2Fhpack/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/twitter%2Fhpack/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/twitter%2Fhpack/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/twitter","download_url":"https://codeload.github.com/twitter/hpack/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/twitter%2Fhpack/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264504616,"owners_count":23618831,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-03T01:02:01.907Z","updated_at":"2025-07-09T22:43:12.939Z","avatar_url":"https://github.com/twitter.png","language":"Java","funding_links":[],"categories":["Java"],"sub_categories":[],"readme":"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)\n=====\n\n[Header Compression for HTTP/2](http://tools.ietf.org/html/rfc7541)\n\n## Download\n\nHPACK can be downloaded from the Maven central repository. Add the following dependency section to your pom.xml file:\n\n```xml\n\u003cdependency\u003e\n    \u003cgroupId\u003ecom.twitter\u003c/groupId\u003e\n    \u003cartifactId\u003ehpack\u003c/artifactId\u003e\n    \u003cversion\u003e1.0.1\u003c/version\u003e\n\u003c/dependency\u003e\n```\n\n## Getting Started\n\nThis library provides support for compression of header lists into header blocks. The following code fragment demonstrates the use of Encoder and Decoder:\n\n    try {\n      int maxHeaderSize = 4096;\n      int maxHeaderTableSize = 4096;\n      byte[] name = \"name\".getBytes();\n      byte[] value = \"value\".getBytes();\n      boolean sensitive = false;\n\n      ByteArrayOutputStream out = new ByteArrayOutputStream();\n\n      // encode header list into header block\n      Encoder encoder = new Encoder(maxHeaderTableSize);\n      encoder.encodeHeader(out, name, value, sensitive);\n\n      ByteArrayInputStream in = new ByteArrayInputStream(out.toByteArray());\n\n      HeaderListener listener = new HeaderListener() {\n        @Override\n        public void addHeader(byte[] name, byte[] value, boolean sensitive) {\n          // handle header field\n        }\n      };\n\n      // decode header list from header block\n      Decoder decoder = new Decoder(maxHeaderSize, maxHeaderTableSize);\n      decoder.decode(in, listener);\n      decoder.endHeaderBlock();\n    } catch (IOException e) {\n      // handle exception\n    }\n\n## Problems?\nIf you find any issues please [report them](https://github.com/twitter/hpack/issues) or better,\nsend a [pull request](https://github.com/twitter/hpack/pulls).\n\n## Authors\n* Jeff Pinner \u003chttps://twitter.com/jpinner\u003e\n* Bill Gallagher \u003chttps://twitter.com/billjgallagher\u003e\n\n## License\nCopyright 2013 Twitter, Inc.\n\nLicensed under the Apache License, Version 2.0: http://www.apache.org/licenses/LICENSE-2.0\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftwitter%2Fhpack","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftwitter%2Fhpack","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftwitter%2Fhpack/lists"}