Skip to main content
To send data from a Rust app to Axiom, use the Axiom Rust SDK.
The Axiom Rust SDK is an open-source project and welcomes your contributions. For more information, see the GitHub repository.

Prerequisites

Install SDK

Add the following to your Cargo.toml:
Replace VERSION with the latest version number specified on the GitHub Releases page. For example, 0.11.0. If you use the Axiom CLI, run eval $(axiom config export -f) to configure your environment variables. Otherwise, create an API token and export it as AXIOM_TOKEN.

Use client

For more examples, see the examples in GitHub.

Configure region

By default, the client sends data to api.axiom.co. To target a specific edge region, add the with_edge method to the builder with the edge domain that matches the region your dataset lives in:
The following edge domains are available: For more information about edge deployments, see Edge deployments. You can also configure the region without changing code by exporting environment variables. When you build the client with Client::new(), these are read automatically:
To point at a custom edge endpoint such as a proxy or load balancer, use .with_edge_url("https://your-edge-host"). with_edge_url takes precedence over with_edge if both are set.
Edge endpoints require an API token (xaat-), not a personal token (xapt-). Ingesting with a personal token against an edge endpoint returns a PersonalTokenNotSupportedForEdge error.

Optional features

You can use the Cargo features:
  • default-tls: Provides TLS support to connect over HTTPS. Enabled by default.
  • native-tls: Enables TLS functionality provided by native-tls.
  • rustls-tls: Enables TLS functionality provided by rustls.
  • tokio: Enables usage with the tokio runtime. Enabled by default.
  • async-std: Enables usage with the async-std runtime.