Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/bait-lang/bait

Simple yet powerful programming language for building reliable software. Work in progress.
https://github.com/bait-lang/bait

bait compiler language programming-language self-hosted

Last synced: about 2 months ago
JSON representation

Simple yet powerful programming language for building reliable software. Work in progress.

Awesome Lists containing this project

README

        


Bait programming language

[![CI][ci-badge]][gh-actions]
[![Discord][discord-badge]][discord-invite]

## Introduction
This repository contains the compiler, cli, standard library and documentation for Bait.

```bait
fun main() {
println('hello world')
}
```

## Key Features
> **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, :construction: Web)
- :construction: C backend
- Cross-platform support (Linux, :construction: Windows)

## Documentation
> 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](docs/docs.md) provides a brief introduction to the syntax and features.

## Examples
Some basic example programs can be found in the [examples](examples) directory.

For a much larger list of examples, check out the [Rosetta Code solutions][rosetta].

## Installation
Right now Bait has to be compiled from source.
Precompiled binaries will be available in the future.

## Building from source
> Required dependencies: `git` and `NodeJS >= 18`

Linux:
```sh
git clone https://github.com/bait-lang/bait
cd bait
./make.sh
sudo ./bait symlink
```

Windows:
```powershell
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 `/bait.js`.

Thanks to the symlinked wrapper script,
you can use the compiler with a simple command like `bait run examples/hello_world.bt`.

### Upgrading to the latest version
To update Bait to the latest commit, run `bait up`.

## Contributing
Your contributions are always welcome and highly appreciated!
To get started, please take a look at [CONTRIBUTING.md](./CONTRIBUTING.md).

## Community
For progress updates, discussions and support, join the [official Discord server][discord-invite].

## License
Bait is provided under the Mozilla Public License (MPL-2.0).
See [LICENSE](./LICENSE.txt) for details.

[ci-badge]: https://github.com/bait-lang/bait/actions/workflows/ci.yml/badge.svg?branch=main
[gh-actions]: https://github.com/bait-lang/bait/actions/workflows/ci.yml
[discord-badge]: https://img.shields.io/discord/1204569231992295494?label=Discord
[discord-invite]: https://discord.gg/sM8mspGMnf
[rosetta]: https://github.com/bait-lang/rosetta-bait