Vale is a programming language that's aims to be not only fast and memory-safe, but also easy and flexible.
- Fast: Vale is AOT compiled to LLVM, statically-typed, and uses the new generational references technique for memory safety with speed and flexibility, and will soon have region borrow checking to make it even faster.
- Safe: It is the safest native language, thanks to generational references and Fearless FFI.
- Easy: Vale has memory-safe single ownership without garbage collection or a borrow checker, which makes it easy to write safe, fast code.
See http://vale.dev/ 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.
- Download the latest binary from https://github.com/ValeLang/Vale/releases
- Unzip it into, for example,
~/Vale
, andcd
into it. - Make a file
hello.vale
containing some vale code, likeexported func main() { println("Hello world!"); }
- Compile a program:
./valec build mymod=hello.vale --output_dir target
- Run the program:
target/main
, and you should see the outputHello world!
See the Guide for how to use Vale.
For instructions for building the compiler itself, see Building the Compiler.
For an overview of the project structure, see Compiler Overview.
- VSCode plugin: Syntax-highlighting and basic autocompletion.
- Vim plugin: Syntax-highlighting
- Arthur Weagel
- Radek Miček
- Geomitron
- Chiuzon
- Felix Scholz
- Joseph Jaoudi
- Luke Puchner-Hardman
- Jonathan Zielinski
- Albin Kocheril Chacko
- Svintooo
- Tim Stack
- Alon Zakai
- Alec Newman
- Sergey Davidoff
- Ian (linuxy)
- Ivo Balbaert
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.