← Ecosystem

12 Runtime

runtime-go

Go runtime engine and transport adapters for the universal Protobuf mesh.

Packages

runtime-go is a Go multi-module workspace — import only the modules you need (the orm driver never pulls in go-ethereum, and vice-versa). Every package carries a doc.go; this table is generated from those docs by tools/docgen (make docs). See each package’s Go doc for how it works and example usage.

PackageImport pathSummary
agentsgithub.com/the-protobuf-project/runtime-go/agentsPackage agents serves the protocols a model-driven client speaks to a service: build one Runtime, register the protocols it should answer, start it.
agents/a2agithub.com/the-protobuf-project/runtime-go/agents/a2aPackage a2a serves an agent over the Agent2Agent protocol: the agent card that describes it, the transports it answers on, and the execution loop that turns a request into a stream of events.
agents/mcpgithub.com/the-protobuf-project/runtime-go/agents/mcpPackage mcp provides the Go runtime for the code protoc-gen-mcp generates: server configuration, transport handling, and MCP integration helpers.
agents/sharedgithub.com/the-protobuf-project/runtime-go/agents/sharedPackage shared holds what every protocol runtime in this module would otherwise copy.
blockchain/evmgithub.com/the-protobuf-project/runtime-go/blockchain/evmPackage evm implements the backend-agnostic store.Driver against an EVM chain, driving the Solidity storage contracts protorm generates.
blockchain/fabricgithub.com/the-protobuf-project/runtime-go/blockchain/fabricPackage fabric is a placeholder store.Driver for Hyperledger Fabric chaincode.
cachegithub.com/the-protobuf-project/runtime-go/cachePackage cache is the contract for runtime-go’s cache layer: the interfaces, and nothing that implements them.
cache/coregithub.com/the-protobuf-project/runtime-go/cache/corePackage core implements every cache strategy once, over a Driver.
cache/dragonflygithub.com/the-protobuf-project/runtime-go/cache/dragonflyPackage dragonfly is the Dragonfly preset.
cache/examplegithub.com/the-protobuf-project/runtime-go/cache/exampleCommand example runs the cache’s three steps — build a client, declare the cache, select a database — against every backend this module supports, and exercises all four strategies over each.
cache/memcachedgithub.com/the-protobuf-project/runtime-go/cache/memcachedPackage memcached is the memcached backend, and the argument for the driver split.
cache/redisgithub.com/the-protobuf-project/runtime-go/cache/redisPackage redis is the Redis preset.
cache/respgithub.com/the-protobuf-project/runtime-go/cache/respPackage resp is the driver for anything speaking the Redis serialization protocol: Redis itself, Dragonfly, Valkey, KeyDB.
cache/sharedgithub.com/the-protobuf-project/runtime-go/cache/sharedPackage shared holds the telemetry this module’s code logs and measures through.
databasegithub.com/the-protobuf-project/runtime-go/databasePackage database stores Go structs in whichever backend you point it at.
database/arangodbgithub.com/the-protobuf-project/runtime-go/database/arangodbPackage arangodb implements the backend-agnostic store.Driver over ArangoDB, and the graph capability alongside it.
database/cachedgithub.com/the-protobuf-project/runtime-go/database/cachedPackage cached puts a read-through cache in front of any store.Driver, so a record read repeatedly is fetched from the backing store once.
database/coregithub.com/the-protobuf-project/runtime-go/database/corePackage core is the code every store driver would otherwise copy.
database/examples/simple/mongodbgithub.com/the-protobuf-project/runtime-go/database/examples/simple/mongodbCommand mongodb stores Go structs in MongoDB.
database/examples/simple/sqlgithub.com/the-protobuf-project/runtime-go/database/examples/simple/sqlCommand sql stores the same struct in a relational database.
database/examples/simple/timescalegithub.com/the-protobuf-project/runtime-go/database/examples/simple/timescaleCommand timescale stores Go structs as time-series data.
database/examples/store/cachedgithub.com/the-protobuf-project/runtime-go/database/examples/store/cachedCommand cached puts a read-through cache in front of a store.
database/examples/store/documentgithub.com/the-protobuf-project/runtime-go/database/examples/store/documentCommand document stores records in MongoDB and watches them change.
database/examples/store/graphgithub.com/the-protobuf-project/runtime-go/database/examples/store/graphCommand graph stores records and the connections between them.
database/examples/store/internal/modelgithub.com/the-protobuf-project/runtime-go/database/examples/store/internal/modelPackage model builds the resource descriptors the examples store.
database/examples/store/keyvaluegithub.com/the-protobuf-project/runtime-go/database/examples/store/keyvalueCommand keyvalue stores records in Redis.
database/examples/store/sqlgithub.com/the-protobuf-project/runtime-go/database/examples/store/sqlCommand sql stores records in a relational database.
database/examples/store/timeseriesgithub.com/the-protobuf-project/runtime-go/database/examples/store/timeseriesCommand timeseries partitions a resource by time and reduces over it.
database/mongodbgithub.com/the-protobuf-project/runtime-go/database/mongodbPackage mongodb implements the backend-agnostic store.Driver over MongoDB.
database/ormgithub.com/the-protobuf-project/runtime-go/database/ormPackage orm implements the backend-agnostic store.Driver over GORM.
database/redisgithub.com/the-protobuf-project/runtime-go/database/redisPackage redis implements the backend-agnostic store.Driver over Redis: durable records addressed by a store.Resource’s primary key, stored as proto wire format, with a set of keys alongside so they can be listed.
database/storegithub.com/the-protobuf-project/runtime-go/database/storePackage store is the backend-agnostic core of the runtime data layer: a single CRUD Driver contract that operates on proto messages, a Resource descriptor that mirrors protorm’s IR at runtime, and a reflection bridge every driver reuses to move values between a proto message and a backend column map.
database/timescalegithub.com/the-protobuf-project/runtime-go/database/timescalePackage timescale implements the time-series half of the database contract over TimescaleDB.
grpcgithub.com/the-protobuf-project/runtime-go/grpcPackage grpc provides HybridServer — a single server that simultaneously speaks gRPC, HTTP/1.1 JSON gateway (via grpc-gateway), optional HTTP/3 (QUIC), an MCP (Model Context Protocol) endpoint, and an A2A (Agent2Agent) endpoint, all sharing the same port and TLS configuration.
grpc/optionsgithub.com/the-protobuf-project/runtime-go/grpc/optionsPackage options holds the configuration for the grpc HybridServer: service identity (name, description, version), the gRPC/HTTP/MCP endpoints, the environment mode, the health/HTTP-3 toggles, and the OpenTelemetry metric selection.
grpc/sharedgithub.com/the-protobuf-project/runtime-go/grpc/sharedPackage shared holds the process-wide singletons the grpc server initializes once and tears down on exit — currently the Pulse observability client ([Pulse]), constructed in an init with the service identity, log level, and tracing enabled.
interfaces/adaptergithub.com/the-protobuf-project/runtime-go/interfaces/adapterPackage adapter is the generic gRPC layer between a protorm-generated service and a store.Driver.
networkgithub.com/the-protobuf-project/runtime-go/networkPackage network provides GraphQL, HTTP, and WebSocket clients behind a single factory (NewConnection) with consistent connection options and optional connectivity verification.
network/examples/graphqlgithub.com/the-protobuf-project/runtime-go/network/examples/graphqlCommand graphql is a runnable example of using the network package’s GraphQL client to issue queries, mutations, and subscriptions against an endpoint.
network/examples/httpgithub.com/the-protobuf-project/runtime-go/network/examples/httpCommand http is a runnable example of using the network package’s HTTP client to perform GET, POST, and other requests with retries and context support.
network/examples/websocketgithub.com/the-protobuf-project/runtime-go/network/examples/websocketCommand websocket is a runnable example of using the network package’s WebSocket client for full-duplex Send/Receive with auto-reconnect and keepalive.
network/graphqlgithub.com/the-protobuf-project/runtime-go/network/graphqlPackage graphql provides small helpers and scalar types for generated GraphQL clients: pointer constructors for optional (nullable) arguments, and scalar types that tolerate engine-specific JSON encodings.
network/runtimegithub.com/the-protobuf-project/runtime-go/network/runtimePackage runtime is the stable, single-import facade that generated GraphQL clients depend on.
observabilitygithub.com/the-protobuf-project/runtime-go/observabilityPackage observability wires runtime-go modules to the opentelementry SDK.
streamsgithub.com/the-protobuf-project/runtime-go/streamsPackage streams defines the backend-agnostic contract for runtime-go’s messaging layer.
streams/codec/protobufgithub.com/the-protobuf-project/runtime-go/streams/codec/protobufPackage protobuf encodes stream payloads as protocol buffers.
streams/coregithub.com/the-protobuf-project/runtime-go/streams/corePackage core is the code every streams provider would otherwise copy.
streams/examples/kafkagithub.com/the-protobuf-project/runtime-go/streams/examples/kafkaCommand kafka demonstrates the streams contract over Apache Kafka.
streams/examples/mqttgithub.com/the-protobuf-project/runtime-go/streams/examples/mqttCommand mqtt demonstrates the streams contract over MQTT 5.
streams/examples/natsgithub.com/the-protobuf-project/runtime-go/streams/examples/natsCommand nats demonstrates the streams contract over NATS, in both forms, against a live server.
streams/examples/rabbitmqgithub.com/the-protobuf-project/runtime-go/streams/examples/rabbitmqCommand rabbitmq demonstrates the streams contract over RabbitMQ.
streams/examples/redisgithub.com/the-protobuf-project/runtime-go/streams/examples/redisCommand redis demonstrates the streams contract in all three of the Redis provider’s delivery modes, against a live Redis.
streams/examples/zeromqgithub.com/the-protobuf-project/runtime-go/streams/examples/zeromqCommand zeromq demonstrates the streams contract over ZeroMQ PUB/SUB.
streams/kafkagithub.com/the-protobuf-project/runtime-go/streams/kafkaPackage kafka delivers streams over Apache Kafka.
streams/mqttgithub.com/the-protobuf-project/runtime-go/streams/mqttPackage mqtt delivers streams over MQTT 5.
streams/natsgithub.com/the-protobuf-project/runtime-go/streams/natsPackage nats delivers streams over NATS, in two forms.
streams/rabbitmqgithub.com/the-protobuf-project/runtime-go/streams/rabbitmqPackage rabbitmq delivers streams over RabbitMQ.
streams/redisgithub.com/the-protobuf-project/runtime-go/streams/redisPackage redis implements streams.Streams over Redis.
streams/sharedgithub.com/the-protobuf-project/runtime-go/streams/sharedPackage shared holds the telemetry this module’s code logs and measures through.
streams/zeromqgithub.com/the-protobuf-project/runtime-go/streams/zeromqPackage zeromq delivers streams over ZeroMQ PUB/SUB.
telemetrygithub.com/the-protobuf-project/runtime-go/telemetryPackage telemetry defines the backend-agnostic Meter contract that generated and hand-written code instruments against.
ulidgithub.com/the-protobuf-project/runtime-go/ulidPackage ulid generates sortable, collision-resistant identifiers for runtime-go modules.
network/examples/graphql/serverserverCommand server is a minimal GraphQL server used by the GraphQL client example; it serves a generated schema so the example queries, mutations, and subscriptions have a live endpoint to run against.

Contributing

Issues and pull requests are welcome. Please open an issue before submitting a large change so we can discuss the approach first.

License

Apache 2.0 — see LICENSE.

© 2026 the-protobuf-project

See it on a real schema.

The editor opens an annotated .proto beside the output the actual plugin binaries produced from it.

Open the editor
GitHub