| Crates.io | runtara-protocol |
| lib.rs | runtara-protocol |
| version | 1.4.1 |
| created_at | 2025-12-17 14:06:23.92961+00 |
| updated_at | 2026-01-10 20:11:57.974886+00 |
| description | Wire protocol layer for runtara (QUIC transport and Protobuf messages) |
| homepage | |
| repository | https://github.com/runtara/runtara |
| max_upload_size | |
| id | 1990304 |
| size | 160,459 |
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.
This crate is the foundation layer used by all other Runtara crates. It provides:
Add to your Cargo.toml:
[dependencies]
runtara-protocol = "1.0"
use runtara_protocol::quic::{QuicClient, ClientConfig};
// Configure the client
let config = ClientConfig {
server_addr: "127.0.0.1:8001".parse()?,
server_name: "localhost".to_string(),
skip_cert_verification: false,
};
// Create and connect
let client = QuicClient::new(config)?;
let connection = client.connect().await?;
use runtara_protocol::instance::{RegisterRequest, RegisterResponse};
use runtara_protocol::send_request;
// Create a register request
let request = RegisterRequest {
instance_id: "my-instance".to_string(),
tenant_id: "tenant-123".to_string(),
..Default::default()
};
// Send and receive response
let response: RegisterResponse = send_request(&connection, request).await?;
use runtara_protocol::quic::{QuicServer, ServerConfig};
let config = ServerConfig {
bind_addr: "0.0.0.0:8001".parse()?,
..Default::default()
};
let server = QuicServer::new(config)?;
while let Some(connection) = server.accept().await {
tokio::spawn(async move {
// Handle connection
});
}
The crate includes Protobuf definitions for:
instance.proto): Communication between workflow instances and runtara-core
environment.proto): Management SDK to runtara-environment
management.proto): Internal communication between environment and core
environment.protoruntara-sdk - High-level SDK built on this protocolruntara-management-sdk - Management client using this protocolThis project is licensed under AGPL-3.0-or-later.