Rust at ByteTrail
We use Rust in our solutions for many of the same reasons that you see in other projects, safety, performance, and efficiency. We also take advantage of Rust’s robust toolchain and platform support to develop a solution that runs on a wide range of platforms.
At the core of our IIOT software supply chain solution is a distributed execution and orchestration engine that executes a workflow across components deployed in the cloud, at the edge and on IIOT devices. This allows us to develop customer specific workflows without modifying or customizing our solution to each customer deployment and device ecosystem. The workflows are built using high-level abstractions specific to the customer deployment environment through a combination of declarative and imperative components.
The core engine and all supporting libraries are developed using Rust allowing us to reuse the same code in each of these deployment environments. Our execution engine in the cloud is the same code as the execution engine at the edge and on IIOT devices ranging from OS hosted?multi-core processor to bare metal devices.
We take advantage of Rust’s platform support, build toolchain, including cargo features, to accomplish this. Rust Cargo features allow us to develop libraries that have client, server, or both sets of capabilities as well as building with specific capabilities excluded for resource constrained devices where those capabilities may not be required.
The execution and orchestration engines allow ByteTrail to support software supply chain workflows across cloud, edge devices, and 1000s of IIOT device classes and configurations without having to maintain multiple separate code bases.