# 0.9.2
## Fix
- fix HTTP/2 RST_STREAM lifecycle
# 0.9.1
## Add
- `util::router::Router::merge` for merging two `Router`
## Change
- `util::router::Router` accept relaxed lifetime `&str` as route identifier
- `util::router::Router` would panic at rule conflict on `Router::insert` callsite
## Fix
- fix HTTP/2 connect method handling
- fix HTTP/2 pseudo header parsing for empty trailers
# 0.9.0
## Add
- add io_uring, tls, HTTP/2 and HTTP/2 cleartext support for unix socket
- add io_uring support for unified `HttpServiceBuilder`
- add trailers support for HTTP/1.1, HTTP/2, HTTP/3
- add `http::Protocol` type to `http::RequestExt`
- add `http::RequestExt::protocol` method
## Change
- use `http-body-alt` crate for generic http body type and streaming interface
`futures::Stream` -> `http_body_alt::Body`
`Bytes` -> `http_body_alt::Frame<Bytes>`
- use `http-body-alt` crate for concrete http body type
`Once` -> `http_body_alt::Full`
`NoneBody` -> `http_body_alt::Empty`
`Either` -> `http_body_alt::Either`
- `body::ResponseBody` methods rename
`none` -> removed
`box_stream` -> `boxed`
`stream` -> `body`
- update `xitca-io` to `0.6.0`
- update `xitca-tls` to `0.6.0`
- use completion based API for all I/O operations
## Remove
- remove all `futures::Stream` trait interface
# 0.8.2
## Fix
- fix perf regression in io_uring dispatcher
# 0.8.1
## Change
- update `xitca-router` to `0.4.0`. Beware this is an unstable feature breaking change
# 0.8.0
## Change
- remove `date::DATE_VALUE_LENGTH` from public export
- rename `date::DateTime::DATE_VALUE_LENGTH` const to `DATE_SIZE_HINT`. It's default value is the same as removed `DATE_VALUE_LENGTH`
- update `xitca-server` to `0.6.1`
- update `xitca-tls` to `0.5.1`
- update `xitca-io` to `0.5.1`
- update `socket2` to `0.6.0`
- update `tokio` to `1.48`
- update `h3` to `0.0.8`
- update `h3-quinn` to `0.0.10`
# 0.7.0
## Change
- bump MSRV to `1.85` and Rust edition 2024
- update `xitca-service` to `0.3.0`
# 0.6.0
## Change
- bump MSRV to `1.79`
- update `h3` to `0.0.6`
- update `h3-quinn` to `0.0.7`
- update `xitca-io` to `0.4.0`
- update `xitca-router` to `0.3.0`
- update `xitca-service` to `0.2.0`
- update `xitca-tls` to `0.4.0`
- update `xitca-unsafe-collection` to `0.2.0`
- update `tokio-uring` to `0.5.0`
# 0.5.0
## Change
- update `xitca-io` to `0.3.0`
- update `xitca-tls` to `0.3.0`
- update `h3` to `0.0.5`
- update `h3-quinn` to `0.0.6`
# 0.4.1
## Fix
- fix panic when using `rustls/ring` feature together with `xitca-http/rustls`
- fix panic when using `rustls/ring` feature together with `xitca-http/rustls-uring`
## Change
- update `xitca-io` to `0.2.1`
- update `xitca-tls` to `0.2.3`
# 0.4.0
## Add
- `util::service::router::PathGen` and `util::service::router::RouteObject` for advanced routing behavior. enabling more complex routing like multiple layer of router nesting. Example:
```rust
Router::new()
.insert("/api", Router::new()
.insert("/v2", Router::new().insert("/login", fn_service(..)))
);
Router::new().insert("/api/v2", Router::new().insert("/login", fn_service(..)));
```
## Change
- `util::service::router::RouterGen` is renamed to `RouteGen`. It's API is shrunk to generating route service only. For route path generating please reference `util::service::router::PathGen`.
- `body::Either` doesn't expose it's enum variants in public API anymore.
- relax `Stream::Item` associated type when impl on `body::BoxBody::new` and `body::ResponseBody::boxed_stream` types. Instead of requiring the stream to yield `Ok<Bytes>` it now accepts types `Ok<impl Into<Bytes>>`.
- update `xitca-io` to `0.2.0`.
- update `xitca-tls` to `0.2.0`.
# 0.3.0
## Add
- add `util::middleware::catch_unwind`. A middleware catches panic and output it as error.
## Change
- `body::ResponseBody` doesn't expose it's enum variants in public API anymore.
- `util::middleware::Logger` does not expect `tracing::Span` anymore instead it wants `tracing::Level` for defining the verbosity of span. it would make new span per request with given `Level`. `Logger` middleware requires the service type it enclosed with it's `Service::Error` type bound to `std::error::Error` trait instead of only `std::fmt::Debug`. providing a better tracing output.
- update `xitca-unsafe-collection` to `0.1.1`.
# 0.2.2
## Change
- `set-cookie` header is not folded into single line of header value anymore.
# 0.2.1
## Change
- update `h3` to `0.0.4`.
- update `h3-quinn` to `0.0.5`.
# 0.2.0
## Change
- `h1::proto::context::Context::encode_headers` does not want `Extensions` type argument anymore. It also wants `&mut HeaderMap` instead of `HeaderMap` to avoid consuming ownership of it.
- update `xitca-router` to `0.2.0`