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

Rewrite of the QUIC layer. #12742

Open
wants to merge 27 commits into
base: jetty-12.1.x
Choose a base branch
from
Open

Conversation

sbordet
Copy link
Contributor

@sbordet sbordet commented Jan 28, 2025

Rewrite of the QUIC layer to accommodate, in the future, implementations alternative to Quiche.

@sbordet
Copy link
Contributor Author

sbordet commented Jan 28, 2025

The main work was to remove the hardcoded dependencies on Quiche.

For this reason, module jetty-quic-api is introduced with Session and Stream similar to HTTP/2 and HTTP/3.
Along with these classes, the QUIC frames defined by the spec, that appear in method signatures of Session and Stream.

The Quiche implementation is now an implementation of jetty-quic-api.

The HTTP/3 layer now only depends on jetty-quic-api.

@sbordet sbordet requested review from gregw and lorban January 28, 2025 21:37
* @return the {@link CompletableFuture} that gets notified when the
* frame has been sent
*/
CompletableFuture<Stream> data(boolean last, ByteBuffer... data);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Use Callback rather than CF

};
}

public void write(Callback callback, List<ByteBuffer> buffers, boolean last)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

think about cancelling writes

Signed-off-by: Simone Bordet <[email protected]>
…sion AES.

Made Quiche.drainClearBytesForStream() return the FIN flag indication.

Improved Qpack[Decoder|Encoder] locking.

Signed-off-by: Simone Bordet <[email protected]>
Made relevant H3 unidirectional connections non-blocking.

Signed-off-by: Simone Bordet <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: No status
Development

Successfully merging this pull request may close these issues.

2 participants