flipt

module
v1.46.0 Latest Latest
Warning

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

Go to latest
Published: Jul 15, 2024 License: GPL-3.0

README ΒΆ

Flipt

An enterprise-ready, GRPC powered, GitOps enabled, CloudNative, feature management solution


Flipt Dashboard


Docs β€’ Website β€’ Blog β€’ Feedback β€’ Contributing β€’ Discord

Flipt enables you to follow DevOps best practices and separate releases from deployments. Built with high-performance engineering organizations in mind.

Flipt can be deployed within your existing infrastructure so that you don't have to worry about your information being sent to a third party or the latency required to communicate across the internet.

With our GitOps-friendly functionality, you can easily integrate Flipt into your CI/CD workflows to enable continuous configuration and deployment with confidence.


DevHunt - Tool of the WeekΒ  Console - Developer Tool of the Week

Managed Services

Need more? We've got you covered! Check out our managed offering.

Flipt Hybrid Cloud

Usecases

Flipt supports use cases such as:

  • Enabling trunk-based development workflows
  • Testing new features internally during development before releasing them fully in production
  • Ensuring overall system safety by guarding new releases with an emergency kill switch
  • Gating certain features for different permission levels allows you to control who sees what
  • Enabling continuous configuration by changing values during runtime without additional deployments

Values

  • πŸ”’ Security - HTTPS, OIDC, JWT, OAuth, K8s Service Token, and API Token authentication methods supported out of the box.
  • πŸŽ›οΈ Control - 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 which can add excessive latency and slow down your applications.
  • βœ… Simplicity - Flipt is a single binary with no external dependencies by default.
  • πŸ‘ Compatibility - GRPC, REST, MySQL, Postgres, CockroachDB, SQLite, LibSQL, Redis, ClickHouse... Flipt supports it all.

Features

  • Stand-alone, single binary that's easy to run and configure
  • Ability to create advanced distribution rules to target segments of users
  • Modern UI and debug console with dark mode πŸŒ™
  • Import and export to allow storing your data as code
  • Works with Prometheus and OpenTelemetry out of the box πŸ”‹
  • CloudNative Filesystem, Object, Git, and OCI declarative storage backends to support GitOps workflows and more.
  • Audit logging with Webhook support to track changes to your data

Are we missing a feature that you'd like to see? Let us know!


Contributing

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

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.

Check out our public roadmap to see what we're working on and where you can help.

Not sure how to get started? You can:

Review the Architecture and Development documentation for more information on how Flipt works.


Community

For help and discussion around Flipt, feature flag best practices, and more, join us on Discord.


Try It

Get started in seconds. Try the latest version of Flipt for yourself.

Local

curl -fsSL https://get.flipt.io/install | sh

Deploy

Deploy to DigitalOcean Β  Deploy to Render Β  Deploy to Railway Deploy to Koyeb

Sandbox

Try Flipt in a deployed environment!

Note: The database gets cleared every 30 minutes in this sandbox environment!

Homebrew 🍺

brew install flipt-io/brew/flipt
brew services start flipt

# or run in the foreground
flipt

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

Docker 🐳

docker run --rm -p 8080:8080 -p 9000:9000 -t docker.flipt.io/flipt/flipt:latest

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

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

Nightly Build

Like to live on the edge? Can't wait for the next release? Our nightly builds include the latest changes on main and are built.. well.. nightly.

docker run --rm -p 8080:8080 -p 9000:9000 -t docker.flipt.io/flipt/flipt:nightly

Supports

SQLite MySQL PostgreSQL Turso CockroachDB

Redis Prometheus OpenID OpenTelemetry Git


Integration

Check out our integration documentation for more info on how to integrate Flipt into your existing applications.

There are two ways to evaluate feature flags with Flipt:

Server Side Evaluation

Server-side evaluation is the most common way to evaluate feature flags. This is where your application makes a request to Flipt to evaluate a feature flag and Flipt responds with the result of the evaluation.

Flipt exposes two different APIs for performing server-side evaluation:

GRPC

Flipt is equipped with a fully functional GRPC API. GRPC is a high-performance, low-latency, binary protocol that is used by many large-scale companies such as Google, Netflix, and more.

See our GRPC Server SDK documentation for the latest information.

REST

Flipt is equipped with a fully functional REST API. The Flipt UI is completely backed by this same API. This means that anything that can be done in the Flipt UI can also be done via the REST API.

The Flipt REST API can also be used with any language that can make HTTP requests.

See our REST Server SDK documentation for the latest information.

Client Side Evaluation

Client-side evaluation is a great way to reduce the number of requests that your application needs to make to Flipt. This is done by retrieving all of the feature flags that your application needs to evaluate and then evaluating them locally.

See our Client SDK documentation for the latest information.


Release Cadence

Flipt follows semantic versioning for versioning.

We aim to release a new minor version of Flipt every 2-3 weeks. This allows us to quickly iterate on new features. Bug fixes and security patches (patch versions) will be released as needed.


Development

Development documentation is available for those interested in contributing to Flipt.

We welcome contributions of any kind, including but not limited to bug fixes, feature requests, documentation improvements, and more. Just open an issue or pull request and we'll be happy to help out!


Open in Codespaces

Open in Gitpod


Examples

Check out the examples to see how Flipt works in different use cases.


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 Go SDK 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.

See LICENSE.


Contributors ✨

Thanks goes to these wonderful people (emoji key):

Aaron Raff
Aaron Raff

πŸ’»
Rodrigo Chacon
Rodrigo Chacon

πŸ’»
Christopher Diehl
Christopher Diehl

πŸ’»
Andrew Z Allen
Andrew Z Allen

πŸ“–
Sebastien Armand
Sebastien Armand

πŸ’»
Dat Tran
Dat Tran

πŸ’»
Jon Perl
Jon Perl

⚠️ πŸ’»
Or Elimelech
Or Elimelech

πŸ’»
giddel
giddel

πŸ’»
Eduardo
Eduardo

πŸ“– πŸ’»
Itai Schwartz
Itai Schwartz

πŸ’»
Ikko Ashimine
Ikko Ashimine

πŸ“–
MΓ‘rk SΓ‘gi-KazΓ‘r
MΓ‘rk SΓ‘gi-KazΓ‘r

πŸ’»
Dan Piet
Dan Piet

πŸ’»
Amay Shah
Amay Shah

πŸ’»
kevin-ip
kevin-ip

πŸ’»
albertchae
albertchae

πŸ’»
Thomas Sickert
Thomas Sickert

πŸ“–
Jameel Al-Aziz
Jameel Al-Aziz

πŸ“¦
George
George

πŸ’»
Chase Pierce
Chase Pierce

πŸ’»
ITO Shogo
ITO Shogo

⚠️
Yoofi Quansah
Yoofi Quansah

πŸ’»
Darin McLain
Darin McLain

πŸ’»
Adam Weiss
Adam Weiss

πŸ’‘
Yuval Goihberg
Yuval Goihberg

🎨
David Stotijn
David Stotijn

πŸ’»
Matthew Notarangelo
Matthew Notarangelo

πŸ’»
Charles OConor
Charles OConor

πŸ“–
Andrew Hobson
Andrew Hobson

πŸ’»
Rudinei Goi Roecker
Rudinei Goi Roecker

πŸ’»
guangwu
guangwu

πŸ’»
Collin Driscoll
Collin Driscoll

πŸ’»
James
James

πŸ’»
legoheld
legoheld

πŸ’»
Akshay Nair
Akshay Nair

πŸ’»
Roman Dmytrenko
Roman Dmytrenko

πŸ’»
Mattia Forcellese
Mattia Forcellese

πŸ’»
Mohammed El Amine Rhazzar
Mohammed El Amine Rhazzar

πŸ’»
Julie Gladden
Julie Gladden

πŸ’»
Pablo Aguilar
Pablo Aguilar

πŸ’»
Muliar Nikolai
Muliar Nikolai

πŸ’»
Taras Egorov
Taras Egorov

πŸ’»
Elliot Pahl
Elliot Pahl

πŸ’»
Oleg
Oleg

πŸ’»
Tiago Santos
Tiago Santos

πŸ’»
Lev Lazinskiy
Lev Lazinskiy

πŸ“– πŸ’»
Kyryl Perepelytsia
Kyryl Perepelytsia

πŸ’»
Aditya Patil
Aditya Patil

πŸ’»
Marin Bezhanov
Marin Bezhanov

πŸ’»

This project follows the all-contributors specification. Contributions of any kind welcome!

Directories ΒΆ

Path Synopsis
cmd
config
errors module
internal
cmd
ext
oci
rpc
flipt Module
sdk module
go Module

Jump to

Keyboard shortcuts

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