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 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.