Pictorus is a cloud-native software development platform for control systems, which generates and deploys Rust-language code to connected devices directly from your browser.
This repository contains a virtual workspace that includes all of the crates required by code generated by Pictorus. The current crates are as follows:
These are the primary public-facing crates that are likely to be used by most users. The goal is to eventually stabilize these crates and follow semver.
- pictorus-traits - This crate contains all of the traits that define block behavior. New blocks can be created by implementing these traits, allowing users to quickly spin up custom functionality.
- pictorus-blocks - This crate contains all of the pre-built blocks available in Pictorus. These blocks implement the traits defined in
pictorus-traits.
These crates are not intended to be consumed by external users and are likely to change without notice.
- pictorus-internal - This crate contains other traits/structs/utilities referenced by generated code.
- pictorus-block-data - This crate contains legacy code for passing data between blocks. This will be removed in the future.
These crates implement the platform-specific drivers needed to interact with I/O in Pictorus apps. These drivers serve as the common interface by which apps ineract with I/O on various platforms.
- pictorus-linux - Linux-specific drivers (i.e. Raspberry Pi)
- pictorus-sim - Simulation drivers (for use in the Pictorus simulator)
- pictorus-stm32 - STM32-specific drivers
To build the project, you should only need Rust installed. If you are contributing to the project, we also use pre-commit to run some git hooks, which requires Python to be installed. For convenience, you can install the required dependencies by running ./script/setup.