Crate convex

source ·
Expand description

Convex Client

The official Rust client for Convex.

Convex is the backend application platform with everything you need to build your product. Convex clients can subscribe to queries and perform mutations and actions. Check out the Convex Documentation for more information.

Usage

Native Rust development

To use Convex to create native Rust applications with tokio, you can use the ConvexClient struct directly. All you need is your deployment URL from your existing project, and you can subscribe to queries and call mutations. To make a new project, check out our getting started guide.

use convex::ConvexClient;
use futures::StreamExt;

#[tokio::main]
async fn main() -> anyhow::Result<()> {
    let mut client = ConvexClient::new("https://cool-music-123.convex.cloud").await?;
    client.mutation("sendMessage", maplit::btreemap!{
        "body".into() => "Let it be.".into(),
        "author".into() => "The Beatles".into(),
    }).await?;
    let mut sub = client.subscribe("listMessages", maplit::btreemap!{}).await?;
    while let Some(result) = sub.next().await {
        println!("{result:?}");
    }
    Ok(())
}

Extending client for other programming languages or frameworks.

To extend Convex into non-tokio frameworks, you can use the base_client::BaseConvexClient to build something similar to a ConvexClient.

Detailed examples of both use cases are documented for each struct.

Modules

  • The synchronous state machine for Convex. It’s recommended to use the higher level ConvexClient unless you are building a framework.

Structs

Enums