Skip to content

Releases: ollls/zio-quartz-h2

v0.5.7

26 Mar 21:36
34bfaba
Compare
Choose a tag to compare
  • Only raw socket close() on failed TLS handshake.
  • ZIO 2.0.21, version upgrade.
  • logback-classic vulnerability fix.

v0.5.6

02 Nov 03:45
4d5c1f6
Compare
Choose a tag to compare
  • Version upgrades: scala 3.3.1 and zio 2.0.18
  • logback-test.xml renamed logback.xml

v0.5.5

01 May 18:56
Compare
Choose a tag to compare
  • type WebFilter[Env] = Request => ZIO[Env, Throwable, Either[Response, Request]]
    Either[Response, Request]] web filter. Will return Response if access to resource denied and give an opportunity to extend Request headers with data if access is granted. For example userid/subject from OAUTH2 token validation can be pre-populated in filter. WebFilter has access to ZIO environment, which gives even more flexibility for access policy validation in the filter.

  • "sbt test" one more test added to cover new Either[Response, Request] filter. Code can be used a reference how to work with filter.

  • scala doc comments for Request.

v0.5.4

15 Apr 16:30
04eff76
Compare
Choose a tag to compare
  • 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 ZIO-test 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 sent 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.
  • ZIO updated to 2.0.12. Great results with wrk (http1.1 mode) and h2load.
  • QuartzH2Server.setLoggingLevel() allows to control logging level programmatically. Used with ZIO tests 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.5.3

05 Apr 03:44
ce4d876
Compare
Choose a tag to compare
  1. HTTP/1.1 support. If ALPN H2 cannot be negotiated there will be an automatic fallback to HTTP/1.1 with Transfer-Encoding chunked in response. Now sever works with "wrk" testing tool as well as h2load.
  2. Multipart ZStream works transparently with 1.1 chunked POST, content-len POST or HTTP/2 POST.
  3. HTTP/2 Client: TLS SNI added.
  4. ZIO.service[H2Client] added to support HTTP2 clients as ZIO service, refer to zio-quartz-demo as example.
  5. New colored logging configuration for logback, console.log with rotation. 'sbt IO/run' to check it out.
  6. User requests GET,POST,etc are logged as one liner in INFO mode, for perf tests please log level: ERROR or OFF.
  7. Upgraded to ZIO 2.0.10 and ZIO streams 2.0.10.
  8. 0.5.3 update - proper graceful shutdown.

0.4.3

27 Mar 05:40
66c0e1b
Compare
Choose a tag to compare
  • New HTTP/2 QuartzH2Client with full packets multiplexing, a remote server must support ALPN h2 tag and http/2. Older NPN is not supported. QuartzH2Client throws connection exception if "h2" ALPN tag cannot be negotiated. Non-TLS "Prior Knowledge HTTP/2" h2c protocol supported as well.

  • In QuartzH2Server HTTP/2 flow control window size made configurable. When window size is not 65535 which is default size, receiving large files (especially http multipart uploads) will be more efficient. On the other hand performance test with default 65535 will give better results, since WINDOW_UPDATE won't be sent when stream opens.

  • io.quartz.http2.model.Request now has connection id(connId) and http/2 streamId available.

  • QuartzH2Server has configurable onConnect()/onDisconnect() handlers, which are very convenient to configure necessary resources, for example you can open client http2 connections with QuartzH2Client.open().

0.2.1

18 Jan 02:17
3123a80
Compare
Choose a tag to compare

base line release