# connect-rust First 30 Minutes Wiki > connect-rust is a tower-based ConnectRPC runtime for Rust that lets you build and consume gRPC, gRPC-Web, and Connect-protocol services using generated Rust code from .proto files. It ships three crates — a runtime library, a code-generation library, and a build.rs integration — wired together through a Tower service model. This is a Grok-Wiki source-grounded repository wiki. Use the complete Markdown link when an agent needs the full repo context. ## Context Links - [Complete Markdown wiki](https://grok-wiki.com/public/wiki/anthropics-connect-rust-abe117693c52/llms-full.txt) - [Complete Markdown alias](https://grok-wiki.com/public/wiki/anthropics-connect-rust-abe117693c52.md) - [Human interactive wiki](https://grok-wiki.com/public/wiki/anthropics-connect-rust-abe117693c52) - [GitHub repository](https://github.com/anthropics/connect-rust) ## Repository - Repository: anthropics/connect-rust - Generated: 2026-05-21T02:35:35.889Z - Updated: 2026-05-21T21:34:43.297Z - Runtime: Claude Code - Format: First 30 Minutes - Pages: 6 ## Pages - [Start Here: What This Repo Is & Where to Begin](https://grok-wiki.com/public/wiki/anthropics-connect-rust-abe117693c52/pages/01-start-here-what-this-repo-is-where-to-begin.md): What connect-rust is, the three-crate layout (connectrpc / connectrpc-codegen / connectrpc-build), the fastest read order for a new contributor, key vocabulary (ConnectRPC, buffa, Tower service, Spec, StreamType), and which files to open first. - [Build Setup & Code Generation Pipeline](https://grok-wiki.com/public/wiki/anthropics-connect-rust-abe117693c52/pages/02-build-setup-code-generation-pipeline.md): How .proto files become Rust service traits: connectrpc-build in build.rs, the protoc-gen-connect-rust buf plugin, the two generation modes (unified vs. service-stubs-only), checked-in generated directories, and the task generate:all workflow. - [Handlers, Router & ConnectRpcService](https://grok-wiki.com/public/wiki/anthropics-connect-rust-abe117693c52/pages/03-handlers-router-connectrpcservice.md): The server-side dispatch path: implementing the generated FooService handler trait, registering methods on Router, wrapping the router in ConnectRpcService (the Tower service), and mounting it with Axum or raw Hyper. Covers unary and streaming handler shapes. - [Interceptors & Spec Metadata](https://grok-wiki.com/public/wiki/anthropics-connect-rust-abe117693c52/pages/04-interceptors-spec-metadata.md): RPC-level interceptors as a typed alternative to Tower middleware: Interceptor trait, Next/NextStream continuations, unary vs. streaming intercept surfaces, registration order, and zero-cost opt-out. Also covers Spec (per-method static metadata) and StreamType, which interceptors use to label spans and gate behaviour without re-parsing URLs. - [Protocol, Codec & Client Transport](https://grok-wiki.com/public/wiki/anthropics-connect-rust-abe117693c52/pages/05-protocol-codec-client-transport.md): How the three wire protocols (Connect, gRPC, gRPC-Web) are detected and demultiplexed; envelope framing (5-byte header); codec format selection (proto vs. JSON); compression (gzip, zstd); and the client-side Tower HTTP transport in connectrpc/src/client/. Covers where to look when adding a new codec or compression algorithm. - [After 30 Minutes: What to Try Next](https://grok-wiki.com/public/wiki/anthropics-connect-rust-abe117693c52/pages/06-after-30-minutes-what-to-try-next.md): Synthesis of what you now understand — the codegen pipeline, Tower dispatch, interceptor chain, and protocol demux — plus concrete next actions: run the conformance suite, walk the examples (eliza, multiservice, streaming-tour, wasm-client), read docs/guide.md sections on TLS and streaming, and understand how task ci gates every PR. ## Source Files - `Cargo.toml` - `CHANGELOG.md` - `conformance/buf.gen.yaml` - `conformance/Cargo.toml` - `connectrpc-build/src/lib.rs` - `connectrpc-codegen/src/codegen.rs` - `connectrpc-codegen/src/lib.rs` - `connectrpc-codegen/src/plugin.rs` - `connectrpc/src/axum.rs` - `connectrpc/src/client/http2.rs` - `connectrpc/src/client/mod.rs` - `connectrpc/src/codec.rs` - `connectrpc/src/compression.rs` - `connectrpc/src/dispatcher.rs` - `connectrpc/src/envelope.rs` - `connectrpc/src/error.rs` - `connectrpc/src/grpc_status.rs` - `connectrpc/src/handler.rs` - `connectrpc/src/interceptor.rs` - `connectrpc/src/lib.rs` - `connectrpc/src/payload.rs` - `connectrpc/src/protocol.rs` - `connectrpc/src/response.rs` - `connectrpc/src/router.rs` - `connectrpc/src/service.rs` - `connectrpc/src/spec.rs` - `CONTRIBUTING.md` - `docs/guide.md` - `examples/eliza/src` - `examples/eliza/src/generated` - `examples/multiservice/src` - `examples/streaming-tour/src` - `examples/wasm-client/src` - `README.md` - `Taskfile.yaml`