runtime - an abstraction library on top of the Open Policy Agent (OPA)
January 8, 2026 ยท View on GitHub
Introduction
The "runtime" project is a library that sits on top of OPA.
The goal of the project is to allow you to quickly write code that builds, runs or tests OPA policies.
It uses the options pattern to facilitate construction of Runtime instances specific to your needs. You can start super simple, using it just to build some rego into a bundle, or you can get more complex, using it to start a runtime with plugins, built-ins and other features.
Install
go get -u github.com/aserto-dev/runtime
Usage
// Create a runtime
r, err := runtime.New(ctx, &logger, &runtime.Config{}, runtime.WithRegoVersion(ast.RegoV1)))
if err != nil {
return errors.Wrap(err, "failed to create runtime")
}
if err := r.Start(ctx); err != nil {
return errors.Wrap(err, "failed to start runtime")
}
defer func() { r.Stop(ctx) }()
// Use the runtime to build a bundle from the current directory
return r.Build(runtime.BuildParams{
OutputFile: "my-bundle.tar.gz",
}, ".")
You can find a more complete example in the example directory.
Credits
Based on the awesome Open Policy Agent.