Expand description
Streaming event types and reconstruction.
Both StreamEvent and ContentDelta are forward-compatible: unknown
type tags deserialize into the Other arm with the raw JSON preserved
byte-for-byte. Strict-on-known semantics: a known tag with a malformed
body returns a deserialization error rather than silently falling through.
EventStream is the typed wrapper around the SSE wire format. Two
consumption patterns:
- Event-by-event via
futures_util::StreamExt::next– print text deltas as they arrive (seeexamples/streaming.rs). - Aggregate via
EventStream::aggregate– wait for the fullmessage_start ... message_stopsequence and get back aMessage, identical to whatMessages::createreturns.
§Print text deltas as they arrive
use claude_api::{Client, messages::{CreateMessageRequest, KnownContentDelta,
KnownStreamEvent, ContentDelta, StreamEvent}, types::ModelId};
use futures_util::StreamExt;
let client = Client::new(std::env::var("ANTHROPIC_API_KEY").unwrap());
let request = CreateMessageRequest::builder()
.model(ModelId::SONNET_4_6)
.max_tokens(256)
.user("Tell me a fact.")
.build()?;
let mut stream = client.messages().create_stream(request).await?;
while let Some(event) = stream.next().await {
if let StreamEvent::Known(KnownStreamEvent::ContentBlockDelta {
delta: ContentDelta::Known(KnownContentDelta::TextDelta { text }),
..
}) = event?
{
print!("{text}");
}
}Gated on the streaming feature.
Structs§
- Aggregator
streaming - Reconstructs a
Messagefrom a sequence ofStreamEvents. - Event
Stream streaming - Typed stream of
StreamEvents yielded from a streaming Messages request. - Message
Delta - Late-arriving updates to message-level fields, emitted in
KnownStreamEvent::MessageDelta.
Enums§
- Content
Delta - One delta update inside a
KnownStreamEvent::ContentBlockDelta. - Known
Content Delta - All content-delta variants known to this SDK version.
- Known
Stream Event - All streaming event types known to this SDK version.
- Stream
Event - A single event from the Messages streaming endpoint.