# google/tarpc

An RPC framework for Rust with a focus on ease of use.

Repository: https://github.com/google/tarpc
Canonical: https://ross.abutalabs.com/products/tarpc
Language: Rust
License: MIT
License Family: permissive
Topics: rpc-framework, asynchronous-programming, tokio, rust, futures
Last push: 2026-08-12T04:43:00+00:00

## Health v2 (maintenance only)
Score: 76/100 (v2, computed 2026-09-03T02:20:16.233290+00:00)
- activity 97, release rhythm 35, longevity 100
- inputs: {"age_days": 3857, "days_push": 21, "days_rel": null, "gap_med": null, "n_releases_24m": 0}
- flags: no_releases
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 3736, forks 229 (observed 2026-08-28T04:08:15.825106+00:00)

## What it is
tarpc is an RPC framework for Rust focused on ease of use, letting you define services directly in code without a separate schema language like protobuf. It supports pluggable transports, cascading cancellation, deadline propagation, and distributed tracing via OpenTelemetry.

## Use cases
- build microservices in Rust with typed RPC
- replace gRPC with a pure-Rust, no-proto RPC framework
- call functions on a remote process over a pluggable transport
- propagate request deadlines across service call chains
- add distributed tracing to Rust service-to-service calls
- cancel in-flight remote requests by dropping the client call

## When to choose
- you want RPC schemas defined in Rust code with no separate IDL compilation step
- you need cascading cancellation and deadline propagation across services
- your stack is Rust on both client and server and you want minimal boilerplate
- you need a pluggable transport rather than being locked to HTTP/2

## When to avoid
- you need cross-language clients/servers (e.g., browser or Python callers) where protobuf-based gRPC fits better
- you require a mature ecosystem of gateways and tooling built around gRPC
- you need a stable 1.0 API - tarpc is still pre-1.0

## Facets
- artifact type: library
- maturity: active
- function: rpc, middleware, tracing
- domain: backend, microservices, apis, developer-tools
- platform: rust, cross-platform
- tags: rpc-framework, tokio, async, futures, schema-in-code, deadline-propagation, cascading-cancellation

## Member repositories
- google/tarpc (main) score 76

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:08:15.825106+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-29T18:29:10.786943+00:00, confidence not recorded.
  - readme: https://github.com/google/tarpc (fetched 2026-08-28T04:08:15.825106+00:00, sha 4b3c104d8577)
  - registry_crates: https://crates.io/api/v1/crates/tarpc (fetched 2026-08-29T09:23:35.719466+00:00, sha 26ac534cee4a)
- Data as of 2026-08-30T08:39:29.467469+00:00.
