# Silk

An unreleased, alpha-stage low-level systems programming language built around explicit memory and execution control, typed failures and deterministic cleanup, with a self-hosted stage-0 compiler that emits native code and WebAssembly through LLVM.

Silk is an unreleased systems language centered on explicit memory and execution control, typed failures, replaceable service requirements, deterministic cleanup and tooling-friendly semantics. The repository is a strict TypeScript, ESM-only monorepo holding the stage-0 compiler, runtime-facing libraries, editor tooling and language test programs, and currently compiles one source program through a lossless frontend, module and type analysis, a high-level intermediate representation, ownership and cleanup planning, specialization and a mid-level intermediate representation, emitting native executables and WebAssembly modules through LLVM.

The implemented bootstrap language covers modules and visibility, scalar types, structs, fixed arrays, runtime slices, structural unions with exhaustive matching, generics, first-class callables, mutation, structured loops, recursion, affine ownership with shared and exclusive borrowing, deterministic drop, explicit allocation, and typed effect computations with explicit, source-defined service requirements such as logging and file-system access. Documentation covers getting started, a language reference, and the ownership, effects and fiber models at the core of the design, and the project describes itself as alpha software whose APIs may change freely.

Website: https://silklang.org
