All Projects β†’ valdisiljuconoks β†’ FeatureSwitch

valdisiljuconoks / FeatureSwitch

Licence: MIT license
FeatureSwitch is library that should reduce amount of time and code required to implement feature switching in your projects.

Programming Languages

C#
18002 projects
HTML
75241 projects
javascript
184084 projects - #8 most used programming language
CSS
56736 projects
Classic ASP
548 projects
powershell
5483 projects

Projects that are alternatives of or similar to FeatureSwitch

Flipper
🐬 Beautiful, performant feature flags for Ruby.
Stars: ✭ 2,732 (+4959.26%)
Mutual labels:  features, feature-toggle
toggler
toggler is a feature flag service to decouple deployment, feature enrollment and experiments
Stars: ✭ 27 (-50%)
Mutual labels:  feature-toggle, feature-switches
unleash-client-ruby
Unleash client SDK for Ruby
Stars: ✭ 43 (-20.37%)
Mutual labels:  toggles, feature-toggle
featurehub
FeatureHub - cloud native feature flags, A/B testing and remote configuration service. Real-time streaming feature updates. Provided with Java, JavaScript, Go, .Net, Android and Flutter SDKs.
Stars: ✭ 136 (+151.85%)
Mutual labels:  features, feature-toggle
Unleash
Unleash is the open source feature toggle service.
Stars: ✭ 4,679 (+8564.81%)
Mutual labels:  toggles, feature-toggle
flipper
Feature Flipper, Feature Flags, Rollout Flags, Feature Toggles for Crystal
Stars: ✭ 21 (-61.11%)
Mutual labels:  features
ld-scheduler
Schedule Launch Darkly flags on or off
Stars: ✭ 14 (-74.07%)
Mutual labels:  feature-toggle
php-client
PHP SDK client for Split Software
Stars: ✭ 14 (-74.07%)
Mutual labels:  feature-toggle
Bootstrap Switch
Turn checkboxes and radio buttons in toggle switches.
Stars: ✭ 5,132 (+9403.7%)
Mutual labels:  toggles
laravel-rollout
A package to integrate rollout into your Laravel project.
Stars: ✭ 23 (-57.41%)
Mutual labels:  feature-toggle
eight ball
Ruby gem for querying feature flags
Stars: ✭ 17 (-68.52%)
Mutual labels:  feature-toggle
mastodo
A fork of the GNU Social/AP-compatible microblogging server
Stars: ✭ 29 (-46.3%)
Mutual labels:  features
musicfestival-vue-template
The Vue.js version of the MusicFestival template site
Stars: ✭ 41 (-24.07%)
Mutual labels:  episerver
js-sdk
JavaScript frontend SDK for ConfigCat. 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.
Stars: ✭ 21 (-61.11%)
Mutual labels:  feature-toggle
pyefd
Python implementation of "Elliptic Fourier Features of a Closed Contour"
Stars: ✭ 71 (+31.48%)
Mutual labels:  features
detect-features
Detect and report browser and hardware features.
Stars: ✭ 63 (+16.67%)
Mutual labels:  features
Shards Ui
🎨Shards is a beautiful & modern Bootstrap 4 UI kit packed with extra templates and components.
Stars: ✭ 1,718 (+3081.48%)
Mutual labels:  toggles
toggle
Vue 3 toggle component with labels, custom slots and styling options (+Tailwind CSS support).
Stars: ✭ 75 (+38.89%)
Mutual labels:  toggles
ld-redux
A library to integrate launch darkly with react redux
Stars: ✭ 33 (-38.89%)
Mutual labels:  feature-toggle
vue-feature-toggle
No description or website provided.
Stars: ✭ 55 (+1.85%)
Mutual labels:  feature-toggle

Build status

Feature Switch

Supporting FeatureSwitch

If you find this library useful, cup of coffee would be awesome! You can support further development of the library via Paypal.

Feature Toggling Framework for Various Types of Applications

Have you ever wrote the code like following to verify that either you have to disable or enable some functionality base on set of conditions (usually different sources):

  if(ConfigurationManager.AppSettings["MyKey"] == "true")
      return ...;

or something like this:

  if(HttpContext.Current != null && HttpContext.Current.Session != null && HttpContext.Current.Session["MyKey"] == "true")
      return ...;

FeatureSwitch library should reduce amount of time and code needed to implement feature toggle in unified way. FeatureSwitch library is easily adoptable and extendable.

Overview

FeatureSwitch library is based on two basic aspects features and strategies. In combination they provide enough input data for feature set builder to construct feature context to be used later to check whether particular feature is enabled or disabled. Currently there are following additional integrations:

Features

Feature is main aspect of FeatureSwitch library it's your logical feature representation - either it's enabled or disabled. You will need to define your features to work with FeatureSwitch library. To define your feature you have to create class that inherits from FeatureSwitch.BaseFeature class:

  public class MySampleFeature : FeatureSwitch.BaseFeature
  {
  }

Keep in mind that you will need to add at least one strategy for the feature in order to enable it. By default every feature is disabled.

Setup (FeatureSet builder)

To get started with FeatureSwitch you need to kick-off FeatureSetBuilder by calling Build() instance method:

  var builder = new FeatureSetBuilder();
  builder.Build();

By calling Build method you are triggering auto-discovery of features in current application domain loaded assemblies. Auto-discovery will look for classes inheriting from FeatureSwitch.BaseFeature class. Those are assumed to be features.

Is Feature Enabled?

After features have been discovered and set has been built you are able to check whether feature is enabled or not:

  var isEnabled = FeatureContext.IsEnabled<MySampleFeature>();

You can also use some of the IsEnabled overloads for other usages.

Where do I get packages?

All packages are available on NuGet feeds:

More Information

More information on extending FeatureSwitch library.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].