Releases: ollls/quartz-h2
0.8.5
v0.7
v0.5.1
v0.4.6
-
TLS Server Name indication( SNI) available in the request. Route DSL "!" operator added to match request with TLS SNI, enabling virtual hosting based on SNI host. Check case req @ GET -> Root / "snihost" and case "localhost" ! GET -> Root / "example" in example folder. SNI name won't be present if you use IP address, like 127.0.0.1 to access, it needs to be "localhost" or proper DNS name. It will be 404 if SNI name won't match.
-
client TLS cipher information shown in the log.
-
sbt test now works with minitest.runner.Framework. Please, use test/scala as a reference or please add more tests and submit them.
-
Incoming connection flow control code refreshed (accumData -> dataEvalEffectProducer), potential conflict removed. sbt test#1 covers that scenario.
-
fixes for HTTP/2 client to prevent freezes when unexpected data send or server not responding properly.
-
SonarCloud's Quality Gate code duplication complain with H2 client/server code resolved, Http2ConnectionCommon base trait introduced.
-
./h2spec http2 -h localhost -p 8443 -t -k - now gives 94 tests, 94 passed. Long lingering Issue with expired streams resolved without performance and memory overhead. Unknown streamID for window update after the stream ends won't trigger reconnect.
-
QuartzH2Server.setLoggingLevel() allows to control logging level programmatically. Used with sbt test also.
-
examples/Run.scala updated to recognize "--debug "--error" "--off" options to configure log levels. For example: sbt "IO/run --off" will switch off logging, so you can run h2load.
-
QuartzH2Server.shutdown() method to stop server, used with sbt test.
-
Logging messages updated and some output switched from info to debug.
v0.4.5
- HTTP/2 Client: TLS SNI added. quartz-h2-gptapi works again.
- New colored logging configuration for logback, console.log with rotation. 'sbt IO/run' to check it out.
- User requests GET,POST,etc are logged as one liner in INFO mode, for perf tests please log level to ERROR or OFF.
0.4.3
- HTTP/2 Client: Avoid connection resets for massive parallel loads with many parallel HTTP/2 streams and many connections.
- HTTP/2 Client: Connection timeout parameter for QuartzH2Client.open().
- HTTP/2 Client: QuartzH2Client.open() requires SSLContext, where TLS version and trust can be configured.
- HTTP/2 Client: Compatibility fix for CloudFront, etc HTTP/2 services.
- Simplified inbound flow management, now in one function. Two versions of the same function for client and server.
- Log levels adjustments client/server.
- Scala doc comments.
v0.4.1
v0.4.0
- Configurable INITIAL_WINDOW_SIZE for inbound flow control.
- Embedded multi stream HTTP/2 Client (h2 TLS ALPN and h2c prior knowledge only) with doGet, doPost, etc.
- streamId and connId accessible in Request.
- configurable onConnect( connId ) and onDisconnect(connId) handlers for Http/2 client connection management.
- scala doc comments on most popular user exposed structures and calls.
v0.3.0
- new web filter: Request => IO[Either[Response, Request]]. Old Option based filter was removed.
- ReaderT(aka RIO) web routes, see "examples/RIO" on how to use RIO with environment and optional cats.Resource.
- fix for upcoming cat effect 3.5.x: async cancelation.
- cats-effect jar marked as "provided", cats-effect jar of specific version can be configured externally in user projects build.sbt or sbt assembly.
- "sbt assembly "added in "Hello World" template demo project. It can be run as standalone jar.