3 releases

new 0.2.17 Oct 29, 2024
0.2.13 Sep 30, 2024
0.2.4 Jul 29, 2024
0.1.0 Jan 4, 2023
0.0.1 Mar 19, 2019

#214 in Robotics

Download history 147/week @ 2024-07-08 177/week @ 2024-07-15 165/week @ 2024-07-22 309/week @ 2024-07-29 136/week @ 2024-08-05 227/week @ 2024-08-12 65/week @ 2024-08-19 192/week @ 2024-08-26 172/week @ 2024-09-02 136/week @ 2024-09-09 305/week @ 2024-09-16 280/week @ 2024-09-23 204/week @ 2024-09-30 234/week @ 2024-10-07 153/week @ 2024-10-14 163/week @ 2024-10-21

787 downloads per month
Used in 12 crates

Apache-2.0

1MB
17K SLoC

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.

Try Mech online in your browser, or follow our progress on our blog.

Core

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

Contents

  • interpreter - The Mech interpreter, which executes Mech bytecode.
  • value - Defines Value, a unified datatype
  • kind - Defines Kind, which is used to annotate the kind of each varible
  • error - Define MechError, an error type that is used throughout the Mech system.
  • functions - User defined functions
  • matrix - Mech Matrix wraps NDArray for fast matrix computations
  • nodes - Defines various nodes which comprise the Mech AST.
  • types - Defines various types used by the Rust implementation of the Mech compiler.

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

~9–13MB
~254K SLoC