A typed functional language for the BEAM. Hindley-Milner inference, row polymorphism, actor-first concurrency, and effects tracked in the type system. Compiles to BEAM bytecode via Core Erlang.
Status: 0.2.0 — first public release. The language and tooling are
usable end-to-end. Pre-1.0 minors may include breaking changes; patch
releases within 0.2.x will not. See CHANGELOG.md for
what landed and docs/spec.md for the full language
specification.
- Statically typed with Hindley-Milner inference and row polymorphism
- Compiled to BEAM bytecode via Core Erlang
- Nine first-class capabilities (
io,fs,net,time,random,env,proc,spawn,ffi) visible in every function signature - Immutable by default; mutable state confined to actors
- Actor-first concurrency
- Workspace model with architectural rules enforced by the compiler
- No
null—OptionandResultare the only way to express optionality and failure - LSP server (diagnostics, hover, go-to-definition) and VS Code extension
- Built-in test runner, formatter, and REPL
fn io main () =
Io.println "Hello, World"
More sample programs live under examples/.
Pre-built binaries are available for Linux, macOS, and Windows. Install
scripts download the release archive, verify its SHA256, and place ridge
and ridge-lsp on your PATH. If no binary exists for your platform the
scripts fall back to cargo install.
Linux / macOS
bash -c "$(curl -fsSL https://raw.githubusercontent.com/ridge-lang/ridge/main/tools/install/install.sh)"Windows (PowerShell)
& ([scriptblock]::Create((iwr -useb 'https://raw.githubusercontent.com/ridge-lang/ridge/main/tools/install/install.ps1').Content))Full install notes, environment overrides, and troubleshooting live in
tools/install/README.md.
ridge new hello # scaffold a new project
cd hello
ridge run # build and run
ridge test # run the test suite
ridge fmt # format .ridge files
ridge repl # interactive REPLThe full walk-through, including project layout and capability declarations,
is in docs/tutorial.md.
- VS Code: install the Ridge
extension
from the Marketplace, or run
code --install-extension ridge-lang.vscode-ridge. It bundles a TextMate grammar and an LSP client wired toridge-lsp. Source undertools/vscode-ridge/. - Any LSP-capable editor can talk to the
ridge-lspbinary directly.
- Tutorial — install plus a guided first project
- Language specification — formal definition
- Grammar (EBNF) — parser reference
- Examples — runnable sample programs
Release archives are signed with Sigstore
keyless signing via the GitHub Actions OIDC token. Each archive ships with
a .cosign.bundle sidecar containing the signature, certificate, and Rekor
transparency-log entry. The install scripts verify the signature
automatically when cosign is present (advisory diagnostic R055 if
cosign is missing, fatal R056 if verification fails). To verify a
release manually, see Verifying release signatures
manually.
cargo build --workspace
cargo test --workspacePrerequisites: Rust 1.88+, Erlang/OTP 26+, git 2.20+. Repository layout and
contributor conventions live in CONTRIBUTING.md.
Pull requests are welcome. Please read CONTRIBUTING.md
first — it covers branch naming, commit conventions, and how to propose
language-level changes. By participating you agree to the
Code of Conduct.
To report a vulnerability, see SECURITY.md.
Licensed under the Apache License, Version 2.0.