Skip to main content

Crate kimberlite_client

Crate kimberlite_client 

Source
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.
ClientConfig
Configuration for the client.
QueryResponse
Query response.
ReadEventsResponse
Read events response.

Enums§

ClientError
Errors that can occur during client operations.
QueryParam
Query parameter value.
QueryValue
Query result value.

Type Aliases§

ClientResult
Result type for client operations.