/convex-rs

Rust client library for Convex

Primary LanguageRustApache License 2.0Apache-2.0

Convex

The official Rust client for Convex.

GitHub

Convex is the backend application platform with everything you need to build your product.

This Rust client can write and read data from a Convex backend with queries, mutations, and actions. Get up and running at docs.convex.dev.

Join us on Discord to share what you're working on or get your questions answered.

Installation

Add the following to your Cargo.toml file

[dependencies]
convex = "*"

Example

let mut client = ConvexClient::new(DEPLOYMENT_URL).await?;
let mut subscription = client.subscribe("getCounter", vec![]).await?;
while let Some(new_val) = subscription.next().await {
    println!("Counter updated to {new_val:?}");
}

Documentation

Check out the full convex documentation at docs.convex.dev The rust API docs are available on docs.rs

MSRV

The Convex rust client works on stable rust 1.65.0 and higher. It also works on nightly.

Debug Logging

The Convex Rust Client uses the tracing crate for logging. One common way of initializing is via tracing_subscriber. Then, you can see debug logging by running your program with RUST_LOG=convex=debug.

tracing_subscriber::fmt()
    .with_env_filter(tracing_subscriber::EnvFilter::from_default_env())
    .init();

By default, this will emit all logs, including internal logs from the client. Logs from your Convex backend will show up under the convex_logs target at Level=DEBUG. If you want to isolate just those logs, please refer to the tracing_subscriber documentation.