mirror of
https://github.com/hanzoai/insights-rs.git
synced 2026-10-30 18:33:10 +00: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
-
Boolean Flags: Simple on/off toggles
FlagValue::Boolean(true) // enabled FlagValue::Boolean(false) // disabled -
Multivariate Flags: Multiple variants for A/B/n testing
FlagValue::String("control") FlagValue::String("variant-a") FlagValue::String("variant-b")
Evaluation Methods
- Remote Evaluation: Calls Insights API for the latest flag values
- 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
- Feature Rollouts: Gradually release features to users
- A/B Testing: Test different variants to measure impact
- User Targeting: Enable features for specific user segments
- Kill Switches: Quickly disable problematic features
- Beta Programs: Give early access to beta users