Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

64 Commits

Repository files navigation

Segment

Test StatusAPI

This crate is an unofficial segment analytics client for Rust used by Meilisearch

Example usage(s)

use segment::{HttpClient,Client,AutoBatcher,Batcher};use segment::message::{Track,User};use serde_json::json;#[tokio::main(flavor = "current_thread")]asyncfnmain(){let write_key = "YOUR_WRITE_KEY";let client = HttpClient::default();let batcher = Batcher::new(None);letmut batcher = AutoBatcher::new(client, batcher, write_key.to_string());// Pretend this is reading off of a queue, a file, or some other data// source.for i in0..100{let msg = Track{user:User::UserId{user_id:format!("user-{}", i)},event:"Example Event".to_owned(),properties:json!({"foo": format!("bar-{}", i),}),
..Default::default()};// An error here indicates a message is too large. In real life, you// would probably want to put this message in a deadletter queue or some// equivalent.
batcher.push(msg).await.unwrap();}
batcher.flush().await.unwrap();}

or when you want to do struct to struct transformations

use segment::{HttpClient,Client};use segment::message::{Track,Message,User};use serde_json::json;#[tokio::main(flavor = "current_thread")]asyncfnmain(){let write_key = "YOUR_WRITE_KEY";let client = HttpClient::default();
client.send(write_key.to_string(),Message::from(Track{user:User::UserId{user_id:"some_user_id".to_owned()},event:"Example Event".to_owned(),properties:json!({"some property":"some value","some other property":"some other value",}),
..Default::default()})).await.expect("could not send to Segment");}

License

Licensed under MIT license.

About

Segment analytics client for Rust https://segment.com/docs/libraries/rust

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages