Expand description
§kmb-client: RPC client for Kimberlite
This crate provides a synchronous RPC client for communicating with
a Kimberlite server using the binary wire protocol defined in kmb-wire.
§Usage
ⓘ
use kimberlite_client::{Client, ClientConfig};
use kimberlite_types::{DataClass, TenantId};
// Connect to server
let mut client = Client::connect(
"127.0.0.1:5432",
TenantId::new(1),
ClientConfig::default(),
)?;
// Create a stream
let stream_id = client.create_stream("events", DataClass::NonPHI)?;
// Append events
let offset = client.append(stream_id, vec![
b"event1".to_vec(),
b"event2".to_vec(),
])?;
// Read events back
let events = client.read_events(stream_id, kimberlite_types::Offset::new(0), 1024)?;
// Execute a query
let result = client.query("SELECT * FROM streams", &[])?;§Configuration
The client can be configured with timeouts and buffer sizes:
ⓘ
use kimberlite_client::ClientConfig;
use std::time::Duration;
let config = ClientConfig {
read_timeout: Some(Duration::from_secs(60)),
write_timeout: Some(Duration::from_secs(30)),
buffer_size: 128 * 1024,
auth_token: Some("secret-token".to_string()),
};Structs§
- Client
- RPC client for
Kimberlite. - Client
Config - Configuration for the client.
- Query
Response - Query response.
- Read
Events Response - Read events response.
Enums§
- Client
Error - Errors that can occur during client operations.
- Query
Param - Query parameter value.
- Query
Value - Query result value.
Type Aliases§
- Client
Result - Result type for client operations.