This repository contains the compiler, cli, standard library and documentation for Bait.
fun main() {
println('hello world')
}
Status: Active Development.
Bait is usable for personal projects, but please be aware of bugs and incomplete features.
- 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)
- 🚧 C backend
- Cross-platform support (Linux, 🚧 Windows)
The Language Overview provides a brief introduction to the syntax and features.
More ressources, docs and examples will be released in the future.
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 MIT License.