#mech #language #run-time #programming-language #dataflow #programming

nightly no-std bin+lib mech-core

The Mech language runtime. It's a small dataflow engine that accepts transactions of changes, and applies them to a compute network.

6 releases

0.1.0 Jan 4, 2023
0.0.5 May 6, 2020
0.0.4 Apr 4, 2020
0.0.3 Oct 30, 2019
0.0.1 Mar 19, 2019

#188 in Robotics

Download history 3/week @ 2023-12-03 3/week @ 2023-12-10 10/week @ 2023-12-17 9/week @ 2023-12-24 10/week @ 2024-01-07 9/week @ 2024-01-14 1/week @ 2024-01-21 10/week @ 2024-02-04 10/week @ 2024-02-11 18/week @ 2024-02-18 48/week @ 2024-02-25 23/week @ 2024-03-03 35/week @ 2024-03-10 24/week @ 2024-03-17

131 downloads per month
Used in 12 crates

Apache-2.0

760KB
12K SLoC

Mech is a language for developing data-driven, reactive systems like robots, games, and animations. 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 https://mech-lang.org/try.

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

Be sure to follow on our blog(RSS)!

Core

The language runtime. It's a small dataflow engine that accepts transactions of changes, and applies them to a compute network.

Contents

  • block - defines a Block, which is the ubiquitous unit of code in Mech. A block is comprised of transformations on input tables. These transformations can either modify existing tables or create new tables.
  • table - defines a Table, the core data structure of Mech. A table is a 2D array of values.
  • column - defines a Column, which is a vector of values.
  • value - defines a Value, a unified datatype for Mech. A value can be empty, a boolean, a string, a reference to another table, a number literal.
  • database - defines a Database of tables. Databases accept Transactions, which are sets of Changes to the database.
  • function - defines the standard library for Mech, including basic indexing, mathematical, comparison, and logic functions.
  • error - defines an MechError, which holds the information necessary to track and render error messages.

Project Status

Mech is currently in the beta stage of development. This means that the language is at a suitable stage for a wider audience. While most language feature implementations are started, none are finished, and some new features may, while others could be removed. Backwards and forwards compatibility of Mech programs is not guaranteed at this time.

License

Apache 2.0

Dependencies

~2.6–4MB
~70K SLoC