feature-flag 0.1.0

Server-side feature flag evaluation for async Rust: targeting rules, sticky percentage rollouts, hot reload, zero RNG.
Documentation
{
  "version": "demo-1",
  "flags": [
    {
      "id": "new-checkout-flow",
      "description": "Gradual rollout of the redesigned checkout.",
      "variants": ["control", "treatment"],
      "default_variant": "control",
      "rules": [
        {
          "id": "internal-employees",
          "description": "Always on for internal staff.",
          "when": {
            "kind": "compare",
            "attr": "email",
            "op": "ends_with",
            "value": "@kineticgain.com"
          },
          "outcome": {"kind": "variant", "variant": "treatment"}
        },
        {
          "id": "us-ca-rollout-30pct",
          "description": "30% rollout for US + CA traffic.",
          "when": {
            "kind": "compare",
            "attr": "country",
            "op": "in",
            "value": ["US", "CA"]
          },
          "outcome": {
            "kind": "rollout",
            "variants": [
              {"variant": "control", "weight": 70},
              {"variant": "treatment", "weight": 30}
            ]
          }
        }
      ]
    },
    {
      "id": "killswitch-vendor-x",
      "description": "Cuts traffic to vendor-x integration on demand.",
      "enabled": true,
      "variants": ["enabled", "disabled"],
      "default_variant": "enabled",
      "rules": []
    }
  ]
}