diff --git a/CHANGELOG.md b/CHANGELOG.md index a2498c3..ed8fde0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,32 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [0.8.0](https://github.com/zen-rs/http-kit/compare/v0.7.0...v0.8.0) - 2026-11-11 + +### Added + +- *(body)* [**breaking**] poll_frame_offering takes an optional offer +- *(io)* [**breaking**] name stream sockets by registered file slots on io_uring +- *(h1)* send queued buffers through write_all_owned +- *(io)* [**breaking**] zero-copy send for large writes on io_uring +- accessors for WithMiddleware's endpoint and middleware +- *(h1)* [**breaking**] receive through ReadOwned +- *(io)* [**breaking**] multishot receive into the runtime's provided buffer ring +- [**breaking**] per-request receive deadlines, and typed failures for a body that ends early +- *(tls)* [**breaking**] a typed handshake error +- *(io)* [**breaking**] per-capability traits replace Io, and a resolver joins them + +### Other + +- *(h1)* drop an unused import +- *(h1)* reuse one pipe per connection for spliced bodies +- Merge remote-tracking branch 'origin/main' into feat/126-send-zc +- *(h3)* clone the compio driver into the curl server +- Merge remote-tracking branch 'origin/main' into feat/145-request-deadlines +- Merge remote-tracking branch 'origin/main' into feat/146-tls-handshake-error +- *(io)* drop an unused import +- Merge remote-tracking branch 'origin/main' into feat/124-multishot-accept + ## [0.7.0](https://github.com/zen-rs/http-kit/compare/v0.6.0...v0.7.0) - 2026-11-11 ### Added diff --git a/Cargo.toml b/Cargo.toml index 47b9a1d..941906c 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -3,7 +3,7 @@ members = ["io", "h1", "h3", "tls"] [package] name = "http-kit" -version = "0.7.0" +version = "0.8.0" edition = "2021" rust-version = "1.87" authors = ["Lexo Liu "] @@ -55,7 +55,7 @@ optional = true # The pipe types a `BodyFrame::Pipe` carries. Linux and Android only, like the # frame. [target.'cfg(any(target_os = "linux", target_os = "android"))'.dependencies.http-kit-io] -version = "0.5.0" +version = "0.6.0" path = "io" optional = true @@ -77,4 +77,4 @@ thiserror = "2.0.17" tokio = { version = "1.0", features = ["macros", "rt-multi-thread"] } [target.'cfg(any(target_os = "linux", target_os = "android"))'.dev-dependencies] -http-kit-io = { version = "0.5.0", path = "io", features = ["tokio"] } +http-kit-io = { version = "0.6.0", path = "io", features = ["tokio"] } diff --git a/h1/CHANGELOG.md b/h1/CHANGELOG.md index 569c818..ed67157 100644 --- a/h1/CHANGELOG.md +++ b/h1/CHANGELOG.md @@ -7,6 +7,22 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [0.6.0](https://github.com/zen-rs/http-kit/compare/h1/v0.5.0...h1/v0.6.0) - 2026-11-11 + +### Added + +- *(body)* [**breaking**] poll_frame_offering takes an optional offer +- *(h1)* send queued buffers through write_all_owned +- *(io)* [**breaking**] zero-copy send for large writes on io_uring +- *(h1)* [**breaking**] receive through ReadOwned +- [**breaking**] per-request receive deadlines, and typed failures for a body that ends early +- *(io)* [**breaking**] per-capability traits replace Io, and a resolver joins them + +### Other + +- *(h1)* drop an unused import +- *(h1)* reuse one pipe per connection for spliced bodies + ## [0.5.0](https://github.com/zen-rs/http-kit/compare/h1/v0.4.0...h1/v0.5.0) - 2026-11-11 ### Added diff --git a/h1/Cargo.toml b/h1/Cargo.toml index 1e9dadd..467ae05 100644 --- a/h1/Cargo.toml +++ b/h1/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "http-kit-h1" -version = "0.5.0" +version = "0.6.0" edition = "2024" rust-version = "1.95" authors = ["Lexo Liu "] @@ -21,8 +21,8 @@ fs = ["http-kit/fs"] pipe = ["http-kit/pipe"] [dependencies] -http-kit = { version = "0.7.0", path = "..", default-features = false, features = ["std"] } -http-kit-io = { version = "0.5.0", path = "../io" } +http-kit = { version = "0.8.0", path = "..", default-features = false, features = ["std"] } +http-kit-io = { version = "0.6.0", path = "../io" } http = { version = "1.5.0", default-features = false, features = ["std"] } bytes = { version = "1.12.1", default-features = false, features = ["std"] } httparse = { version = "1.10.1", default-features = false } @@ -33,7 +33,7 @@ thiserror = { version = "2.0.17", default-features = false } tracing = { version = "0.1.44", default-features = false, features = ["std"] } [dev-dependencies] -http-kit-io = { version = "0.5.0", path = "../io", features = ["tokio", "compio"] } +http-kit-io = { version = "0.6.0", path = "../io", features = ["tokio", "compio"] } compio = { version = "0.19.2", default-features = false, features = ["runtime"] } tokio = { version = "1.54.1", default-features = false, features = ["rt"] } diff --git a/h3/CHANGELOG.md b/h3/CHANGELOG.md index 81bd032..bf79fca 100644 --- a/h3/CHANGELOG.md +++ b/h3/CHANGELOG.md @@ -7,6 +7,18 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [0.6.0](https://github.com/zen-rs/http-kit/compare/h3/v0.5.0...h3/v0.6.0) - 2026-11-11 + +### Added + +- *(io)* [**breaking**] zero-copy send for large writes on io_uring +- [**breaking**] per-request receive deadlines, and typed failures for a body that ends early +- *(io)* [**breaking**] per-capability traits replace Io, and a resolver joins them + +### Other + +- *(h3)* clone the compio driver into the curl server + ## [0.5.0](https://github.com/zen-rs/http-kit/compare/h3/v0.4.0...h3/v0.5.0) - 2026-11-11 ### Added diff --git a/h3/Cargo.toml b/h3/Cargo.toml index 9a8ad7b..a0e24e6 100644 --- a/h3/Cargo.toml +++ b/h3/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "http-kit-h3" -version = "0.5.0" +version = "0.6.0" edition = "2024" rust-version = "1.95" authors = ["Lexo Liu "] @@ -36,8 +36,8 @@ pipe = ["quiche", "http-kit/pipe"] [dependencies] quiche = { version = "0.30.0", default-features = false, features = ["boringssl-boring-crate"], optional = true } boring = { version = "5.4.0", default-features = false, optional = true } -http-kit = { version = "0.7.0", path = "..", default-features = false, features = ["std"], optional = true } -http-kit-io = { version = "0.5.0", path = "../io", optional = true } +http-kit = { version = "0.8.0", path = "..", default-features = false, features = ["std"], optional = true } +http-kit-io = { version = "0.6.0", path = "../io", optional = true } http = { version = "1.5.0", default-features = false, features = ["std"], optional = true } bytes = { version = "1.12.1", default-features = false, features = ["std"], optional = true } async-channel = { version = "2.5.0", default-features = false, features = ["std"], optional = true } @@ -48,7 +48,7 @@ tracing = { version = "0.1.44", default-features = false, features = ["std"], op [dev-dependencies] socket2 = { version = "0.6.5", default-features = false } -http-kit-io = { version = "0.5.0", path = "../io", features = ["tokio", "compio"] } +http-kit-io = { version = "0.6.0", path = "../io", features = ["tokio", "compio"] } compio = { version = "0.19.2", default-features = false, features = ["runtime"] } tokio = { version = "1.54.1", default-features = false, features = ["rt"] } diff --git a/io/CHANGELOG.md b/io/CHANGELOG.md index d8fba01..bc83eca 100644 --- a/io/CHANGELOG.md +++ b/io/CHANGELOG.md @@ -7,6 +7,21 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [0.6.0](https://github.com/zen-rs/http-kit/compare/io/v0.5.0...io/v0.6.0) - 2026-11-11 + +### Added + +- *(io)* [**breaking**] name stream sockets by registered file slots on io_uring +- *(io)* [**breaking**] zero-copy send for large writes on io_uring +- *(io)* [**breaking**] multishot receive into the runtime's provided buffer ring +- *(io)* [**breaking**] per-capability traits replace Io, and a resolver joins them + +### Other + +- *(io)* drop an unused import +- Merge remote-tracking branch 'origin/main' into feat/124-multishot-accept +- *(io)* accept with one multishot submission on io_uring + ## [0.5.0](https://github.com/zen-rs/http-kit/compare/io/v0.4.0...io/v0.5.0) - 2026-11-11 ### Added diff --git a/io/Cargo.toml b/io/Cargo.toml index 60809b5..120677d 100644 --- a/io/Cargo.toml +++ b/io/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "http-kit-io" -version = "0.5.0" +version = "0.6.0" edition = "2024" rust-version = "1.95" authors = ["Lexo Liu "] diff --git a/tls/CHANGELOG.md b/tls/CHANGELOG.md index c887f71..d659078 100644 --- a/tls/CHANGELOG.md +++ b/tls/CHANGELOG.md @@ -7,6 +7,19 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [0.4.0](https://github.com/zen-rs/http-kit/compare/tls/v0.3.0...tls/v0.4.0) - 2026-11-11 + +### Added + +- *(io)* [**breaking**] zero-copy send for large writes on io_uring +- *(io)* [**breaking**] multishot receive into the runtime's provided buffer ring +- *(tls)* [**breaking**] a typed handshake error +- *(io)* [**breaking**] per-capability traits replace Io, and a resolver joins them + +### Fixed + +- *(tls)* positioned read on WASI + ## [0.3.0](https://github.com/zen-rs/http-kit/compare/tls/v0.2.2...tls/v0.3.0) - 2026-11-11 ### Added diff --git a/tls/Cargo.toml b/tls/Cargo.toml index 2fdc26c..d527bad 100644 --- a/tls/Cargo.toml +++ b/tls/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "http-kit-tls" -version = "0.3.0" +version = "0.4.0" edition = "2024" rust-version = "1.95" authors = ["Lexo Liu "] @@ -19,7 +19,7 @@ categories = ["network-programming", "cryptography", "asynchronous"] kernel = ["dep:ktls-sys", "dep:libc", "dep:zeroize"] [dependencies] -http-kit-io = { version = "0.5.0", path = "../io" } +http-kit-io = { version = "0.6.0", path = "../io" } rustls = { version = "0.23.46", default-features = false, features = ["std"] } futures-lite = { version = "2.6.1", default-features = false, features = ["std"] } thiserror = { version = "2.0.21", default-features = false } @@ -31,9 +31,9 @@ zeroize = { version = "1.9.1", default-features = false, optional = true } libc = { version = "0.2.191", default-features = false, optional = true } [dev-dependencies] -http-kit = { version = "0.7.0", path = "..", default-features = false, features = ["std", "fs"] } -http-kit-io = { version = "0.5.0", path = "../io", features = ["compio", "tokio"] } -http-kit-h1 = { version = "0.5.0", path = "../h1", features = ["fs"] } +http-kit = { version = "0.8.0", path = "..", default-features = false, features = ["std", "fs"] } +http-kit-io = { version = "0.6.0", path = "../io", features = ["compio", "tokio"] } +http-kit-h1 = { version = "0.6.0", path = "../h1", features = ["fs"] } rustls = { version = "0.23.46", default-features = false, features = ["std", "ring", "tls12"] } rcgen = { version = "0.14.10", default-features = false, features = ["crypto", "ring", "pem"] } http = { version = "1.5.0", default-features = false, features = ["std"] }