Vibeleaderboard
Index / tool
Visit github.com
Category
Developer Tools
Rank

Previous survey · No. 760 ·

Pricing
Open Source
Type
TOOL
Builder
anthropics
GitHub
509 stars
Latest release
v0.9.0
Date

About

Rust implementation of the ConnectRPC protocol for building HTTP-based RPC services.

What it does

Connect-Rust turns protobuf service definitions into typed Rust servers and clients. Its Tower-based runtime accepts Connect, gRPC, and gRPC-Web traffic, supports binary and JSON messages, and handles unary plus streaming calls through one service registration.

Why it's ranked here

The runtime covers three related protocols and all four RPC shapes, while remaining compatible with Tower-based HTTP stacks. Its strongest credibility signal is passing the full ConnectRPC conformance suite. The verdict remains qualified because the public API is explicitly pre-1.0 and may change during minor releases.

What's good

Teams can generate service traits, clients, and message types either during Cargo builds or as checked-in output through Buf. Feature flags separate client, server, TLS, JSON, compression, streaming, and Axum support. Standard health checking and server reflection are supplied as companion crates. Borrowed request views can avoid copying string data from request buffers.

Tradeoffs

The minimum supported compiler is Rust 1.88 with the 2024 edition. Generated services depend on Buffa message types and views, so this is not a neutral protobuf backend. Checked-in generation requires multiple plugins and careful module mounting. Disabling JSON requires coordinated generator and runtime settings across the dependency graph. Browsers cannot stream request bodies, and full-duplex calls require HTTP/2.

How to use it well

Use it for Rust services that must serve Connect, gRPC, and gRPC-Web clients from shared protobuf schemas. Prefer build-time generation for simple projects and checked-in Buf output for multi-language or structured pipelines. Pair the runtime with Axum for application routing, or enable its built-in server for simpler deployments. It does not remove browser streaming limits.

Technical notes+

Cargo.toml defines a Rust workspace containing the runtime, code generator, build integration, health, reflection, conformance, examples, tests, and benchmarks. connectrpc/src/lib.rs denies unsafe code, exposes Tower-first routing and service types, and gates server, TLS, and Axum integrations with Cargo features. connectrpc-build/src/lib.rs acquires descriptors through protoc, Buf, or a precompiled FileDescriptorSet, then emits Buffa messages and ConnectRPC stubs into OUT_DIR. connectrpc-health/src/lib.rs implements the standard gRPC health service with optional generated client support. conformance/src/lib.rs uses length-prefixed protobuf messages over stdin and stdout to communicate with the external conformance runner.

Observed

License
Apache-2.0
Primary language
Rust, using the 2024 edition
Minimum Rust version
Rust 1.88
Interfaces
Rust runtime library, protoc and Buf code-generation plugin, and Cargo build integration
Packaging
Runtime and companion crates are published through Cargo; code generation is also available as prebuilt binaries and a Buf Schema Registry remote plugin
Prebuilt plugin platforms
Linux x86_64 and aarch64, macOS x86_64 and aarch64, and Windows x86_64
Protocol surface
Connect, gRPC, and gRPC-Web with unary, server-streaming, client-streaming, and bidirectional RPC shapes
Workspace structure
Separate runtime, codegen, build, health, reflection, conformance, example, test, and benchmark packages

Read from README.md, Cargo.toml, docs/guide.md, connectrpc/src/lib.rs, benches/rpc-go/main.go, conformance/src/lib.rs, connectrpc/src/server.rs, benches/charts/generate.py, benches/rpc-tonic/build.rs, connectrpc-build/src/lib.rs, connectrpc-health/src/lib.rs, connectrpc-codegen/src/lib.rs, benches/rpc/format-results.py.

What it can do

  • Define RPC service interfaces

    Protocol buffer definitionsRust service trait definitions

  • Generate HTTP/2 endpoints from RPC definitions

    RPC service definitionsHTTP/2 server endpoints

  • Handle bidirectional streaming RPC calls

    Streaming RPC requestsStreaming RPC responses

  • Serialize and deserialize protobuf messages

    Rust structs or protobuf binary dataProtobuf binary data or Rust structs

  • Create RPC clients for service communication

    Service endpoint URLs and method definitionsConfigured RPC client instances

  • Process unary RPC requests and responses

    Single RPC request messagesSingle RPC response messages

  • Handle RPC error responses with proper status codes

    Error conditions and messagesStructured RPC error responses

Tags

rustrpcconnectgrpcanthropic

Tech Stack

Rust

Comments (0)

No comments yet

Editorially curated, with community endorsements as a secondary signal. Corrections welcome.