OC2R Rust
Thin, synchronous access to the OpenComputers II: Reimagined high-level API for Rust.
This repository is a workspace and is divided into multiple crates:
crates/oc2r-core: mirrors the stock Lua helpers (devices.lua) so you can list devices, invoke methods, subscribe to events, and work with the low-level RPC primitives.crates/opencomputers: provides strongly typed wrappers for the opencomputers HLAPI peripherals.crates/minapk: minimal Alpine-style package installer tailored for OC2R Minux.
Development
To ease developpemnt we use cross-rs, but you can install all toolchain component or your local computer and replace cross with cargo.
By default the option "-Zfmt-debug=none" is set meaning all debug print (:?) are off. You can disable this option at any time in .cargo/config.toml.
There are more size optimisation done you can check the .cargo/config.toml, Cargo.toml, Cross.toml and min-sized-rust for more info.
Compilation
Simply do cross clippy --all-targets to compile everything
For faster transfer you can simply compress binary and decompress it inside the vm
Compression
You can compress and decompress your files with those commands for faster transfer and/or disk usage.
xz -9e --riscv --lzma2=dict=512KiB,lc=3,lp=0,pb=2 -c binary > binary.xz
xz -d binary.xz
Examples
Each crates has some examples of how to use it crate are in the examples directory.
Copy the resulting binaries from target/<triple>/release/examples/ into Minux (an Import/Export card works
well), mark them as executable and then execute them inside the VM.