Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
41 changes: 41 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,46 @@ increment the patch version.

## [Unreleased]

## [0.4.2] - 2026-05-07

### Added

- **`connectrpc::axum::serve_tls`** ([#80]). Companion to `serve` that
hands off to the standalone `Server` for the TLS path — wrapping axum
with `tokio_rustls::TlsAcceptor` directly hangs on h2 ALPN
negotiation. Comes with an `examples/mtls-identity` example showing
client-cert extraction in a handler.

### Fixed

- **`connectrpc`: `server` feature now enables `tokio/macros`** ([#80]).
The accept loop in `Server::serve` and the new `axum::serve_tls` both
use `tokio::select!`, but the `server` feature only enabled
`tokio/net`. Crates depending on `connectrpc = { features = ["server"]
}` only compiled when something else in the dependency closure enabled
`tokio/macros` for them. Our conformance suite and examples both have
`tokio = { features = ["macros", …] }` in dev-deps, which kept the gap
hidden in CI.

- **`connectrpc-build`: generated `mod.rs` `#[allow(...)]` is now sourced
from `buffa_codegen::ALLOW_LINTS`.** The hardcoded list had drifted
behind buffa's: it was missing `clippy::uninlined_format_args` (which
buffa enum JSON deserialize errors trip), `clippy::doc_lazy_continuation`,
and `clippy::module_inception`. The `pub mod <pkg>` tree wraps buffa's
per-proto split output (Owned/View/Oneof/Ext/PackageMod) plus our own
`__connect.rs` companions, and the per-proto Owned content has no
`#[allow(...)]` of its own — buffa scopes `package_mod_allow_attr()` to
`__buffa` and `protoc-gen-buffa-packaging` covers the rest with an
inner `#![allow(...)]` that has no analogue in `connectrpc-build`'s
outer-mod layout. Sourcing from `ALLOW_LINTS` (chained with the
`connectrpc-build`-specific `impl_trait_redundant_captures`) keeps the
two from drifting again. Bumps the `buffa-codegen` dependency floor to
`0.5.1`, where `unused_qualifications` landed in `ALLOW_LINTS`. The
checked-in conformance/example/bench output was regenerated against the
buffa 0.5.2 toolchain (`Self::` in oneof serde, inlined format args in
enum serde) — those are codegen *output* changes, not API changes, and
don't affect the floor.

## [0.4.1] - 2026-05-07

### Fixed
Expand Down Expand Up @@ -217,6 +257,7 @@ rebuilds `OUT_DIR` automatically.
`build.rs` context (e.g. from a Bazel genrule or standalone host tool).
Default remains `true`.

[#80]: https://github.com/anthropics/connect-rust/pull/80
[#7]: https://github.com/anthropics/connect-rust/issues/7
[#34]: https://github.com/anthropics/connect-rust/issues/34
[#50]: https://github.com/anthropics/connect-rust/issues/50
Expand Down
10 changes: 8 additions & 2 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -28,10 +28,16 @@ tokio-util = "0.7"
futures = "0.3"
pin-project = "1"

# Protobuf
# Protobuf.
# `buffa-codegen >= 0.5.1` floor: connectrpc-build sources the generated
# `mod.rs` `#[allow(...)]` list from `buffa_codegen::ALLOW_LINTS`, which
# grew `unused_qualifications` in 0.5.1. (The conformance/example regen
# is run against buffa 0.5.2 — Self:: in oneof serde, inlined format
# args in enum serde — but those are codegen *output* changes, not API
# changes, and don't affect this constraint.)
buffa = { version = "0.5", features = ["json"] }
buffa-types = { version = "0.5", features = ["json"] }
buffa-codegen = { version = "0.5" }
buffa-codegen = { version = "0.5.1" }

# Serialization
serde = { version = "1", features = ["derive"] }
Expand Down

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions benches/rpc/src/generated/buffa/bench.noutf8.v1.mod.rs

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

16 changes: 8 additions & 8 deletions benches/rpc/src/generated/buffa/bench.rs

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions benches/rpc/src/generated/buffa/bench.v1.mod.rs

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 4 additions & 4 deletions benches/rpc/src/generated/buffa/bench_noutf8.rs

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions benches/rpc/src/generated/buffa/fortune.v1.mod.rs

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

22 changes: 11 additions & 11 deletions benches/rpc/src/generated/buffa/mod.rs

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading
Loading