Documentation
¶
Overview ¶
murmur-codegen-typed generates a typed Connect-RPC service from a pipeline-spec YAML.
Usage:
murmur-codegen-typed --in pipeline-spec.yaml --out gen/
Writes:
gen/<service>.proto — proto messages + service definition gen/<service>_server.go — Go server stub using pkg/query/typed
The user runs buf (or protoc + connect-go plugin) on the .proto to generate the typed message + connect-handler types, then compiles the _server.go alongside their app.
What this tool is NOT: it does not run protoc/buf for you. The generated .proto file is the contract; the user owns the proto pipeline. That keeps the dependency footprint zero and lets the user pin their preferred protoc plugin versions.
Pipeline kinds supported: sum, hll, topk, bloom. Method kinds supported: get_all_time, get_window, get_window_many, get_many, get_range. get_many and get_range are sum-only (the typed clients in pkg/query/typed only expose those methods on SumClient).
spec.go defines the YAML pipeline-spec schema.
One YAML file per service. The codegen emits one .proto and one _server.go file per service. Multiple methods per service share the same underlying Murmur pipeline — different RPCs are different query shapes (GetAllTime / GetWindow / GetWindowMany) over the same monoid.