flippant alternatives and similar packages
Based on the "Feature Flags and Toggles" category.
Alternatively, view flippant alternatives based on common mentions on social networks and blogs.
-
ConfigCat
ConfigCat SDK for Elixir. ConfigCat is a hosted feature flag service: https://configcat.com. Manage feature toggles across frontend, backend, mobile, desktop apps. Alternative to LaunchDarkly. Management app + feature flag SDKs.
Do you think we are missing an alternative of flippant or a related project?
Popular Comparisons
README
Flippant
Flippant is a library for feature toggling in Elixir applications
Installation
- Add
flippant
to your list of dependencies inmix.exs
:
def deps do
[{:flippant, "~> 2.0"}]
end
- Add an adapter such as
redix
for Redis orpostgrex
for Postgres:
def deps do
[{:redix, "~> 1.0"}]
end
- Set an adapter within your
config.exs
:
config :flippant,
adapter: Flippant.Adapter.Redis,
redis_opts: [url: System.get_env("REDIS_URL"), name: :flippant],
set_key: "flippant-features"
Usage
Complete documentation is available online, but here is a brief overview:
Features are comprised of groups
, and rules
. Your application defines named
groups
, and you set rules
to specify which groups
are enabled for a
particular feature. When it comes time to check if a feature is enabled for a
particular actor
(i.e. user or account), all the groups
for a feature are
evaluated. If the actor
belongs to any of the groups
then the feature is
enabled.
All interaction happens directly through the Flippant
module.
Define some basic groups:
Flippant.register("staff", fn %User{staff?: staff?}, _ -> staff?)
Flippant.register("testers", fn %User{id: id}, ids -> id in ids end)
Set a few rules for the "search" feature:
Flippant.enable("search", "staff")
Flippant.enable("search", "testers", [1818, 1819])
Check if the current user has access to a feature:
Flippant.enabled?("search", %User{id: 1817, staff?: false}) #=> true
Flippant.enabled?("search", %User{id: 1818, staff?: false}) #=> false
Flippant.enabled?("search", %User{id: 1820, staff?: true}) #=> true
License
MIT License, see [LICENSE.txt](LICENSE.txt) for details.
*Note that all licence references and agreements mentioned in the flippant README section above
are relevant to that project's source code only.