12 stable releases (3 major)

5.2.1 Jan 7, 2026
5.2.0 Oct 14, 2025
5.1.0 Mar 6, 2025
4.0.1 Oct 16, 2024
0.1.0 May 14, 2024

#113 in Configuration

Download history 216/week @ 2025-10-14 58/week @ 2025-10-21 62/week @ 2025-10-28 173/week @ 2025-11-04 247/week @ 2025-11-11 156/week @ 2025-11-18 163/week @ 2025-11-25 416/week @ 2025-12-02 129/week @ 2025-12-09 132/week @ 2025-12-16 9/week @ 2025-12-30 258/week @ 2026-01-06 883/week @ 2026-01-13 1137/week @ 2026-01-20 305/week @ 2026-01-27

2,592 downloads per month

MIT license

310KB
6.5K SLoC

Eppo Rust SDK

Crates.io Version Crates.io MSRV docs.rs

Eppo is a modular flagging and experimentation analysis tool. Eppo's Rust SDK is designed to facilitate assignments in multi-user server-side contexts. You will need an Eppo account before proceeding.

Refer to SDK documentation for how to install and use the SDK.

Features

  • Feature gates
  • Kill switches
  • Progressive rollouts
  • A/B/n experiments
  • Mutually exclusive experiments (Layers)
  • Dynamic configuration

Installation

Add it with cargo:

cargo add eppo

Or add it to Cargo.toml manually:

[dependencies]
eppo = "0.1.0"

Quick Start

Initialize an instance of Eppo's client. Once initialized, the client can be used to make assignments in your app.

Initialize Client

use eppo::ClientConfig;

let mut client = ClientConfig::from_api_key("api-key").to_client();
let thread = client.start_poller_thread();

thread.wait_for_configuration_timeout(std::time::Duration::from_secs(5));

Assign Anywhere

let user = get_current_user();

let assignment = client.get_assignment(
    "show-new-feature",
    &user.id,
    &user.attributes,
);

Assignment Logger

Pass a logging callback function to the assignment_logger method in ClientConfig when initializing the SDK to capture assignment data for analysis.

struct MyAssignmentLogger;

impl AssignmentLogger for MyAssignmentLogger {
    fn log_assignment(&self, event: AssignmentEvent) {
        // Implement assignment logging logic here
    }
}

Dependencies

~13–30MB
~380K SLoC