Files
oc2r-rust/README.md

1.7 KiB

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.