Files
oc2r-rust/README.md

42 lines
1.7 KiB
Markdown

# OC2R Rust
Thin, synchronous access to the [OpenComputers II: Reimagined](https://github.com/North-Western-Development/oc2r) 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](https://github.com/cross-rs/cross),
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](https://github.com/johnthagen/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.
```bash
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.