• Stars
    star
    632
  • Rank 70,648 (Top 2 %)
  • Language
    Python
  • License
    Apache License 2.0
  • Created over 2 years ago
  • Updated about 1 month 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
80
star
6

open-feature-operator

A Kubernetes feature flag operator
Go
76
star
7

playground

OpenFeature SDK demos and experimentation
TypeScript
47
star
8

python-sdk

Python SDK for OpenFeature
Python
41
star
9

go-sdk-contrib

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

js-sdk-contrib

OpenFeature Providers and Hooks for JavaScript
TypeScript
33
star
11

openfeature.dev

OpenFeature Website
TypeScript
31
star
12

rust-sdk

Rust implementation of the OpenFeature SDK
Rust
26
star
13

ruby-sdk

Ruby implementation of the OpenFeature SDK
Ruby
23
star
14

php-sdk

PHP implementation of the OpenFeature SDK
PHP
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

watchman

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

php-sdk-contrib

OpenFeature Providers and Hooks for PHP
PHP
10
star
20

python-sdk-contrib

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

docs.openfeature.dev

OpenFeature Documentation
TypeScript
6
star
22

flagd-schemas

Schemas and spec files pertaining to flagd
Makefile
6
star
23

feature-operator

OpenFeature Operator for Kubernetes
Go
5
star
24

killercoda

Killercoda Interactive Examples for OpenFeature
Shell
5
star
25

dotnet-sdk-contrib

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

flagd-testbed

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

.github

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

kubecon-eu-2024-demo

TypeScript
3
star
29

ruby-sdk-contrib

Community contributions for hooks and reference providers in Ruby
Ruby
2
star
30

feature-evaluation-api

Makefile
2
star
31

cloud-native-demo

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

open-feature.github.io

OpenFeature website
CSS
2
star