Skip to content
Main repository for the Mech programming language. Start here!
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
assets @ 21de145
benches
examples
notebook @ d7f6e8e
src
.gitignore
.gitlab-ci.yml
.gitmodules
Cargo.toml
LICENSE
README.md

README.md

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. Program - Organizes Mech cores into a coordinated program. Handles reading files, interfacing with libraries, and persisting changes top disk.
  4. Server - Provides a server and client for hosting Mech programs and a browser-based editor on a websocket.
  5. Notebook / Mech-wasm - A hosted editor for writing Mech applications.

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.

Documenation and tooling will be a focus of the next release (v0.0.2).

Building from Source

You will need to install Rust and NodeJS before building Mech. When those are installed, follow these instructions:

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

You can’t perform that action at this time.