| Crates.io | better-posthog |
| lib.rs | better-posthog |
| version | 0.2.3 |
| created_at | 2025-12-20 08:55:36.777132+00 |
| updated_at | 2026-01-25 09:26:00.069166+00 |
| description | An ergonomic Rust SDK for PostHog |
| homepage | |
| repository | https://github.com/niusia-ua/better-posthog-rust |
| max_upload_size | |
| id | 1996234 |
| size | 83,534 |
better_posthogAn ergonomic Rust SDK for PostHog.
before_send option.use better_posthog::{events, Event};
fn main() {
// Initialize the client.
let _guard = better_posthog::init(better_posthog::ClientOptions {
api_key: Some("phc_your_api_key".into()),
..Default::default()
});
// Capture a single event.
events::capture(Event::new("page_view", "user_123"));
// Use the builder for more control.
events::capture(
Event::builder()
.event("button_click")
.distinct_id("user_123")
.property("button_id", "submit")
.build()
);
// Batch multiple events.
events::batch(vec![
Event::new("event_1", "user_123"),
Event::new("event_2", "user_123"),
]);
// Guard drop triggers graceful shutdown.
}
let _guard = better_posthog::init(better_posthog::ClientOptions {
api_key: Some("phc_your_api_key".into()),
host: better_posthog::Host::EU, // or `Host::US`, `Host::Custom(String::from("https://..."))`
before_send: vec![], // Hooks to edit, filter, or sample events before sending.
shutdown_timeout: std::time::Duration::from_secs(5),
});