1 unstable release

0.0.2 May 22, 2024

#1624 in Database interfaces


Used in flagrant-api

MIT license

49KB
952 lines

Flagrant - CLI-driven feature flagging system

Feature flagging niche is long time filled in with excellent solutions like https://www.getunleash.io/ or https://www.flagsmith.com/, so why yet another app on top of this cake? Flagrant has an ambition to become a Redis of feature flagging - small, reliable and completely CLI driven server providing all that's needed to keep features under control. Namely, it's supposed to bring in:

  • multiple environments (prod, dev, test, etc)
  • multivariant features
  • segment overrides
  • identity overrides
  • scheduled on/off
  • analytics
  • client libraries for rust/jvm/js

As it's written in Rust, Flagrant comes with low-level resource utilisation and blazingly fast mode switched on by default 😃

Architecture

To keep things simple yet still allow for extensibilty, code has been structured into following modules (crates)

  • flagrant - core logic (requests distribution among others)
  • flagrant-types - core types shared across all other modules
  • flagrant-api - HTTP server exposing crucial endpoints both for clients and management
  • flagrant-cli - a command-line interface to communicate with server
  • flagrant-client - a client library ensuring seamless communication between client- and server-side, with caching, etc.

Dependencies

~34–46MB
~785K SLoC