Feature Flipper, Feature Flags, Rollout Flags, Feature Toggles for Crystal
Feature flipping is the act of enabling or disabling features or parts of your application, ideally without re-deploying or changing anything in your code base.
Add this to your application’s shard.yml
:
dependencies:
flipper:
github: metaware/flipper
require "flipper"
You are free to use anyone of the supported adapters/stores from crystal-kiwi
Flipper.adapter = Kiwi::RedisStore.new(Redis.new)
Flipper.enable(:feature_name)
if Flipper.enabled?(:feature_name)
puts "Feature launched, Let's roll!"
else
puts "Feature not released yet."
end
Flipper.disable(:search)
if Flipper.disabled?(:search)
puts "Search is not available yet!"
end
Note: I strongly recommend to not use Kiwi::MemoryStore
for development or production environments. It’s suitable only for your test environments.
flipper
stands on work done by greyblake on crystal-kiwi