PLC-lang / rusty

Structured Text Parser and LLVM Frontend
GNU Lesser General Public License v3.0
221 stars 53 forks source link
iec61131 inkwell llvm rust st

RuSTy

A structured text compiler written in Rust, utilizing the LLVM framework for native code compilation.

Examples | Documentation | Contributing

Why RuSTy?

Structured Text is a popular language in the domain of automation. A standardized specification of the language (IEC 61131) was published in the 90s. It was updated several times in the meantime, while its initial spirit - being built for cyclic, robust and deterministic automation applications - still applies.

Several automation platform suppliers built proprietary compilers and runtime libraries, native to the vendor's hard- and software platform.

RuSTy is aiming towards a fast, modern and open-source industry-grade ST compiler for a wide range of platforms, sticking close to the standard.

Getting started

The easiest way to compile this project is to use the provided Dockerfile. The project offers a .devcontainer when using VSCode. The Dockerfile offers a linux-image which contains everything you need to run cargo build / cargo test in the project's root directory.

If you want to build the project without docker, start here.