Rust SDK v0.13.0
By Steven Van ·
The release adds text analysis and caption helpers, with breaking changes to usage fields and custom base URL handling.
Text Intelligence analysis, caption helpers and expanded Voice Agent controls are now available in Deepgram’s Rust SDK v0.13.0. The release also changes how applications handle usage fields, streaming responses and requests sent through a custom base URL.
Text analysis and captions
TextIntelligence analysis supports optional partial-response fields, callbacks and a standalone read feature. New SRT and WebVTT helpers provide speaker-safe grouping and millisecond timestamps. Pre-recorded and streaming responses expose extra metadata, while Entity::raw_value preserves spoken text before formatting.
Voice Agent and speech output
Voice Agent gains Flux and Aura settings, integer Deepgram Speak V2 expressivity, listen controls, raw messages and typed server events. Typed JSON events and synthesized audio are preserved in wire order, with support for unknown values.
Speech output adds streaming TTS options, local validation, bounded close handling, shared TLS configuration and named Aura-2 models. Model listing uses the configured base URL and includes outdated models and expanded metadata. Self-hosted deployments also gain typed distribution credential management with redacted secrets and forward-compatible scopes.
Changes to existing code
- Details::duration and Details::total_audio are now Option<f64>; Details::channels and Details::streams are now Option<usize>. Applications must handle None deliberately because an omitted meter group does not necessarily mean zero usage.
- Management and Auth::grant calls now use the configured base URL. Applications that need those calls to reach the hosted API must create a separate client with Deepgram::new(api_key) or Deepgram::with_temp_token(token). A base URL with a path prefix must end in / to preserve that prefix.
- Streaming metadata and terminal responses are now non-exhaustive. External struct literals must be replaced with deserialized values, and exhaustive patterns must include .. .
- Named Whisper and redaction values now parse to dedicated variants. Code matching those strings as CustomId or Other must use the named variants or compare wire values.
- Speak::speak_to_file no longer prints a success message to stdout. Applications can print their own message if needed.
Streaming fixes
The release fixes a streaming worker that stopped when the idle timer fired without keep-alive, Flux TTS terminal-error deadlocks under event backpressure, and usage decoding when the audio meter group is omitted. Voice Agent fixes also address inbound audio starvation, require secure remote WebSockets and redact credentials.
The v0.13.0 release notes include the full list of additions, fixes and breaking changes.