-
Notifications
You must be signed in to change notification settings - Fork 53
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
1 changed file
with
27 additions
and
27 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,44 +1,44 @@ | ||
# RuSTy | ||
|
||
[![Linux Build](https://github.com/PLC-lang/rusty/actions/workflows/linux.yml/badge.svg)](https://github.com/PLC-lang/ruSTy/actions) | ||
[![Windows Build](https://github.com/PLC-lang/rusty/actions/workflows/windows.yml/badge.svg)](https://github.com/PLC-lang/rusty/actions/workflows/windows.yml) | ||
[![Documentation](https://github.com/PLC-lang/rusty/actions/workflows/doc.yml/badge.svg)](https://plc-lang.github.io/rusty) | ||
[![codecov](https://codecov.io/gh/PLC-lang/rusty/branch/master/graph/badge.svg?token=7ZZ5XZYE9V)](https://codecov.io/gh/PLC-lang/rusty) | ||
[![Metrics](https://github.com/PLC-lang/rusty/actions/workflows/metrics.yml/badge.svg)](https://plc-lang.github.io/metrics) | ||
<div align="center"> | ||
<!-- Eventually(?) we'll have a logo, which we can insert here --> | ||
<h1>RuSTy</h1> | ||
<p>A <a href="https://en.wikipedia.org/wiki/Structured_text">structured text</a> compiler written in Rust, utilizing the LLVM framework for native code compilation.</p> | ||
<p> | ||
<a href="https://github.com/PLC-lang/rusty/tree/master/examples">Examples</a> | | ||
<a href="https://plc-lang.github.io/rusty/">Documentation</a> | | ||
<a href="https://github.com/PLC-lang/rusty/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22">Contribution</a> | ||
</p> | ||
|
||
[![Lines of Code](https://tokei.rs/b1/github/PLC-lang/rusty)](https://github.com/XAMPPRocky/tokei) | ||
</div> | ||
|
||
[Structured text](https://en.wikipedia.org/wiki/Structured_text) compiler written in Rust | ||
|
||
## About RuSTy | ||
### Why RuSTy? | ||
|
||
RuSTy is a structured text (ST) compiler written in Rust. RuSTy utilizes the | ||
LLVM framework to compile eventually to native code. | ||
Structured Text is a popular language in the domain of automation. A standardized specification of the language ([IEC 61131](https://en.wikipedia.org/wiki/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](https://code.visualstudio.com/docs/remote/containers). 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](https://plc-lang.github.io/rusty/build_and_install.html). | ||
|
||
### Documentation | ||
|
||
The compiler's documentation can be found here: [documentation](https://plc-lang.github.io/rusty/). | ||
|
||
### Contributing | ||
|
||
If you want to contribute to the project you should look for some [beginner-friendly issues](https://github.com/PLC-lang/rusty/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22) and reach out to project's maintainers. | ||
|
||
## Why RuSTy | ||
|
||
Structured Text is a popular language in the domain of automation. A standardized specification of the language ([IEC 61131](https://en.wikipedia.org/wiki/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. | ||
|
||
## Dependencies | ||
<!-- ## Dependencies | ||
We use the [_logos_](https://crates.io/crates/logos/) | ||
crate library to perform lexical analysis before a handwritten recursive decent parser creates the AST. | ||
Generating LLVM IR is accomplished with the help of [_inkwell_](https://github.com/TheDan64/inkwell), a Rust-wrapper around the native LLVM C-API. | ||
Generating LLVM IR is accomplished with the help of [_inkwell_](https://github.com/TheDan64/inkwell), a Rust-wrapper around the native LLVM C-API. --> | ||
|
||
<!-- This seems to be broken? | ||
[![Lines of Code](https://tokei.rs/b1/github/PLC-lang/rusty)](https://github.com/XAMPPRocky/tokei) --> | ||
<!-- --> | ||
<!-- [![Linux Build](https://github.com/PLC-lang/rusty/actions/workflows/linux.yml/badge.svg)](https://github.com/PLC-lang/ruSTy/actions) | ||
[![Windows Build](https://github.com/PLC-lang/rusty/actions/workflows/windows.yml/badge.svg)](https://github.com/PLC-lang/rusty/actions/workflows/windows.yml) | ||
[![Metrics](https://github.com/PLC-lang/rusty/actions/workflows/metrics.yml/badge.svg)](https://plc-lang.github.io/metrics) | ||
[![Documentation](https://github.com/PLC-lang/rusty/actions/workflows/doc.yml/badge.svg)](https://plc-lang.github.io/rusty) | ||
[![codecov](https://codecov.io/gh/PLC-lang/rusty/branch/master/graph/badge.svg?token=7ZZ5XZYE9V)](https://codecov.io/gh/PLC-lang/rusty) --> |