flipt

module
v0.4.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 13, 2019 License: GPL-3.0

README

Flipt

A feature flag solution that runs in your existing infrastructure


Flipt

Build Status Coverage Status Go Report Card GitHub Release Gitter Mentioned in Awesome Go

Documentation

https://flipt.dev/

What is Flipt

Flipt is an open source feature flag application that allows you to run experiments across services in your environment.

This means that you can deploy Flipt within your existing infrastructure and not have to worry about your information being sent to a third party or the latency required to communicate across the internet.

Flipt includes native client SDKs as well as a REST API so you can choose how to best integrate Flipt with your applications.

Flipt Features

Flipt enables you to add feature flag support to your existing applications, with a simple, single UI and API.

This can range from simple on/off feature flags to more advanced use cases where you want to be able to rollout different versions of a feature to percentages of your users.

Flipt features include:

  • Fast. Written in Go. Optimized for performance
  • Stand alone, easy to run server with no external dependencies
  • Ability to create advanced distribution rules to target segments of users
  • Native GRPC client SDKs to integrate with your applications
  • Simple REST API
  • Modern UI and debug console

Why Flipt

Flipt allows you to focus on building your applications without having to worry about implementing your own feature flag solution that works across your infrastructure.

On top of this, Flipt provides a nice, modern UI so that you can always monitor the state of your feature flags and experiments in a single place.

Running Flipt

Flipt is a single, self contained binary that you run on your own servers or cloud infrastructure. There are a multitude of benefits to running Flipt yourself, including:

  • 🔒 Security - No data leaves your servers and you don't have to open your systems to the outside world to communicate with Flipt. It all runs within your existing infrastructure.
  • 🚀 Speed - Since Flipt is co-located with your existing services, you do not have to communicate across the internet to another application running on the other side of the world which can add excessive latency and slow down your applications.
  • Simplicity - Flipt is a single binary with no external dependencies. This means there is no database server to manage or connect to, no clusters to configure, and data backup is as simple as copying a single file.

Try It

❯ docker run --rm -p 8080:8080 -p 9000:9000 markphelps/flipt:latest

Flipt UI will now be reachable at http://localhost:8080/.

For more permanent methods of running Flipt, see the Installation section.

Licensing

There are currently two types of licenses in place for Flipt:

  1. Client License
  2. Server License

Client License

All of the code required to generate GRPC clients in other languages as well as the existing GRPC Go client are licensed under the MIT License.

This code exists in the rpc/ directory.

The client code is the code that you would integrate into your applications, which is why a more permissive license is used.

Server License

The server code is licensed under the GPL 3.0 License.

If there are any concerns about the use of this license for the server, please open an issue on GitHub so that we can discuss publicly.

Author

Contributing

I would love your help! Before submitting a PR, please read over the Contributing guide.

How To Contribute

No contribution is too small, whether it be bug reports/fixes, feature requests, documentation updates, or anything else that can help drive the project forward.

Here are some good places to start:

Cheers! 🍺

Support Development

Or if you would like to support the continued development of Flipt (and my caffeine addiction), you could always Buy Me A Coffee!

Buy Me A Coffee

Pro Version

My plan is to soon start working on a Pro Version of Flipt for enterprise. Along with support, some of the planned features include:

  • User management/permissions
  • Multiple environments
  • Audit log
  • Streaming updates
  • Metrics
  • HA support

If you or your organization would like to help beta test a Pro version of Flipt, please get in touch with me:

Directories

Path Synopsis
cmd
internal
fs
Package flipt is a reverse proxy.
Package flipt is a reverse proxy.
Package swagger provides the assets via a virtual filesystem.
Package swagger provides the assets via a virtual filesystem.
Package ui provides the assets via a virtual filesystem.
Package ui provides the assets via a virtual filesystem.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL