Skip to content

Conversation

arturobernalg
Copy link
Member

@arturobernalg arturobernalg commented Aug 22, 2025

This PR adds core support for RFC 9218: we advertise SETTINGS_NO_RFC7540_PRIORITIES=1, gate PRIORITY_UPDATE emission on the peer’s setting (or pre-SETTINGS), parse/accept PRIORITY_UPDATE frames in the base muxer, and introduce PriorityParamsParser for the Priority header (u/i members, tolerant parsing).

@arturobernalg arturobernalg requested a review from ok2c August 22, 2025 17:51
@arturobernalg arturobernalg marked this pull request as draft August 22, 2025 19:30
@arturobernalg arturobernalg marked this pull request as ready for review August 23, 2025 08:03
@ok2c
Copy link
Member

ok2c commented Aug 24, 2025

@arturobernalg Before we can do anything of this kind we must ensure conformance with RFC 9113 first.

@ok2c ok2c force-pushed the master branch 4 times, most recently from 8fb1d8e to bf7d524 Compare September 13, 2025 16:38
@ok2c
Copy link
Member

ok2c commented Sep 20, 2025

@arturobernalg This is a big change. I have no bandwidth to carefully read through RFC 9218 at the moment. What I can do to review your changes for impact on the existing code and APIs. The rest becomes your area of responsibility, if you are willing to maintain this feature. Please also consider how stable it is and whether one release cycle should be enough to stabilize it or it should be marked experimental and go though several release cycles.

@arturobernalg arturobernalg force-pushed the rfc9218 branch 4 times, most recently from a457f09 to e1d5baf Compare October 1, 2025 09:08
@arturobernalg arturobernalg changed the title HTTP/2: implement RFC 9218 core pieces. HTTP/2: implement RFC 9218 Extensible Prioritization Scheme for HTTP. Oct 1, 2025
@arturobernalg
Copy link
Member Author

@arturobernalg This is a big change. I have no bandwidth to carefully read through RFC 9218 at the moment. What I can do to review your changes for impact on the existing code and APIs. The rest becomes your area of responsibility, if you are willing to maintain this feature. Please also consider how stable it is and whether one release cycle should be enough to stabilize it or it should be marked experimental and go though several release cycles.

@ok2c ACK — I’ll can own RFC 9218: client emission gated by SETTINGS_NO_RFC7540_PRIORITIES=1, server accept-only; please review API/surface impact

return new PriorityParams(null, null);
}

final CharArrayBuffer buf = new CharArrayBuffer(headerValue.length());
Copy link
Member

Choose a reason for hiding this comment

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

@arturobernalg Please do not do that. There is no need to create a copy of the header value. The parser can work with any CharSequence. Can't you re-use MessageSupport parsing routines here?

Otherwise, looks good.

Copy link
Member Author

Choose a reason for hiding this comment

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

@ok2c please do another pass

Add PRIORITY_UPDATE (0x10) and SETTINGS_NO_RFC7540_PRIORITIES (0x9).
Client emits before HEADERS on opt-in; server accepts and applies.
Wire into multiplexer + Priority header utils + tests.
Copy link
Member

@ok2c ok2c left a comment

Choose a reason for hiding this comment

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

@arturobernalg This feature is now your area of responsibility.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants