> For the complete documentation index, see [llms.txt](https://developer.harness.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://developer.harness.io/feature-management-experimentation/new-to-fme/sdks-and-customer-deployed-components/openfeature-providers.md).

# OpenFeature Providers

[OpenFeature](https://openfeature.dev/docs/reference/intro) offers a standardized, vendor-agnostic SDK for feature flagging that can integrate with a variety of third-party providers. Whether you're using an open-source or commercial solution, self-hosted or cloud-hosted, OpenFeature gives developers a unified API for consistent feature flag evaluation.

OpenFeature SDKs provide flexible abstractions that make it easy to integrate feature flags into any application. Within your application, the feature flagging client uses the OpenFeature SDK to evaluate feature flags through the Evaluation API.

Each flag evaluation passes an evaluation context, which provides relevant data about the application or user.

```mermaid
flowchart LR
  %% Outer app box
  subgraph YourApp["Your App"]
    style YourApp fill:#D0E4FF,stroke:#0000FF,stroke-width:2px

    %% Feature Flagging Client (yellow dotted box)
    subgraph FeatureFlagClient["Feature Flagging Client"]
      style FeatureFlagClient stroke:#FFD700,stroke-dasharray: 5 5

      %% Puzzle piece: OpenFeature SDK
      subgraph OpenFeatureSDK["OpenFeature SDK"]
        style OpenFeatureSDK fill:#FFFF99,stroke:#FFD700

        %% Flag Evaluation API inside SDK
        FlagEvalAPI["Flag Evaluation API"]
      end

      %% OpenFeature Provider in second half of puzzle piece
      OpenFeatureProvider["Harness FME <br> OpenFeature Provider"]
    end

    %% Arrows from Flag Eval through Eval Context directly into FlagEvalAPI
    FlagEval1["Flag Eval"] --> EvalCtx1["Eval Context"] --> FlagEvalAPI
    FlagEval2["Flag Eval"] --> EvalCtx2["Eval Context"] --> FlagEvalAPI
  end

  %% External Harness FME Service in cloud
  HarnessFME["Harness FME Service"]:::cloudStyle

  %% Bidirectional arrow between OpenFeature Provider and Harness FME
  OpenFeatureProvider <--> HarnessFME

  %% Styling for cloud
  classDef cloudStyle fill:#A4E5A4,stroke:#2E8B57,stroke-width:2px,shape:cloud
```

<br>

The OpenFeature Provider wraps the Harness FME SDK, bridging the OpenFeature SDK with the Harness Feature Management & Experimentation (FME) service. The provider maps OpenFeature's standardized interface to the FME SDK, which handles communication with Harness services to evaluate feature flags and retrieve configuration updates.

### Use OpenFeature SDKs <a href="#use-openfeature-sdks" id="use-openfeature-sdks"></a>

Harness FME offers official OpenFeature providers for the following SDKs.

<table data-view="cards"><thead><tr><th align="center"></th><th align="center"></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td align="center"><img src="/files/oWRKBcvYbKBZJMMRBmwI" alt="" data-size="original"></td><td align="center"><strong>Android SDK</strong></td><td><a href="/pages/L21NxV2qsSkETdB3b2fH">/pages/L21NxV2qsSkETdB3b2fH</a></td></tr><tr><td align="center"><img src="/files/pL4DiVOsgdh4w7jQ2Txe" alt="" data-size="original"></td><td align="center"><strong>iOS SDK</strong></td><td><a href="/pages/wKCMCSy0eAvjEQvvJe8S">/pages/wKCMCSy0eAvjEQvvJe8S</a></td></tr><tr><td align="center"><img src="/files/CqaWt0Uy93H5vJ0nFmtJ" alt="" data-size="original"></td><td align="center"><strong>Web SDK</strong></td><td><a href="/pages/GtRMAnJJOu6nLmargGJk">/pages/GtRMAnJJOu6nLmargGJk</a></td></tr><tr><td align="center"><img src="/files/soPWT6wbCTl0b9bEFgDV" alt="" data-size="original"></td><td align="center"><strong>Angular</strong></td><td><a href="/pages/lPP4BZLYhof32eH7UV70">/pages/lPP4BZLYhof32eH7UV70</a></td></tr><tr><td align="center"><img src="/files/PliXZnKOzH0SvzaaLkPP" alt="" data-size="original"></td><td align="center"><strong>React</strong></td><td><a href="/pages/dwzC7qGMzj8DZoYmEdi5">/pages/dwzC7qGMzj8DZoYmEdi5</a></td></tr><tr><td align="center"><img src="/files/enkqAOrD5JqaMZnSLNTI" alt="" data-size="original"></td><td align="center"><strong>Java SDK</strong></td><td><a href="/pages/M49Dup7gNFA7GgWO7TU2">/pages/M49Dup7gNFA7GgWO7TU2</a></td></tr><tr><td align="center"><img src="/files/yXQAFoZTuiGLRY8rscAS" alt="" data-size="original"></td><td align="center"><strong>Node.js</strong></td><td><a href="/pages/wUGhgu41rrhmshqWOgDU">/pages/wUGhgu41rrhmshqWOgDU</a></td></tr><tr><td align="center"><img src="https://developer.harness.io/provider-logos/python-logo.svg" alt="Python SDK"></td><td align="center"><strong>Python SDK</strong></td><td><a href="/pages/0HBp8Zx2WSsj2tud8GDt">/pages/0HBp8Zx2WSsj2tud8GDt</a></td></tr><tr><td align="center"><img src="/files/pSnfLIeCWIbUqYGIboFk" alt="" data-size="original"></td><td align="center"><strong>.NET SDK</strong></td><td><a href="/pages/GX3SPITzEp8F3Gz1C6Yu">/pages/GX3SPITzEp8F3Gz1C6Yu</a></td></tr><tr><td align="center"><img src="/files/iV8qoC0fhM7nzwYPv0W2" alt="" data-size="original"></td><td align="center"><strong>Go SDK</strong></td><td><a href="/pages/F8pnEyyfCWslBkS6oUlU">/pages/F8pnEyyfCWslBkS6oUlU</a></td></tr></tbody></table>

You can use these providers instead of the Harness FME SDK in your application.
