Note: this release introduces the use of request handlers for WebTransport. This might lead to different
behaviour for cases where request handlers were used in combination with WebTransport.
See the WebTransportEchoServer sample for explanation.
- added convenience methods to
HttpServerResponsefor adding headers - added httpbin module providing a limited implementation of a httpbin-server (see
HttpBinServer) - added server method to set max header and max data size
- added connect-handle to enable interception for CONNECT method, which can be used to implement for example authorization checks for WebTransport (issue 25)
- reduce memory usage when serializing client request body
- run callback methods on separate threads
- fix: handling of requests that are too large
- fix: handle zero-length data frames correctly
- fix: data frame serialization (when created from partial array)
- fix: write partial byte array to http stream (used in WebTransport only)
- improved client error handling
- added method to let server http request object provide the authority (equivalent to HTTP/1 "Host" header)
- added method to let server http request object provide the client address (IP and port number)
- fix for WebTransport server: incorrect frameType was read when stream did not yet provide enough data
- fix for HTTP/3 client: flow subscription should asynchronously publish its items
- support custom executors in Http3ApplicationProtocolFactory
- define Java modules (issue 14)
- moved
WebTransportHttp3ApplicationProtocolFactoryto websocket base package (tech.kwik.flupke.webtransport) - introduced builder for websocket
ClientSessionFactory - moved some internal classes to other packages
- made
HttpServerRequestandHttpServerResponsean interface - moved
FlupkeVersion,HttpErrorandHttpStreamto flupke base package (tech.kwik.flupke) - transformed gradle build to a multi-project build
- make client support large data frames when running with limited memory
- added methods to set key manager and custom trustmanager (issue 5)
- server handler: receive request body (as stream)
- added support for WebTransport (draft-13) (issue 1)
- server handler: receive request headers and set response headers
- upgraded kwik dependency to latest (0.10.4)
- upgraded qpack dependency to latest (2.0.1)
Note: this release has a breaking change (which is, however, easy to fix)
Changed package structure: the flupke package (and all subpackages) now start with tech.kwik.flupke.
Upgrade instructions: perform a global find-and-replace to replace the string net.luminis.http3 by tech.kwik.flupke.
If your project is also using the android drop-in replacement for the Java HTTP Client, also replace the string net.luminis.httpclient by tech.kwik.flupke.httpclient.
- upgraded kwik dependency to latest (0.10)
- upgraded qpack dependency to latest (2.0)
- added method
localAddress(InetAddress localAddr)toHttpClient.Builder(thanks to kdhDevelop for providing pull request) - increased default connect timeout from 5 seconds to 35 (thanks to Alexander Schütz for reporting this issue)
- moved
FileServerclass to sample package - deprecated
Http3ApplicationProtocolFactory(File wwwDir)constructor - added sample
Http3FileServer - fix: do not create a new (server) thread for each request
- added
Http3ApplicationProtocolFactory(HttpRequestHandler requestHandler)constructor
Upgraded kwik dependency to latest (0.8.8) and made some related changes to limit resource usage.
Relocated maven artifact to tech.kwik group id.
No changes, corrected pom.
First official release published to maven.