Quick Start
Get WCL running in a few minutes: declare a type, write data, check and evaluate.
Install
WCL is pre-release only for now, so install the newest pre-release with the install script:
curl -fsSL https://wcl.dev/install.sh | sh -s -- --pre
On a platform without a prebuilt binary (e.g. macOS), build from source with Cargo instead:
cargo install --git https://github.com/wiltaylor/wcl -p wcl --locked
If ~/.local/bin is not on your PATH, add it. Verify with wcl --version.
What WCL is
WCL is a typed configuration & schema language: you declare record types, compose a document of block instances, and the toolchain validates and evaluates it.
A minimal document
Declare a block type, point a @document at it, then write an instance:
@block("server") type Server {
@inline(0) id: identifier
host: utf8
@default(8080) port: u16
}
@document type Config { @children("server") servers: list<Server> }
server web { host = "localhost" }
Check and evaluate
Validate the document against its schema, then evaluate it:
$ wcl check config.wcl # type-checks the document, reports errors
$ wcl eval config.wcl # prints the evaluated data
Where to go next
Walk the essentials: Fields & Blocks, Records, Schema & Decorators, and the CLI.