openmeter

Crates.ioopenmeter
lib.rsopenmeter
version0.1.2
created_at2025-03-15 16:38:44.983779+00
updated_at2025-03-15 18:18:31.827936+00
descriptionA Rust client for OpenMeter API
homepage
repository
max_upload_size
id1593667
size34,751
Patrick Barker (pbarker)

documentation

README

openmeter.rs

A rust client for OpenMeter.

Installation

Add the following to your Cargo.toml:

[dependencies]
openmeter = "0.1.1"

Usage

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(())
}
Commit count: 0

cargo fmt