Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?


Failed to load latest commit information.
Latest commit message
Commit time


Vale is a programming language that's aims to be not only fast and memory-safe, but also easy and flexible.

See for more information on the language. We're also open for sponsorship, thank you to all our sponsors for enabling our ambitious endeavor!

See also our treasure trove of working examples, grouped by functionality.

Building a Vale Program

  1. Download the latest binary from
  2. Unzip it into, for example, ~/Vale, and cd into it.
  3. Make a file hello.vale containing some vale code, like exported func main() { println("Hello world!"); }
  4. Compile a program: ./valec build mymod=hello.vale --output_dir target
  5. Run the program: target/main, and you should see the output Hello world!

Learning Vale

See the Guide for how to use Vale.

Building the compiler itself

For instructions for building the compiler itself, see Building the Compiler.

For an overview of the project structure, see Compiler Overview.

Editor plugins

Thank you to all of our sponsors!


Vale started in January 2013, and back then we called it "VLang", though there's now another language with that name. We then called it GelLLVM, in honor of Gel, the first language to offer constraint references. Since then, we've settled on the name "Vale". Note that Vale and Vala are two different languages.