Skip to content

Brass

A statically typed scripting language that requires only minimal type annotations and compiles programs just in time.

Brass is a scripting language: a source file runs directly, with no build step. The default runtime compiles native code on demand, while the static type checker validates every function before that function can execute. Use brass check when you need a complete whole-program verdict without running the program. The .cz extension of Brass source files comes from copper and zinc, the two metals that make up brass.

Brass’s type system rests on flexible type inference, which reduces type annotations to nearly zero. Annotations remain available where a variable’s type should be constrained explicitly.

In short:

  • Just-in-time compilation
  • Static type checking with a demand-driven default run
  • Type inference that keeps annotations optional in most code
  • Structural subtyping with interface definitions

This book has two parts. The user guide introduces the language feature by feature, with runnable examples. The references describe the language exhaustively: syntax, the type system, the standard library, and the execution model.