jetty / jetty.project

Eclipse Jetty® - Web Container & Clients - supports HTTP/2, HTTP/1.1, HTTP/1.0, websocket, servlets, and more
https://eclipse.dev/jetty
Other
3.86k stars 1.91k forks source link

Support zstandard encoded request/response content #6600

Open bjorncs opened 3 years ago

bjorncs commented 3 years ago

From https://facebook.github.io/zstd/:

Zstandard is a fast compression algorithm, providing high compression ratios. It also offers a special mode for small data, called dictionary compression. The reference library offers a very wide range of speed / compression trade-off, and is backed by an extremely fast decoder (see benchmarks below). Zstandard library is provided as open source software using a BSD license. Its format is stable and published as IETF RFC 8878.

Zstandard has improved performance/compression ratio over gzip. It's already supported by some HTTP clients (e.g curl https://daniel.haxx.se/blog/2020/08/19/curl-7-72-0-more-compression/).

joakime commented 3 years ago

Note, there is a 100% java implementation of zstd available at ...

https://github.com/airlift/aircompressor/tree/master/src/main/java/io/airlift/compress/zstd

Which is Apache 2.0 licensed - https://github.com/airlift/aircompressor/blob/master/license.txt

Available on maven central at https://search.maven.org/artifact/io.airlift/aircompressor

github-actions[bot] commented 2 years ago

This issue has been automatically marked as stale because it has been a full year without activity. It will be closed if no further activity occurs. Thank you for your contributions.

Mahdi-Seeker commented 2 years ago

Any progress on this issue?

joakime commented 2 years ago

Spec is at https://www.rfc-editor.org/rfc/rfc8878

This labeled as a "low priority" and "help wanted".

Do you even know of any 100% Java based implementations of this spec that can do compression & decompression?

georgew5656 commented 1 year ago

It looks like the airlift package you posted above will work. Are you still open to taking contributions on this? I can try to take a look.

joakime commented 1 year ago

@georgew5656 go for it, base your work on branch jetty-10.0.x please, we'll handle the merging to other branches from there (once approved).

github-actions[bot] commented 11 months ago

This issue has been automatically marked as stale because it has been a full year without activity. It will be closed if no further activity occurs. Thank you for your contributions.