Skip to content

gRPC API

The gRPC API is available on port 50051 and is recommended for low-latency control plane operations.

syntax = "proto3";
package bruhi.v1;
service EngineService {
rpc GetHealth (Empty) returns (HealthResponse);
rpc CreatePipeline (CreatePipelineRequest) returns (Pipeline);
rpc ListPipelines (Empty) returns (PipelineList);
rpc DeletePipeline (DeletePipelineRequest) returns (Empty);
rpc StreamMetrics (Empty) returns (stream MetricsEvent);
}
message Pipeline {
string id = 1;
string name = 2;
string status = 3;
string created_at = 4;
}
message CreatePipelineRequest {
string name = 1;
InputConfig input = 2;
repeated ProcessingStep processing = 3;
OutputConfig output = 4;
}
import grpc
from bruhi.v1 import engine_pb2, engine_pb2_grpc
channel = grpc.insecure_channel('localhost:50051')
stub = engine_pb2_grpc.EngineServiceStub(channel)
# Check health
health = stub.GetHealth(engine_pb2.Empty())
print(f"Engine status: {health.status}")
# Stream real-time metrics
for event in stub.StreamMetrics(engine_pb2.Empty()):
print(f"CPU: {event.cpu_percent}%, Pipelines: {event.active_pipelines}")