Installation
Warning: This is a community maintained crate, and is still under development. It is not officially supported by PostHog.
Install the posthog-rs crate by adding it to your Cargo.toml.
[dependencies]posthog-rs = "0.2.0"
Next, set up the client with your PostHog project key.
let client = posthog_rs::client(env!("<ph_project_api_key>"));
Note: Currently, there is no way to customize the host that events are sent to, and we default to
app.posthog.com
Capturing events
You can send custom events using capture:
let mut event = Event::new("user_signed_up", "distinct_id_of_the_user");client.capture(event).unwrap();
Tip: We recommend using a '[object][verb]' format for your event names, where '[object]' is the entity that the behavior relates to, and '[verb]' is the behavior itself. For example, project created, user signed up, or invite sent.
Setting event properties
Optionally, you can also include additional information in the event by setting the properties value:
let mut event = Event::new("user_signed_up", "distinct_id_of_the_user");event.insert_prop("login_type", "email").unwrap();event.insert_prop("is_free_trial", true).unwrap();client.capture(event).unwrap();
Batching events
To capture multiple events at once, use batch():
let event1 = posthog_rs::Event::new("event 1", "distinct_id_of_user_A");let event2 = posthog_rs::Event::new("event 2", "distinct_id_of_user_B");client.capture_batch(vec![event1, event2]).unwrap();
Feature flags
PostHog's feature flags enable you to safely deploy and roll back new features.
Feature flags are not supported yet in our community-maintained Rust SDK. However, you can integrate them into your project by using the PostHog API.