| Crates.io | openmeter |
| lib.rs | openmeter |
| version | 0.1.2 |
| created_at | 2025-03-15 16:38:44.983779+00 |
| updated_at | 2025-03-15 18:18:31.827936+00 |
| description | A Rust client for OpenMeter API |
| homepage | |
| repository | |
| max_upload_size | |
| id | 1593667 |
| size | 34,751 |
A rust client for OpenMeter.
Add the following to your Cargo.toml:
[dependencies]
openmeter = "0.1.1"
use openmeter::MeterClient;
let client = MeterClient::new("https://api.openmeter.co/v1", "your-api-token");
use openmeter::{MeterClient, CreateMeterRequest};
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let client = MeterClient::new("https://openmeter.cloud".to_string(), "YOUR_SECRET_TOKEN".to_string());
// Create a meter
let create_req = CreateMeterRequest {
slug: "tokens_total".to_string(),
name: Some("Tokens Total".to_string()),
description: Some("AI Token Usage".to_string()),
aggregation: "SUM".to_string(),
event_type: "prompt".to_string(),
event_from: None,
value_property: Some("$.tokens".to_string()),
group_by: None,
metadata: None,
};
let meter = client.create_meter(&create_req).await?;
println!("Created meter: {:?}", meter);
// ... other usage: get, list, update meters, ingest events, etc.
Ok(())
}