• Stars
    star
    661
  • Rank 68,192 (Top 2 %)
  • Language
    Python
  • License
    Apache License 2.0
  • Created almost 3 years ago
  • Updated 2 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

OpenFeature specification

OpenFeature Specification

Roadmap Contributing Code of Conduct

This repository describes the requirements and expectations for OpenFeature.

⚠️ Ongoing research can be found in the research repo. For definitions of key terminology, see the glossary.

Design Principles

  • Compatibility with existing feature flag offerings
  • Simple, understandable APIs
  • Vendor agnosticism
  • Language agnosticism
  • Low/no dependency
  • Extensibility

SDKs and Client Libraries

The project aims to provide a unified API and SDK for feature flag management in various technology stacks. The OpenFeature SDK provides a mechanism for interfacing with an external evaluation engine in a vendor agnostic way; it does not itself handle the flag evaluation logic.

The OpenFeature project will include client libraries for common technology stacks including, but not limited to:

  • Golang
  • Java
  • JavaScript/TypeScript (Node.js)

Tooling

This specification complies with RFC 2119 and seeks to conform to the W3C QA Framework Guidelines.

In accordance with this, some basic tooling (donated graciously by Diego Hurtado) has been employed to parse the specification and output a JSON structure of concise requirements, highlighting the particular RFC 2119 verb in question.

To parse the specification, simply type make. Please review the generated JSON files, which will appear as siblings to any of the markdown files in the /specification folder.

Style Guide

  • Use code blocks for examples.
    • Code blocks should be pseudocode, not any particular language, but should be vaguely "Java-esque".
  • Use conditional requirements for requirements that only apply in particular situations, such as particular languages or runtimes.
  • Use "sentence case" enclosed in ticks (`) when identifying entities outside of code blocks (ie: evaluation details instead of EvaluationDetails).
  • Do not place line breaks into sentences, keep sentences to a single line for easier review.
  • String literals appearing outside of code blocks should be enclosed in both ticks (`) and double-quotes (") (ie: "PARSE_ERROR").
  • Use "Title Case" for all titles.
  • Use the imperative mood and passive voice.

More Repositories

1

flagd

A feature flag daemon with a Unix philosophy
Go
487
star
2

js-sdk

JavaScript SDK for OpenFeature
TypeScript
134
star
3

go-sdk

Go SDK for OpenFeature
Go
119
star
4

community

OpenFeature project community and governance
JavaScript
91
star
5

java-sdk

Java implementation of the OpenFeature SDK
Java
85
star
6

open-feature-operator

A Kubernetes feature flag operator
Go
76
star
7

python-sdk

Python SDK for OpenFeature
Python
50
star
8

playground

OpenFeature SDK demos and experimentation
TypeScript
47
star
9

go-sdk-contrib

Community maintained OpenFeature Providers and Hooks for Go
Go
43
star
10

js-sdk-contrib

OpenFeature Providers and Hooks for JavaScript
TypeScript
33
star
11

rust-sdk

Rust implementation of the OpenFeature SDK
Rust
32
star
12

openfeature.dev

OpenFeature Website
TypeScript
31
star
13

php-sdk

PHP implementation of the OpenFeature SDK
PHP
25
star
14

ruby-sdk

Ruby implementation of the OpenFeature SDK
Ruby
23
star
15

java-sdk-contrib

Community contributions for hooks and reference providers
Java
22
star
16

dotnet-sdk

.NET implementation of the OpenFeature SDK
C#
18
star
17

ofep

A focal point for OpenFeature research, proposals and requests for comments
14
star
18

php-sdk-contrib

OpenFeature Providers and Hooks for PHP
PHP
12
star
19

watchman

A Kubernetes admission controller driven by open-feature
Go
11
star
20

python-sdk-contrib

Community contributions for hooks and reference providers in python
Python
8
star
21

elixir-sdk

Elixir SDK for OpenFeature
Elixir
7
star
22

docs.openfeature.dev

OpenFeature Documentation
TypeScript
6
star
23

flagd-schemas

Schemas and spec files pertaining to flagd
Makefile
6
star
24

feature-operator

OpenFeature Operator for Kubernetes
Go
5
star
25

killercoda

Killercoda Interactive Examples for OpenFeature
Shell
5
star
26

dotnet-sdk-contrib

OpenFeature Providers and Hooks for .NET
C#
5
star
27

codegen

Generate strongly typed flag accessors for OpenFeature
Go
5
star
28

flagd-testbed

Shared test harness for flagd SDK testing, with Gherkin tests
Go
4
star
29

.github

This repository stores various defaults for the GitHub organization
3
star
30

ruby-sdk-contrib

Community contributions for hooks and reference providers in Ruby
Ruby
3
star
31

kubecon-eu-2024-demo

TypeScript
3
star
32

feature-evaluation-api

Makefile
2
star
33

cloud-native-demo

A cloud-native feature flag demo, featuring multiple providers, telemetry, and a guided tour
Makefile
2
star
34

open-feature.github.io

OpenFeature website
CSS
2
star