Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

RESTEasy Reactive - GZIP support #16425

Closed
heubeck opened this issue Apr 11, 2021 · 10 comments
Closed

RESTEasy Reactive - GZIP support #16425

heubeck opened this issue Apr 11, 2021 · 10 comments

Comments

@heubeck
Copy link
Contributor

heubeck commented Apr 11, 2021

Description

RESTEasy classic has gzip support via @org.jboss.resteasy.annotations.GZIP or quarkus.resteasy.gzip.enabled=true.
It would be great if RR could get gzip support, too.

Implementation thoughts

Reference to RESTEasy classics gzip implementation: DecodingInterceptor, EncodingInterceptor

I guess, the decoding filter needs to be present always, the encoding filter could propably get bound to a @NameBinding @GZIP - if you like to solve only with jax-rs techniques.

A global setting similar for that you have for RESTEasy classic could enable or completely disable gzip support by deactivation of that filters.

@heubeck heubeck added the kind/enhancement New feature or request label Apr 11, 2021
@quarkus-bot
Copy link

quarkus-bot bot commented Apr 11, 2021

/cc @FroMage, @geoand, @stuartwdouglas

@geoand
Copy link
Contributor

geoand commented Apr 12, 2021

@FroMage Vert.x has built-in gzip support doesn't it?
If so, it would be great if we could tie into it somehow

@FroMage
Copy link
Member

FroMage commented Apr 12, 2021

Yes. Let's absolutely not do this ourselves if we can avoid it. Especially not with jaxrs interceptors.

@FroMage
Copy link
Member

FroMage commented Apr 26, 2021

@SaumyaSingh1 is going to look into that

@heubeck
Copy link
Contributor Author

heubeck commented May 2, 2021

Did I get this right?:
gzip for RESTEasy Reactive as well as for reactive routes can be globally enabled via quarkus.http.enable-compression = true?

That would be sufficient for my case, so the question in here would change to: Should there be a route specific configuration?

@FroMage
Copy link
Member

FroMage commented May 4, 2021

Yeah, that's part of what we need to do here:

  • Test this, verify that it can be enabled
  • Document it
  • Figure out if we need a way to make it endpoint-specific, and if that's even doable at all at the vert.x level
  • Implement that, or not

@stuartwdouglas
Copy link
Member

It is tested:

At the moment the only way to make it endpoint specific is pretty yuck, you need to add a Transfer-Encoding: identity header to stop the compression happening.

@FroMage
Copy link
Member

FroMage commented May 5, 2021

Well, perhaps we can improve that with an annotation to automate it? Also I'm curious as to how that translates to binary data we send: are we compressing images, for example? I'd like for @SaumyaSingh1 to run more tests from the POV of RESTEasy Reactive and get this sort of information.

@mkouba
Copy link
Contributor

mkouba commented Mar 25, 2022

I've created an alternative WIP pull request: #24558

mkouba added a commit to mkouba/quarkus that referenced this issue Mar 29, 2022
@mkouba mkouba closed this as completed in 670a205 Mar 29, 2022
Repository owner moved this from Todo to Done in Quarkus Roadmap/Planning Mar 29, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: Done
Development

No branches or pull requests

7 participants