Know what your code can do
before it runs
A systems language where every function declares its capabilities — IO, network, clock, and more — with compile-time effect checking.
v0.8.0: Linux x86_64, macOS Apple Silicon, and Windows x86_64. Building programs also requires LLVM 17+ or 18+, clang, and a platform linker.Installation requirements
curl -fsSL https://raw.githubusercontent.com/SailfinIO/sailfin/main/install.sh | bashWhy Sailfin?
A language designed from the ground up for compile-time capability enforcement.
Effect Types
Every function declares what it can do — IO, network, clock, and more. The compiler checks effectful operations and catches capability violations before runtime.
Capability Security
Capsules declare required capabilities in their manifest. Registered operations and resolved callees are checked at compile time; opt-in workspace envelopes enforce member manifests' declared surfaces.
Self-Hosted Compiler
Sailfin's self-hosted compiler emits textual LLVM IR and uses LLVM/clang to produce native binaries. It is a compiler, not an interpreter wrapper.
Pragmatic Ergonomics
Conventional TypeScript/Rust-like syntax and clear, source-spanned diagnostics with fix-it hints. Designed to be readable by humans and coding agents alike.
Package Registry
Capsules — Sailfin's packages — are published to pkg.sfn.dev with full dependency resolution and capability auditing. Point `sfn` at a private registry with `sfn config set registry <url>`.
Structured Concurrency
Routine nurseries, channels, spawn / await, and parallel execution ship as a v0 surface. Nursery exit joins every child; current limitations are documented.
Built for
Capability-Controlled Services
The compiler checks registered IO, network, clock, and entropy boundaries plus resolved callees. Audit declared capsule surfaces before production; runtime syscall sealing targets 1.0.
Systems Programming
The self-hosted compiler lowers through textual LLVM IR and LLVM/clang to native binaries, with a backend seam for future code generators.
CLI Tools & Automation
Concise syntax, explicit effects, and native binary output support auditable developer tooling and automation.
Supply-Chain Security
Every capsule declares its capability requirements. Know exactly what your dependencies can do — no hidden network calls, no surprise file access.
Ready to dive in?
Follow the ten-minute onboarding path and build your first program.