This repository contains the compiler, cli, standard library and documentation for Bait.
fun main() {
println('hello world')
}
Status: Bait is in active development. It is stable for personal use, but please be prepared for possible breaking changes and evolving features (:construction:).
- Consistent syntax balancing simplicity for newcomers with power for experienced developers
- Type and memory safety with immutability by default
- Explicit and predictable error handling using Result types
- JavaScript backend (NodeJS, 🚧 Web)
- 🚧 C backend
- Cross-platform support (Linux, 🚧 Windows)
A dedicated website, comprehensive language documentation and a documentation generator are work in progress.
The language specification will be formalized and released during the beta phase.
The Language Overview provides a brief introduction to the syntax and features.
Some basic example programs can be found in the examples directory.
For a much larger list of examples, check out the Rosetta Code solutions.
Right now Bait has to be compiled from source. Precompiled binaries will be available in the future.
Required dependencies:
git
andNodeJS >= 18
Linux:
git clone https://github.com/bait-lang/bait
cd bait
./make.sh
sudo ./bait symlink
Windows:
git clone https://github.com/bait-lang/bait
cd bait
./make.bat
# In admin shell:
./bait.bat symlink
Now you should have Bait compiled to JS at <repo>/bait.js
.
Thanks to the symlinked wrapper script,
you can use the compiler with a simple command like bait run examples/hello_world.bt
.
To update Bait to the latest commit, run bait up
.
Your contributions are always welcome and highly appreciated! To get started, please take a look at CONTRIBUTING.md.
For progress updates, discussions and support, join the official Discord server.
Bait is provided under the Mozilla Public License (MPL-2.0). See LICENSE for details.