
# runner-rs ( with amd64 and riscv64 support )
![Logo](https://blog.desdelinux.net/wp-content/uploads/2023/07/rust-logo.png)  
in-container integrating util to handle processes runtime    


## Depends on
- `rustup (>=1.27.1)`
- `gcc-riscv64-unknown-elf`
- `build-essential`

## Setting up
Download and execute rustup.sh
~~~bash
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
~~~

## Building

1. Clone this repo `runner-rs`

~~~bash  
  git clone https://github.com/prplV/runner-rs
~~~

2. Enter project's dir and set up toolchain list to compile code for RISC-V and AMD64

~~~bash  
  cd runner-rs/ && rustup target add riscv64gc-unknown-linux-gnu && rustup target add x86_64-unknown-linux-gnu
~~~
> [!NOTE]  
> Cargo is configured to build an app for amd64/linux defaultly. RISC-based compilation is optional.   

3.1. Release build of app for amd64/linux

~~~bash  
cargo x86_64
~~~

3.2. Release build of app for riscv64/linux

~~~bash  
cargo riscv64
~~~

3.3. Release build of app for both (riscv64 and amd64)

~~~bash  
cargo unibuild
~~~


## Execution for amd64/linux
~~~bash  
./target/x86_64-unknown-linux-gnu/release/runner-rs
~~~
or
~~~bash  
cargo run_x86
~~~


## Execution for riscv64/linux
~~~bash  
./target/riscv64gc-unknown-linux-gnu/release/runner-rs
~~~
or 
> [!CAUTION]  
> **cargo run_risc** command is a temp broken. Better use the first one
~~~bash  
cargo run_risc
~~~
