1 unstable release

Uses new Rust 2024

0.1.0 Feb 12, 2026

#3 in #telemetric


Used in telemetric-client-cli

MIT license

23KB
126 lines

telemetric-client

A Rust-based telemetry system for collecting and storing measurements. The main intention is for use for collecting telemetric data in application. The core design is intended to provide anonymous collection, while satisfying regulations and the right of ownership of data. This is done by:

  • Data is stored without information of provenance.
  • Each reported data is associated with a randomly generated UUID.
  • The UUID are stored on the client, so that the user can request the deletion of his data.

It is worth to note that the stored data is generic, and may contained non-anonymous data. telemetric allows anonymous data collection, but has no way to enforce it.

The telemetric-client crate handles sending of data to the server, and local storing of the UUIDs. It also stores locally the data that was sent, so that a user can inspect what he has shared.

Usage

use telemetric_client::Client;
use yaaral::tokio::Runtime;

#[tokio::main]
async fn main() -> anyhow::Result<()> {
    let client = Client::new(Runtime::current(), "http://localhost:3000".to_string());
    client.report("temperature".to_string(), 42.5).await?;
    Ok(())
}

Dependencies

~17–37MB
~473K SLoC