Skip to main content
CFDL

Get CFDL

CFDL runs the same compiler and engine everywhere — pick the surface that matches how you work.

You want to…SurfaceSetup
Try the language right nowPlaygroundnone
Model in files, run in CICLIInstall the CLI
Analyze results in pandas / notebooksPython SDKInstall for Python
Call CFDL from another serviceAPI serverRun the server
Author models with diagnostics + hoverVS Code + LSPVS Code and LSP
Run models in your own page or Node serviceWebAssembly bundlePin the bundle

Channels

The current release is 0.12.0.

SurfaceInstall
Playgroundnothing to install: open it in the browser
CLIbrew install cfdl-dev/tap/cfdl, or a release binary
Python SDKpip install cfdl-sdk
API serverdocker run -p 8080:8080 ghcr.io/cfdl-dev/cfdl-server:<version>
VS Codethe CFDL extension on the Marketplace or Open VSX, plus the cfdl-lsp binary from a release
WebAssemblycfdl-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.