Runtime Conditions is currently seeking adoption by an established parent project. The repositories in this organization are split for hands-on usability, review, demos, and implementation feedback. They are not intended to present Runtime Conditions as a standalone foundation or competing project.
Start here: https://runtimeconditions.github.io/
This repository contains Runtime Conditions extension definitions, declaration packages, semantic overlays, and extension-maintenance automation. Extension definitions own vocabulary and validation. Language declaration packages provide no-op source declarations that generators can read.
Extension release identity, immutability, provenance, and SDK compatibility are defined in EXTENSION_RELEASES.md.
Operation-oriented extensions use the authoring contract in SERVICE_OPERATIONS_SEMANTIC_BRIDGES.md. A semantic bridge references an authoritative Smithy, OpenAPI, protobuf, or comparable source when available and uses a separate Service Operations Inventory only as a fallback.
Per the spec, first-party extensions are extensions like any other - there's no separate "core vocabulary" tier, and no notion of an extension being owned by this project versus anyone else's. Every extension lives together under catalog/, declared and resolved the same way regardless of who authored it:
| Extension | Identifier | Path |
|---|---|---|
| Common Integrations | https://runtimeconditions.io/extensions/common-integrations/v1alpha1/runtimeconditions.extension.yaml |
catalog/rc/common-integrations/ |
| Env Configuration | https://runtimeconditions.io/extensions/env-configuration/v1alpha1/runtimeconditions.extension.yaml |
catalog/rc/env-configuration/ |
| Source Control | https://runtimeconditions.io/extensions/source-control/0.1.0/runtimeconditions.extension.yaml |
catalog/rc/source-control/ |
| Amazon S3 | https://runtimeconditions.io/extensions/aws/s3/0.1.0/runtimeconditions.extension.yaml |
catalog/aws/s3/ |
| Kubernetes API | https://runtimeconditions.io/extensions/kubernetes/api/0.1.0/runtimeconditions.extension.yaml |
catalog/kubernetes/api/ |
| NATS | https://runtimeconditions.io/extensions/nats/service/0.1.0/runtimeconditions.extension.yaml |
catalog/nats/service/ |
| Google Analytics | https://runtimeconditions.io/extensions/google/analytics/0.1.0/runtimeconditions.extension.yaml |
catalog/google/analytics/ |
catalog/- every extension, first-party or community, lives here as<namespace>/<name>/. First-party extensions that aren't tied to an external vendor or project sit underrc/(rc/common-integrations/,rc/env-configuration/,rc/source-control/) - it's a namespace like any other, not a special tier. Everything else is namespaced by vendor or project (aws/s3/,google/analytics/,kubernetes/api/,nats/service/). The nesting is consistent for every entry, whether a namespace will only ever have one extension (kubernetes/,nats/) or many (aws/,google/,rc/) - we're not picking a different shape per case.tooling/- automation shared across extensions, not extensions themselves. Still figuring out the right shape for this one.common/the shared Python helpers (e.g.serialization.py) every extension'stools/imports from, so a fix only has to happen in one place.smithy-runtime-conditions/the external compiler used to prove semantic-bridge generation against AWS's public Smithy models before proposing an internal AWS generator integration.
Generated Go modules are public, use short import paths, and require Go 1.25 or later. Consumers install them without GitHub credentials or private-module configuration. After the first binding release is published:
go get runtimeconditions.io/x/rc/common@v0.1.0
go get runtimeconditions.io/x/rc/env@v0.1.0The package names match the public paths, so aliases are optional:
import (
"runtimeconditions.io/x/rc/common"
"runtimeconditions.io/x/rc/env"
)
func cache() common.Declaration {
engine := common.KeyValueEngineRedis
return common.Cache(
common.KeyValue{Engine: &engine},
env.KeyValueConfiguration{
Env: env.KeyValueConfigurationEnv{
{Name: "REDIS_URL", Property: env.KeyValueConfigurationEnvPropertyUrl},
},
},
)
}tooling/extension-bindings/packages.yaml defines each public module path,
package name, version, and generated source directory. Future bindings use
runtimeconditions.io/x/<provider>/<extension>, such as
runtimeconditions.io/x/aws/s3 with package name s3.
The existing docs build invokes tooling/common/build_extensions_site.py,
which publishes Go discovery pages alongside extension definitions. The Go
source remains in bindings/<package-key>/go. Versions are published through
Publish Go bindings in GitHub Actions; see
the binding publication workflow.
From a sibling go-rc-profiler checkout:
cd ../go-rc-profiler
go run . validate-extensions -root ../extensionsPublished extension identifiers are immutable semantic releases. A new semantic definition receives a new exact identifier; Runtime Conditions document apiVersion changes are independent.