The main feature detection mechanism defined in HTTPClient today is the RequestOptions protocol which allows each client backend to declare their own capabilities, and allows libraries to require clients with specific capabilities.
However, this approach has limitations of detecting automatic features with no configuration (cookie jar, HSTS upgrades, post-quantum crypto, etc), and runtime behaviors (bidirectional streaming, preserving multi-value header field, etc).
How should we model these features?
The main feature detection mechanism defined in HTTPClient today is the
RequestOptionsprotocol which allows each client backend to declare their own capabilities, and allows libraries to require clients with specific capabilities.However, this approach has limitations of detecting automatic features with no configuration (cookie jar, HSTS upgrades, post-quantum crypto, etc), and runtime behaviors (bidirectional streaming, preserving multi-value header field, etc).
How should we model these features?