Expand description
Official Rust client for StreamFlow Pulse — the AI Agent Platform.
§Quick start
use pulse_client::PulseClient;
#[tokio::main]
async fn main() -> Result<(), pulse_client::PulseError> {
let client = PulseClient::builder()
.base_url("http://localhost:9090")
.build()?;
client.auth().login("alice", "secret").await?;
for pipeline in client.pipelines().list().await? {
println!("{}", pipeline["name"]);
}
Ok(())
}§Surface
Mirrors the Python (pulse-py), JavaScript (@olsisoft/pulse-client),
Java (com.streamflow:pulse-client) and Go (github.com/olsisoft/pulse-go)
SDKs 1:1:
auth()— login, refresh, organisations, switch orgpipelines()— list, get, create, deleteagents()— list, gettemplates()— listusers()— list (admin only)events()— Server-Sent Events streamiq()— B-106 Interactive Queries on agent statestreams()— B-107 Kafka-Streams-like DSLversion()— public, no JWT required
§Wire format
Every method corresponds 1:1 to an endpoint in the Pulse OpenAPI 3.1 spec
(streamflow-pulse/src/main/resources/openapi/openapi.yaml). Drift caught
at PR time by the in-tree spec invariant tests (B-103).
Modules§
Structs§
- Agents
Resource - Auth
Resource - Branch
Spec - One branch of
StreamBuilder::branch. - Broadcast
Join Options - Options for
StreamBuilder::broadcast_join. - CdcJoin
Options - Options for
StreamBuilder::cdc_join. - CepOptions
- Options for
StreamBuilder::cep. - Enrich
Async Options - Options for
StreamBuilder::enrich_async. - Events
Resource client.events()— accessor for the SSE event stream.- Events
Stream Stream<Item = Result<Value, PulseError>>— yields parsed SSE events.- IQQuery
Options - Optional inputs for
IQResource::query. - IQResource
client.iq()— accessor for Interactive Queries.- IQScan
Options - Optional range bounds + page size for
IQResource::scanandIQResource::list_keys. - MapOptions
- Options for
StreamBuilder::map. - Pipelines
Resource - Pulse
Client - Async HTTP client for the Pulse REST API.
- Pulse
Client Builder - Fluent builder for
PulseClient. - Stream
Builder - Fluent builder for a Pulse streaming pipeline.
- Streams
Resource client.streams()— compile + deployStreamBuilderpipelines.- Templates
Resource - Users
Resource - Window
Options - Options for
StreamBuilder::window. - Window
Spec - A window specification. Compiled to the string form the server expects.
Enums§
- Pulse
Error - The single error type returned by every
PulseClientmethod. - Value
- Represents any valid JSON value.
Constants§
- VERSION
- Current SDK version (matches
Cargo.tomland the Pulse server it targets).
Functions§
- iq_and
- Builds an AND filter combining all children.
- iq_leaf
- Builds a leaf filter node:
{"field": ..., "op": ..., "value": ...}. Pass an emptyopto omit it (e.g. for anexists-style test where the field’s mere presence suffices). - iq_not
- Builds a NOT filter negating its child.
- iq_or
- Builds an OR filter combining all children.