Files
zeekay 0b551fde0a Rename crate from posthog-rs to insights-rs
Full rebrand: package name, all source references, docs, examples.
2026-03-06 22:42:03 -08:00
..

Insights Rust SDK Examples

This directory contains example applications demonstrating how to use the Insights Rust SDK, particularly the feature flags functionality.

Running the Examples

1. Feature Flags Example

Basic examples of all feature flag operations:

# With a real Insights API key
export POSTHOG_API_TOKEN=phc_your_key
cargo run --example feature_flags --features async-client

# Without API key (runs in demo mode)
cargo run --example feature_flags --features async-client

Shows:

  • Boolean feature flag checks
  • A/B test variants (multivariate flags)
  • Property-based targeting
  • Batch flag evaluation
  • Feature flag payloads

2. Local Evaluation Example

Demonstrates local flag evaluation for high-performance use cases:

export POSTHOG_API_TOKEN=phc_your_project_key
export POSTHOG_PERSONAL_API_TOKEN=phx_your_personal_key
cargo run --example local_evaluation --features async-client

Shows:

  • Performance comparison (API vs local evaluation)
  • Setting up local evaluation with polling
  • Batch flag evaluation

Get a personal API key at: https://app.insights.com/me/settings

3. Advanced Configuration Example

Shows different ways to configure the SDK:

cargo run --example advanced_config --features async-client

Shows:

  • Basic client setup (US region)
  • EU region configuration (GDPR compliance)
  • Self-hosted instance configuration
  • Production settings with timeouts and geoip configuration
  • High-performance local evaluation setup

Key Concepts

Feature Flag Types

  1. Boolean Flags: Simple on/off toggles

    FlagValue::Boolean(true)  // enabled
    FlagValue::Boolean(false) // disabled
    
  2. Multivariate Flags: Multiple variants for A/B/n testing

    FlagValue::String("control")
    FlagValue::String("variant-a")
    FlagValue::String("variant-b")
    

Evaluation Methods

  1. Remote Evaluation: Calls Insights API for the latest flag values
  2. Local Evaluation: Uses cached flag definitions for faster evaluation (requires personal API key)

Properties

  • Person Properties: User attributes (country, plan, age, etc.)
  • Group Properties: Organization/team attributes for B2B apps

Common Use Cases

  1. Feature Rollouts: Gradually release features to users
  2. A/B Testing: Test different variants to measure impact
  3. User Targeting: Enable features for specific user segments
  4. Kill Switches: Quickly disable problematic features
  5. Beta Programs: Give early access to beta users