#api #toml #meter-client

openmeter

A Rust client for OpenMeter API

2 releases

new 0.1.2 Mar 15, 2025
0.1.1 Mar 15, 2025

#748 in Web programming

MIT license

34KB
666 lines

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(())
}

Dependencies

~4–20MB
~196K SLoC