runtara-protocol
Wire protocol layer for the Runtara durable execution platform. Provides QUIC transport and Protobuf message definitions for communication between workflow instances and the execution engine.
Overview
This crate is the foundation layer used by all other Runtara crates. It provides:
- QUIC Transport: Fast, secure communication using the Quinn library
- Protobuf Messages: Type-safe message definitions generated by prost
- TLS Support: Built-in certificate generation and verification
- Connection Management: Client and server connection utilities
Installation
Add to your Cargo.toml:
[]
= "1.0"
Usage
Creating a QUIC Client
use ;
// Configure the client
let config = ClientConfig ;
// Create and connect
let client = new?;
let connection = client.connect.await?;
Sending Protocol Messages
use ;
use send_request;
// Create a register request
let request = RegisterRequest ;
// Send and receive response
let response: RegisterResponse = send_request.await?;
Creating a QUIC Server
use ;
let config = ServerConfig ;
let server = new?;
while let Some = server.accept.await
Protocol Definitions
The crate includes Protobuf definitions for:
- Instance Protocol (
instance.proto): Communication between workflow instances and runtara-core- Register, checkpoint, signal polling, completion
- Environment Protocol (
environment.proto): Management SDK to runtara-environment- Image registration, instance lifecycle, status queries
- Management Protocol (
management.proto): Internal communication between environment and core- Health, signals, instance status, checkpoint listing/fetch
- Instance lifecycle and image registration are not exposed here; they live in
environment.proto
Related Crates
runtara-sdk- High-level SDK built on this protocolruntara-management-sdk- Management client using this protocol
License
This project is licensed under AGPL-3.0-or-later.