Why Sailfin?

Sailfin is built for a world where AI, safety, and systems performance aren't competing concerns — they're unified in one language.

Use Cases

AI-Powered Services

Models, prompts, and pipelines are language primitives. You get type-safe model invocation, structured prompt composition, and generation cards that track provenance — input hashes, cost, latency, and seed — for every model call. No more stringly-typed LLM wrappers.

Systems Programming

Sailfin compiles to native code via LLVM. Ownership and borrowing semantics (affine and linear types) give you memory safety without a garbage collector. The effect system replaces runtime permission checks with compile-time capability verification.

Secure Data Processing

PII<T> and Secret<T> wrapper types propagate through your program, ensuring sensitive data can't be logged, serialized, or sent over the network without explicit handling. Capability-based security means untrusted code can't access IO or network even at runtime.

Developer Tooling & CLI

Fast compilation, single-binary output, and a clean standard library make Sailfin a natural fit for CLI tools, build systems, and developer infrastructure. The capsule system provides dependency management with capability auditing built in.

Security by Design

Every function declares its capabilities: ![io], ![net], ![model], ![gpu]. The compiler rejects calls that exceed declared capabilities. This isn't a lint rule — it's a type system guarantee.

// This won't compile — fetch_data needs ![net] but main only grants ![io]
fn main() ![io] {
    let data = fetch_data("https://api.example.com");  // ERROR
}

Who's Using Sailfin?

Sailfin is pre-1.0 and actively developed. Early adopters and contributors are shaping the language. Join the community to get involved.