--- layout: default ---

The Open Policy Agent (OPA) is an open source project that helps policy enable your application. By integrating with OPA, your application's operators will be empowered to manage the size, complexity, and scale of modern deployments.

Get OPA

Latest binary (Linux/64-bit):

curl -L https://github.com/open-policy-agent/opa/releases/download/v0.1.0-rc1/opa_linux_amd64 > opa
Latest binary (Mac OSX/64-bit):

curl -L https://github.com/open-policy-agent/opa/releases/download/v0.1.0-rc1/opa_darwin_amd64 > opa
From source (requires Go):

git clone https://github.com/open-policy-agent/opa.git $GOPATH/src/github.com/open-policy-agent/opa
cd $GOPATH/src/github.com/open-policy-agent/opa
make deps
make

Features

Declarative Language

OPA features a purpose-built declarative language for describing the expected state of your application. Policies written in Rego are readily understood and easy to maintain.

Zero Dependencies

There are zero deployment dependencies in OPA. Furthermore, OPA is designed around the fate-sharing philosophy for highly available systems.

Language Agnostic

OPA exposes RESTful APIs for managing policy modules and state relevant to policy enforcement. The APIs produce and consume JSON data and are accessed via HTTP.

Low Latency

OPA's policy engine is designed from scratch with latency sensitive applications in mind. OPA introduces as little latency as possible while still decoupling policy definitions from application business logic.

Interactive Shell

OPA features an interactive shell that you can use to quickly experiment with queries and data sets.

Embeddable

OPA is written in Go with the intention of being embeddable. Applications written in Go can use OPA as a library if needed.

Usage

OPA is licensed under the Apache 2.0 open source license. OPA is under active development.