Mech is a language for developing data-driven, reactive systems like animations, games, and robots. It makes composing, transforming, and distributing data easy, allowing you to focus on the essential complexity of your problem.

You can try Mech online at try.mech-lang.org.

Usage and installation instructions can be found in the documentation or the main Mech repository.

Read about progress on our blog, follow us on Twitter @MechLang, get live help on our Gitter channel, or join the mailing list.

Welcome

This repository serves as a table of contents for the constellation of tools and utilities that comprise the Mech programming language:

  1. Core - The language runtime. It's a small dataflow engine that accepts transactions of changes, and applies them to a compute network.
  2. Syntax - A compiler for a textual Mech syntax.
  3. Notebook / Mech-wasm - An editor that allows users to write and run programs using the textual syntax.

Documentation

Right now, most Mech features and syntax are undocumented. You can find some minimal documentation here, and also the beginning of a tutorial here.

Installation

From Binary

You can download the the latest release for your platform here. Or, if you have Rust's Cargo tool installed you can use the following command:

```bash

cargo install mech ```

From Source

You will need to install Rust (Mech only works on the "Nightly" release channel) and NodeJS before building Mech. When those are installed, follow these instructions:

```bash

git clone https://gitlab.com/mech-lang/mech cd mech git submodule update --init --recursive cd notebook npm install cd.. cargo build --bin mech --release ```

Project Status

Mech is currently in the v0.0.3 alpha stage of development. This means that while some features work and are tested, programs are still likely to crash and produce incorrect results. We've implemented some language features, but many are not yet implemented.

Feel free to use the language for your own satisfaction, but please don't use it for anything important.

License

Apache 2.0