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
, orinvite sent
.
Setting event properties
Optionally, you can include additional information with the event by including a properties object:
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 as well as target specific users and groups with them.
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.