Get CFDL
CFDL runs the same compiler and engine everywhere — pick the surface that matches how you work.
| You want to… | Surface | Setup |
|---|---|---|
| Try the language right now | Playground | none |
| Model in files, run in CI | CLI | Install the CLI |
| Analyze results in pandas / notebooks | Python SDK | Install for Python |
| Call CFDL from another service | API server | Run the server |
| Author models with diagnostics + hover | VS Code + LSP | VS Code and LSP |
| Run models in your own page or Node service | WebAssembly bundle | Pin the bundle |
Channels
The current release is 0.12.0.
| Surface | Install |
|---|---|
| Playground | nothing to install: open it in the browser |
| CLI | brew install cfdl-dev/tap/cfdl, or a release binary |
| Python SDK | pip install cfdl-sdk |
| API server | docker run -p 8080:8080 ghcr.io/cfdl-dev/cfdl-server:<version> |
| VS Code | the CFDL extension on the Marketplace or Open VSX, plus the cfdl-lsp binary from a release |
| WebAssembly | cfdl-wasm-<version>.tar.gz from a release, from 0.12.0 on |
Every release carries one version across the surfaces, and its assets are
published on
cfdl-dev/cfdl-releases:
the CLI as cfdl-darwin-arm64, cfdl-darwin-x64, cfdl-linux-x64 and
cfdl-windows-x64.exe; the language server as cfdl-lsp-darwin-arm64,
cfdl-lsp-darwin-x64, cfdl-lsp-linux-x64 and cfdl-lsp-windows-x64.exe;
the extension as cfdl-vscode-<version>.vsix; the packs as
cfdl-packs-<version>.tar.gz and the published documentation as
cfdl-docs-<version>.tar.gz; the WebAssembly bundle, for a page and for Node, as
cfdl-wasm-<version>.tar.gz; the Homebrew formula cfdl.rb;
release-manifest-<version>.json; and SHA256SUMS.txt to check each download
against. The container image is
pushed under its version tag and latest. The Homebrew tap is updated in a
separate step that a person approves, and the Python package is published by
its own workflow, so either can trail the release by a short time.
Versions and compatibility
The CLI, Python SDK, WASM playground, and API server embed the same compiler and engine, so a given release produces byte-identical IR and Results across all of them. The language/IR spec is v0.1; interfaces may change until 1.0 freezes the IR and Results schemas.