pub struct Client { /* private fields */ }Expand description
RPC client for Kimberlite.
This client uses synchronous I/O to communicate with a Kimberlite server
using the binary wire protocol.
§Example
ⓘ
use kimberlite_client::{Client, ClientConfig};
use kimberlite_types::{DataClass, TenantId};
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()])?;Implementations§
Source§impl Client
impl Client
Sourcepub fn connect(
addr: impl ToSocketAddrs,
tenant_id: TenantId,
config: ClientConfig,
) -> ClientResult<Self>
pub fn connect( addr: impl ToSocketAddrs, tenant_id: TenantId, config: ClientConfig, ) -> ClientResult<Self>
Connects to a Kimberlite server.
Sourcepub fn create_stream(
&mut self,
name: &str,
data_class: DataClass,
) -> ClientResult<StreamId>
pub fn create_stream( &mut self, name: &str, data_class: DataClass, ) -> ClientResult<StreamId>
Creates a new stream.
Sourcepub fn create_stream_with_placement(
&mut self,
name: &str,
data_class: DataClass,
placement: Placement,
) -> ClientResult<StreamId>
pub fn create_stream_with_placement( &mut self, name: &str, data_class: DataClass, placement: Placement, ) -> ClientResult<StreamId>
Creates a new stream with a specific placement policy.
Sourcepub fn append(
&mut self,
stream_id: StreamId,
events: Vec<Vec<u8>>,
) -> ClientResult<Offset>
pub fn append( &mut self, stream_id: StreamId, events: Vec<Vec<u8>>, ) -> ClientResult<Offset>
Appends events to a stream.
Returns the offset of the first appended event.
Sourcepub fn query(
&mut self,
sql: &str,
params: &[QueryParam],
) -> ClientResult<QueryResponse>
pub fn query( &mut self, sql: &str, params: &[QueryParam], ) -> ClientResult<QueryResponse>
Executes a SQL query.
Sourcepub fn query_at(
&mut self,
sql: &str,
params: &[QueryParam],
position: Offset,
) -> ClientResult<QueryResponse>
pub fn query_at( &mut self, sql: &str, params: &[QueryParam], position: Offset, ) -> ClientResult<QueryResponse>
Executes a SQL query at a specific position.
Sourcepub fn read_events(
&mut self,
stream_id: StreamId,
from_offset: Offset,
max_bytes: u64,
) -> ClientResult<ReadEventsResponse>
pub fn read_events( &mut self, stream_id: StreamId, from_offset: Offset, max_bytes: u64, ) -> ClientResult<ReadEventsResponse>
Reads events from a stream.
Sourcepub fn sync(&mut self) -> ClientResult<()>
pub fn sync(&mut self) -> ClientResult<()>
Syncs all data to disk.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Client
impl RefUnwindSafe for Client
impl Send for Client
impl Sync for Client
impl Unpin for Client
impl UnwindSafe for Client
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more