RPC Dart
Transport-agnostic RPC framework for Dart. Write a contract once and run it in process, over HTTP/2 with the real gRPC wire, HTTP/1.1, WebSocket, isolates or a WebAssembly bridge. Unary and all three streaming shapes, deadlines, cancellation, flow control and resource limits included.
Install
dart pub add rpc_dart
Start with the rpc_dart README. Each transport package's README covers its own setup.
Using an AI coding agent
rpc_dart ships an Agent Skill: verified reference material
for contracts, endpoints, streaming, errors, limits and testing, matched to
the version you depend on. Install it into your project:
dart run skills@ get
It goes into .claude/skills/, .agents/skills/ or
your agent's equivalent. On an SDK without dart run <package>@,
add skills as a dev dependency and run
dart run skills get. See the
skills CLI.
Packages
| rpc_dart | Core: contracts, endpoints, streaming, in-process transport |
| rpc_dart_http2 | HTTP/2 transport, gRPC wire compatible |
| rpc_dart_http | HTTP/1.1 transport, unary only |
| rpc_dart_websocket | WebSocket transport, web-safe client |
| rpc_dart_isolate | Isolate and web worker transport |
| rpc_dart_wasm | WebAssembly bridge transport (Flutter) |
| rpc_dart_generator | Contracts generated from annotated interfaces |
| rpc_dart_framework | Modules, DI, lifecycle, graceful shutdown |
| rpc_dart_compression | Gzip codec, web compatible |
| rpc_dart_opentelemetry | Tracing, metrics and logs |
| rpc_dart_log | Remote log collector |
| rpc_dart_grpc_reflection | gRPC server reflection |
| rpc_data | Data service layer: CRUD, queries, change streams (Postgres, SQLite) |
| rpc_notify | Topic-based push notifications (Postgres, Redis) |
| rpc_blob | Streamed blob storage (MinIO/S3, SQLite, WebDAV) |