Ecosyste.ms: Awesome

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

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

🦾 Main repository for the Mech programming language. Start here!
https://github.com/mech-lang/mech

compiler data-processing ide language live-programming programming-environment programming-language reactive-programming robotics

Last synced: 3 months ago
JSON representation

🦾 Main repository for the Mech programming language. Start here!

Lists

README

        



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 project.

You can try Mech online at [try.mech-lang.org](http://try.mech-lang.org).

Usage and installation instructions can be found in the [documentation](https://mech-lang.org/page/learn/) or the [main Mech repository](https://github.com/mech-lang/mech).

Read about progress on our [blog](https://mech-lang.org/blog/), and follow us on Twitter [@MechLang](https://twitter.com/MechLang).

## Welcome

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

1. [Core](https://gitlab.com/mech-lang/core) - The language runtime. It's a small dataflow engine that accepts transactions of changes, and applies them to a compute network.
2. [Syntax](https://gitlab.com/mech-lang/syntax) - A compiler for a textual Mech syntax.
3. [Program](https://gitlab.com/mech-lang/program) - Coordinates distributed Mech cores as a coherent program.

## Documentation

Documentation is hosted online at [mech-lang.org](http://docs.mech-lang.org), and is open sourced on [GitHub](http://github.com/mech-lang/docs).

- Mech platform references
- Syntax
- Ecosystem
- Architecture
- User guides
- Tutorials
- How-Tos
- Mech for X

## Installation

### From Binary

You can download the latest release for your platform [here](https://github.com/mech-lang/mech/releases). 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](https://www.rust-lang.org/learn/get-started) on a recent nightly release, and [wasm-pack](https://rustwasm.github.io/wasm-pack/installer/). When those are installed, follow these instructions:

```bash
git clone https://gitlab.com/mech-lang/mech -b v0.1-beta --recurse-submodules
cd mech
wasm-pack build wasm-notebook --target web
cargo build --bin mech --release
```

To update submodules:

```bash
git submodule update --force --recursive --init --remote
```

## Project Roadmap

Mech is currently in the **alpha** stage of development. This means that while some features work and are tested, programs are still likely to crash and produce incorrect results. There is a "happy path" that works well, but it's quite narrow. We've implemented many language features, but most are incomplete and some are not yet implemented at all.

The project will hit the **beta** stage of development when all currently planned features have been implemented at least as a prototype. The current target for this milestone is October 2022.

See [ROADMAP.md](ROADMAP.md) for more.

## License

Apache 2.0