Skip to content

Releases: PostHog/posthog-rs

0.13.1

15 Jun 20:09
Immutable release. Only release title and notes can be modified.
57350a3

Choose a tag to compare

Patch changes

0.13.0

15 Jun 17:51
Immutable release. Only release title and notes can be modified.
4fd45ea

Choose a tag to compare

Minor changes

0.12.0

12 Jun 13:20
Immutable release. Only release title and notes can be modified.
cb50d97

Choose a tag to compare

Minor changes

  • d35ffa7 Add manual Rust error tracking capture APIs, enabled by default via the error-tracking feature. — Thanks @cat-ph for your first contribution 🎉!

0.11.0

11 Jun 06:51
Immutable release. Only release title and notes can be modified.
04df31a

Choose a tag to compare

Minor changes

  • b84ec43 Add OS runtime context properties to captured events. — Thanks @marandaneto!
  • dba50e1 Add before_send hooks for mutating or dropping events before capture. — Thanks @marandaneto!

0.10.2

10 Jun 19:53
Immutable release. Only release title and notes can be modified.
af311cc

Choose a tag to compare

Patch changes

  • 7131402 capture_batch with an empty event list is now a no-op on both clients and
    both capture paths — no HTTP request is sent (the v1 backend rejects empty
    batches). Also derives Debug for the internal retry Step and pins that a
    body-less 2xx response is a terminal serialization error, not a retry. — Thanks @eli-r-ph!

0.10.1

10 Jun 19:08
Immutable release. Only release title and notes can be modified.
3e70819

Choose a tag to compare

Patch changes

  • 4a6c67c Three fixes to the unstable capture-v1 pipeline (off by default):

    • Accept any 2xx HTTP status as success on V1 capture responses instead of exactly 200, so a future 201/202/207 from capture is not misclassified as a connection error. Malformed bodies on 2xx still surface as Error::Serialization.
    • Send the canonical SDK identity posthog-rs/<version> (previously posthog-rust/<version>) in the posthog-sdk-info and user-agent headers. The name segment now matches the $lib value the v0 path sends, so capture-side $lib/$lib_version materialization attributes V1 traffic correctly in SDK Health, usage reports, and Library columns.
    • Route $feature_flag_called events through the V1 analytics endpoint when capture-v1 is enabled (previously they always took the legacy v0 path, splitting the pipeline). Shipping stays fire-and-forget with a single attempt and no retry loop, matching the v0 flag-event semantics on both the async and blocking clients. — Thanks @eli-r-ph!

0.10.0

05 Jun 13:56
Immutable release. Only release title and notes can be modified.
e3b61c7

Choose a tag to compare

Minor changes

  • b4a60a7 feat(feature-flags): support early_exit in local evaluation

    Adds support for the early_exit option on a feature flag's filters during local evaluation. When early_exit is true and a condition group's property filters match (or it has no property filters) but the rollout percentage excludes the user, evaluation now stops and returns a definitive disabled result instead of falling through to later condition groups. A property-filter mismatch always falls through, regardless of early_exit. The flag defaults to false (absent), preserving the existing fall-through behavior. This mirrors the PostHog Rust evaluation engine and the posthog-node/posthog-python implementations. — Thanks @gustavohstrassburger!

0.9.1

05 Jun 03:24
Immutable release. Only release title and notes can be modified.
87d7557

Choose a tag to compare

Patch changes

  • f757768 Serialize the v0 capture distinct_id at the event root (canonical field) instead of the legacy $distinct_id alias, matching v1 and the v0 ingestion contract. Add retries to the v0 capture paths: transport errors and 408/500/502/503/504 are retried with exponential backoff honoring Retry-After, and a 429 is retried only when it carries a Retry-After (a bare 429 stays a terminal rate-limit). Retried requests resend the same bytes, preserving the event UUID and timestamp that dedup relies on. Add opt-in gzip compression for v0 capture via capture_compression: the body is gzipped with a Content-Encoding: gzip header and a compression=gzip query param (capture reads the query param on v0).

    Fix the retry backoff timing on both v0 and v1: the first retry now waits exactly retry_initial_backoff_ms instead of double it (the call sites previously passed attempt + 1 into the backoff calculation, skipping the configured initial delay). — Thanks @eli-r-ph!

0.9.0

04 Jun 19:39
Immutable release. Only release title and notes can be modified.
aaa7177

Choose a tag to compare

Minor changes

  • 79673c3 Add V1 capture pipeline (/i/v1/analytics/events/) behind the unstable capture-v1 Cargo feature (off by default). Includes gzip/deflate/br/zstd compression, automatic partial-batch retry with exponential backoff, per-event options (cookieless mode, skew correction, person profile, product tour), and historical migration support. A separate test-harness feature enables injecting extra request headers for compliance test isolation. — Thanks @eli-r-ph for your first contribution 🎉!

0.8.0

03 Jun 18:05
Immutable release. Only release title and notes can be modified.
f3f8602

Choose a tag to compare

Minor changes

  • edd3797 Add a configurable $is_server event property (default true) so PostHog can identify server-side events. Set is_server to false when using posthog-rs as a client/CLI so the device OS is attributed normally. — Thanks @turnipdabeets for your first contribution 🎉!