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.
This repository serves as a table of contents for the constellation of tools and utilities that comprise the Mech programming language:
- Core - The language runtime. It's a small dataflow engine that accepts transactions of changes, and applies them to a compute network.
- Syntax - A compiler for a textual Mech syntax.
- Program - Organizes Mech cores into a coordinated program. Handles reading files, interfacing with libraries, and persisting changes top disk.
- Server - Provides a server and client for hosting Mech programs and a browser-based editor on a websocket.
- Notebook / Mech-wasm - A hosted editor for writing Mech applications.
Documenation and tooling will be a focus of the next release (v0.0.2).
Building from Source
> 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
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. 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.