Rust SDK
The Rust SDK ships today for server-side Conduit integrations.
Status
The Rust crate is available now with a stable onboarding surface for reports, matching, webhooks, and advanced primitives. This page keeps the scope honest: use the crate for async server-side Rust services and workers, and use the REST API directly when you need an endpoint or runtime path the shipped crate does not cover yet.
Stable surface today​
- crate name:
conduit-rs - docs.rs crate path:
conduit_rs - runtime: server-side Rust
conduit.reports().create(...)conduit.reports().get(...)conduit.matching().create(...)conduit.matching().get(...)conduit.webhooks().verify_signature(...)conduit.webhooks().parse_event(...)- advanced stable primitives under
conduit.primitives()formedia,jobs, andentities
Install​
cargo add conduit-rs
Recommended workflow​
- Build a server-side client with
Conduit::builder("sk_..."). - Call
conduit.reports().create(...)orconduit.matching().create(...). - Attach a webhook endpoint for production completion.
- Verify the raw webhook body before parsing the event.
- Keep
receipt.handle.wait()andreceipt.handle.stream()for scripts, local development, and controlled tooling.
Quick example​
use conduit_rs::{Conduit, ReportCreate, ReportTemplate, Source, Target, WebhookEndpoint};
#[tokio::main]
async fn main() -> Result<(), conduit_rs::Error> {
let conduit = Conduit::builder("sk_...").build()?;
let receipt = conduit
.reports()
.create(
ReportCreate::new(
Source::url("https://storage.example.com/call.wav"),
ReportTemplate::GeneralReport,
Target::dominant(),
)
.webhook(WebhookEndpoint::new("https://your-app.com/webhooks/conduit")),
)
.await?;
println!("queued report job: {}", receipt.job_id);
Ok(())
}
Runtime and completion notes​
Source::file(...),Source::url(...), andSource::path(...)are supported in server-side Rust runtimes.reports().create(...)andmatching().create(...)return after upload when needed and job acceptance, not after analysis completion.Source::url(...)fetches the remote file in the SDK runtime and then uploads it to Conduit.- Current upload-capable source helpers materialize data in memory before submission.
- Production flows should finish on verified webhooks because report and matching jobs are asynchronous and commonly take around 150 seconds.
When to use direct API instead​
Use the REST API directly when you need:
- an endpoint that is not exposed on the shipped Rust surface yet
- a non-server runtime path
- full control over raw HTTP requests or a custom integration shape