<p align="center">
<img width="500px" src="https://mech-lang.org/img/logo.png" alt="Mech Logo">
</p>
**Mech** is a language for building **data-driven** and **reactive** systems like robots, games, user interfaces, and more. It simplifies **composing**, **transforming**, and **distributing** data, so you can focus on the core complexities of your project.
[Try Mech](https://mech-lang.org/try/) online in your browser or stay updated through our [blog](https://mech-lang.org/blog/).
## π Download and Install
### πΎ From Binary
Download the latest release for your platform [here](https://github.com/mech-lang/mech/releases/latest).
### π¦ From Source
To build Mech from source, youβll first need to install [Rust](https://www.rust-lang.org/learn/get-started) (make sure to install a recent version on the nightly release channel).
Then follow the instructions below to compile the Mech toolchain, bundled in a single executable called `mech`:
```bash
git clone https://gitlab.com/mech-lang/mech
cd mech
cargo build --bin mech --release
```
## π Documentation
New to Mech? Start with [Learn Mech in Fifteen Minutes](https://gitlab.com/mech-lang/docs/-/raw/v0.2-beta/III.guides/MechFifteen.mec).
Comprehensive documentation is available at [mech-lang.org](https://mech-lang.org/docs) and open-sourced on [GitHub](http://github.com/mech-lang/docs).
## πͺ Community
The Mech community stays active at a few places around the Internet:
- πΎ [Discord](https://discord.gg/asqP25NNTH) - for live chat
- π [GitHub](https://github.com/mech-lang) - for code and issues
- πΊ [YouTube](https://www.youtube.com/@MechLang) - for video tutorials
- πΈ [Reddit](https://www.reddit.com/r/mechlang/) - for help and general discussion
- π§ [Mailing List](https://groups.google.com/g/mechtalk) - for dev discussion
Feel free to stop by and introduce yourself -- we're happy to meet new users and answer questions!
## πΊοΈ Project Roadmap
Mech v0.2 is currently **beta** status, meaning most intended features are implemented, but rough edges abound and there is a general lack of documentation. Development is focused on testing and documentation.
A Brief Roadmap:
- βοΈ [v0.1](https://github.com/mech-lang/mech/tree/v0.1-beta) - proof of concept system - minimum viable language implementation
- π [v0.2](https://github.com/mech-lang/mech/tree/v0.2-beta) - data specification - formulas, defining and manipulating data
- β v0.3 - program specification - functions, modules, state machines
- β v0.4 - system specification - tools, distributed programs, capabilities
For more details, read the [ROADMAP](ROADMAP.mec).
A new version of Mech is [released every week](https://github.com/mech-lang/mech/releases).
## π² Notice
Mech should be considered unstable and therefore unfit for use in critical systems until v1.0 is released.
## βοΈ License
Licensed under [Apache 2.0](https://www.apache.org/licenses/LICENSE-2.0).