Feature flags for teams that already run Redis. No new server. No new cost. Your data stays in your infrastructure.
📦 PyPI · Maven Central · CLI · 📖 Documentation
Why?
Most teams already run Redis. It sits in your stack as a cache or a session store. You are already paying for it, operating it, and trusting it.
Feature flag SaaS products charge hundreds of dollars a month for a server you do not need, send your user data to their infrastructure, and add another thing to monitor.
redis-feature-flags uses the Redis you already have. Nothing else.
Who is this for?
- Startups and small teams who already run Redis and want to avoid adding new infrastructure
- Teams that are cost-conscious and want to eliminate SaaS subscriptions
- Developers who want full control over their data. No third party ever sees your flag evaluations
- Teams that value simplicity. No new service to deploy, monitor, or on-call for
If you already have Redis in your stack, this is a zero-overhead addition.
What you get
Gradual rollout — release to 1%, then 10%, then 100%. Same user always gets the same answer. Deterministic, no randomness.
User targeting — give specific users early access regardless of rollout percentage.
Cohort targeting — target entire groups at once. Beta testers, enterprise users, internal teams.
Kill switch — disable any feature instantly for everyone. No redeploy. No waiting.
Flag expiry — auto-expire flags at a timestamp. No cleanup needed.
Multiple environments — prod, staging, and dev on one Redis instance. Fully isolated. No key collisions.
Works when Redis is down — stale cache keeps serving the last known state. Your application never crashes.
CLI included — manage flags from your terminal. Works with Python and Java SDKs.
Well tested — 94 Python SDK tests at 100% coverage, 109 Java tests, e2e tests against real Redis.
Install
# Python SDK pip install redis-feature-flags # CLI pip install redis-flags
<!-- Java SDK --> <dependency> <groupId>io.github.sgs-97</groupId> <artifactId>redis-feature-flags</artifactId> <version>1.0.0</version> </dependency>
Quickstart
import redis from redis_feature_flags import FeatureFlags r = redis.Redis() flags = FeatureFlags(r, env="prod") flags.create("dark_mode", rollout=10) flags.enable("dark_mode") flags.is_enabled("dark_mode", user_id="alice") # → True or False # Kill switch — instant off for everyone flags.disable("dark_mode")
CLI
redis-flags use prod
redis-flags create dark_mode --rollout 10
redis-flags enable dark_mode
redis-flags list
redis-flags inspect dark_modeSupported languages
| Language | Package | Status |
|---|---|---|
| Python | PyPI | stable |
| Java | Maven Central | stable |
| TypeScript | npm | coming soon |
| Go | go modules | coming soon |
Performance
Requirements
- Python 3.9+ or Java 17+
- Redis 6.0+
License
MIT — Gayatri Sravya Siripurapu
Community
Contributions welcome.
- Contributing Guide — how to set up, run tests, add a new SDK
- Code of Conduct — community standards
- Security Policy — how to report vulnerabilities privately
- Report a bug — something is broken
- Request a feature — suggest an idea
For security vulnerabilities do not open a public issue. See SECURITY.md.




















