To learn how to install and run Flipt, see the Self-Hosted documentation.

Once you have the Flipt server up and running within your infrastructure or local development environment, the next step is to integrate the Flipt client(s) with your applications for evaluating your feature flags.

There are two main ways to evaluate feature flags with Flipt:

  1. Server-Side Evaluation
  2. Client-Side Evaluation

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:

  1. REST API
  2. GRPC API

The choice of which API to use is up to you. Both APIs are fully supported and are functionally equivalent. The REST API is easier to get started with, but the GRPC API is more performant.

REST API

Flipt comes 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. This means you don’t need to use one of our official clients to integrate your application with Flipt.

The latest version of the REST API is fully documented using the OpenAPI v3 specification as well as the above API Reference.

See all official REST SDKs as well as how to generate your own in the REST SDK section.

GRPC API

Since Flipt is a GRPC enabled application, you can connect to it using the GRPC protocol. This means that you can use any language that has a GRPC client implementation to integrate with Flipt.

GRPC requires HTTP/2 in your environment.

An example Go application is available, showing how you would integrate with Flipt using the Go GRPC client.

In the GRPC SDK section, you can find all official GRPC SDKs and instructions for generating your own.

Client-Side Evaluation

Client-side evaluation is another way Flipt supports evaluating feature flags. This is where your application has a local copy of the feature flag rules and evaluates them locally.

Client-side evaluation is much more performant than server-side evaluation, but it comes with some tradeoffs. The main tradeoff is that you need to keep your feature flag rules in sync with Flipt. This means that you will need to periodically fetch the feature flag rules from Flipt and update your local copy. Our client-side SDKs provide a way to do this automatically.

If you are a Flipt Cloud user, you can enable streaming mode, which will make the SDK subscribe to changes on the Flipt server and update the state of the flags accordingly in real-time.

Reasons for using client-side evaluation include:

  • You want to reduce the number of requests your application makes to Flipt for feature flag evaluations
  • You want to reduce the latency of feature flag evaluations

See all official client-side SDKs in the Client-Side SDKs section.