Skip to main content

Rank configuration language

A deterministic language for typed configuration.

Generate config, manifests, HTTP handlers, and provider-backed workflows with explicit inputs and early feedback.

Rank combines pattern matching, parsing, constraints, and explicit commit boundaries so infrastructure and runtime-facing configuration stays readable, typed, and reproducible.

Small example

Version = parse`{major:number}-{minor:number}-{patch:number}`

port = match env {
  `prod` => 443,
  _ => 8080,
}

@constraint(cond: |self| self >= 1 && self <= 65535)
service_port = port
Pattern matchingParse templatesConstraints

Pattern Matching

Decisions Stay Visible

Rank keeps branching logic out in the open. Inputs are explicit, matches are readable, and the same program produces the same result.match mode { `dev` => `development`, `prod` => `production` }

Parsing

Structured Text, Typed Fields

Version strings, paths, and other structured text can be described once and pulled apart safely instead of being handled as loose strings.parse`{major:number}-{minor:number}-{patch:number}`

Constraints

Catch Bad Config Early

Simple rules can live next to the values they protect, so invalid ports, counts, and shapes fail during checking instead of later in runtime.@constraint(cond: |self| self >= 1 && self <= 65535)