{"adoption": {"forks": 229, "observed_at": "2026-08-28T04:08:15.825106+00:00", "stars": 3736}, "canonical_url": "https://ross.abutalabs.com/products/tarpc", "card": {"archived": false, "artifact_type": "library", "description": "An RPC framework for Rust with a focus on ease of use.", "domain": ["backend", "microservices", "apis", "developer-tools"], "enriched": true, "function": ["rpc", "middleware", "tracing"], "health_score": 78, "homepage": null, "language": "Rust", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["google/tarpc"], "name": "google/tarpc", "platform": ["rust", "cross-platform"], "pushed_at": "2026-08-12T04:43:00+00:00", "repo": "google/tarpc", "stars": 3736, "tags": ["rpc-framework", "tokio", "async", "futures", "schema-in-code", "deadline-propagation", "cascading-cancellation"], "topics": ["rpc-framework", "asynchronous-programming", "tokio", "rust", "futures"], "urls": [], "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"], "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.", "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"], "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"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/tarpc", "repo": "google/tarpc", "role": "main", "score": 76}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:08:15.825106+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T18:29:10.786943+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4b3c104d8577f90bb4838001ddc96f9f27d09ca5ee7a9a2b97f564f6a4ef2671", "fetched_at": "2026-08-28T04:08:15.825106+00:00", "kind": "readme", "missing": false, "url": "https://github.com/google/tarpc"}, {"content_hash": "26ac534cee4a6c35f516a6c30a40c89ce97193bc3eb638b4ab2ea09f8fe7acfc", "fetched_at": "2026-08-29T09:23:35.719466+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/tarpc"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:08:15.825106+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T18:29:10.786943+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4b3c104d8577f90bb4838001ddc96f9f27d09ca5ee7a9a2b97f564f6a4ef2671", "fetched_at": "2026-08-28T04:08:15.825106+00:00", "kind": "readme", "missing": false, "url": "https://github.com/google/tarpc"}, {"content_hash": "26ac534cee4a6c35f516a6c30a40c89ce97193bc3eb638b4ab2ea09f8fe7acfc", "fetched_at": "2026-08-29T09:23:35.719466+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/tarpc"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T18:29:10.786943+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4b3c104d8577f90bb4838001ddc96f9f27d09ca5ee7a9a2b97f564f6a4ef2671", "fetched_at": "2026-08-28T04:08:15.825106+00:00", "kind": "readme", "missing": false, "url": "https://github.com/google/tarpc"}, {"content_hash": "26ac534cee4a6c35f516a6c30a40c89ce97193bc3eb638b4ab2ea09f8fe7acfc", "fetched_at": "2026-08-29T09:23:35.719466+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/tarpc"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:08:15.825106+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:08:15.825106+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:08:15.825106+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T18:29:10.786943+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4b3c104d8577f90bb4838001ddc96f9f27d09ca5ee7a9a2b97f564f6a4ef2671", "fetched_at": "2026-08-28T04:08:15.825106+00:00", "kind": "readme", "missing": false, "url": "https://github.com/google/tarpc"}, {"content_hash": "26ac534cee4a6c35f516a6c30a40c89ce97193bc3eb638b4ab2ea09f8fe7acfc", "fetched_at": "2026-08-29T09:23:35.719466+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/tarpc"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:08:15.825106+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:08:15.825106+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T18:29:10.786943+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4b3c104d8577f90bb4838001ddc96f9f27d09ca5ee7a9a2b97f564f6a4ef2671", "fetched_at": "2026-08-28T04:08:15.825106+00:00", "kind": "readme", "missing": false, "url": "https://github.com/google/tarpc"}, {"content_hash": "26ac534cee4a6c35f516a6c30a40c89ce97193bc3eb638b4ab2ea09f8fe7acfc", "fetched_at": "2026-08-29T09:23:35.719466+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/tarpc"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:08:15.825106+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:08:15.825106+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:08:15.825106+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T18:29:10.786943+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4b3c104d8577f90bb4838001ddc96f9f27d09ca5ee7a9a2b97f564f6a4ef2671", "fetched_at": "2026-08-28T04:08:15.825106+00:00", "kind": "readme", "missing": false, "url": "https://github.com/google/tarpc"}, {"content_hash": "26ac534cee4a6c35f516a6c30a40c89ce97193bc3eb638b4ab2ea09f8fe7acfc", "fetched_at": "2026-08-29T09:23:35.719466+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/tarpc"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:08:15.825106+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:08:15.825106+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T18:29:10.786943+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4b3c104d8577f90bb4838001ddc96f9f27d09ca5ee7a9a2b97f564f6a4ef2671", "fetched_at": "2026-08-28T04:08:15.825106+00:00", "kind": "readme", "missing": false, "url": "https://github.com/google/tarpc"}, {"content_hash": "26ac534cee4a6c35f516a6c30a40c89ce97193bc3eb638b4ab2ea09f8fe7acfc", "fetched_at": "2026-08-29T09:23:35.719466+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/tarpc"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T18:29:10.786943+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4b3c104d8577f90bb4838001ddc96f9f27d09ca5ee7a9a2b97f564f6a4ef2671", "fetched_at": "2026-08-28T04:08:15.825106+00:00", "kind": "readme", "missing": false, "url": "https://github.com/google/tarpc"}, {"content_hash": "26ac534cee4a6c35f516a6c30a40c89ce97193bc3eb638b4ab2ea09f8fe7acfc", "fetched_at": "2026-08-29T09:23:35.719466+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/tarpc"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T18:29:10.786943+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4b3c104d8577f90bb4838001ddc96f9f27d09ca5ee7a9a2b97f564f6a4ef2671", "fetched_at": "2026-08-28T04:08:15.825106+00:00", "kind": "readme", "missing": false, "url": "https://github.com/google/tarpc"}, {"content_hash": "26ac534cee4a6c35f516a6c30a40c89ce97193bc3eb638b4ab2ea09f8fe7acfc", "fetched_at": "2026-08-29T09:23:35.719466+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/tarpc"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T18:29:10.786943+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4b3c104d8577f90bb4838001ddc96f9f27d09ca5ee7a9a2b97f564f6a4ef2671", "fetched_at": "2026-08-28T04:08:15.825106+00:00", "kind": "readme", "missing": false, "url": "https://github.com/google/tarpc"}, {"content_hash": "26ac534cee4a6c35f516a6c30a40c89ce97193bc3eb638b4ab2ea09f8fe7acfc", "fetched_at": "2026-08-29T09:23:35.719466+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/tarpc"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 97, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["no_releases"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3857, "days_push": 21, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 76, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}