Add build instructions
This commit is contained in:
parent
5ab5fb079a
commit
6f185ae344
|
@ -1 +1,96 @@
|
|||
# Usage
|
||||
# Using `canary-rs`
|
||||
|
||||
[`canary-rs`](https://git.tebibyte.media/canary/canary-rs) is the reference
|
||||
implementation for Canary. It is written in Rust, and is licensed under the
|
||||
LGPLv3.
|
||||
|
||||
It is in active development, and is, at the moment, the singular focal point for
|
||||
host-side Canary programming. Even this documentation's source code is located
|
||||
in the `canary-rs` source tree.
|
||||
|
||||
`canary-rs` provides a graphical "test harness" that embeds the Canary runtime
|
||||
into a lightweight graphical app. It has two purposes: first of all, to give
|
||||
script authors a playground independent of a larger framework to safely debug,
|
||||
benchmark, and experiment with their scripts, and second of all, to give Canary
|
||||
embedders a live, functioning example of how Canary can be integrated into their
|
||||
applications.
|
||||
|
||||
# Running the `canary-rs` test harness
|
||||
|
||||
The test harness requires a Canary script to run. If you don't already have one,
|
||||
you can follow [these instructions](optional-building-the-sword-art-online-demonstration-ui-script)
|
||||
to build the example script provieded by `canary-rs`.
|
||||
|
||||
## Building the test harness
|
||||
|
||||
To build the test harness from source, first make sure that you have
|
||||
[installed the standard Rust toolchain](https://www.rustlang.org/tools/install),
|
||||
including `rustup`, `rustc`, and `cargo`, as well as a frontend to
|
||||
[Git](https://git-scm.com/). This guide assumes that you are using the Git
|
||||
command-line interface (CLI).
|
||||
|
||||
Next, clone the upstream repository:
|
||||
```sh
|
||||
$ git clone https://git.tebibyte.media/canary/canary-rs.git
|
||||
$ cd canary-rs
|
||||
```
|
||||
|
||||
Then, run `cargo` to build the test harness package:
|
||||
```sh
|
||||
$ cargo build --release -p canary_egui_harness
|
||||
```
|
||||
|
||||
Now, the test harness can be ran with a script:
|
||||
```sh
|
||||
$ cargo run --release -p canary_egui_harness -- <path-to-script>
|
||||
```
|
||||
|
||||
## (Optional) Building the Sword Art Online demonstration UI script
|
||||
|
||||
`canary-rs` provides an example of a fully-functioning script, that can
|
||||
optionally be built and loaded into the test harness in order to ensure its
|
||||
functioning.
|
||||
|
||||
To build it, you must first follow the instructions above to clone and build the
|
||||
test harness and to set up the Rust toolchain.
|
||||
|
||||
Then, add the `wasm32-unknown-unknown` target so that Rust can compile to
|
||||
WebAssembly:
|
||||
```sh
|
||||
$ rustup target add wasm32-unknown-unknown
|
||||
```
|
||||
|
||||
Next, compile the example script:
|
||||
```sh
|
||||
$ cargo build --release -p sao_ui_rs --target wasm32-unknown-unknown
|
||||
```
|
||||
|
||||
The path to the built example script is `target/wasm32-unknown-unknown/release/sao_ui_rs.wasm`.
|
||||
Now, it can be run using the test harness:
|
||||
```sh
|
||||
$ cargo run --release -p canary_egui_harness -- target/wasm32-unknown-unknown/release/sao_ui_rs.wasm
|
||||
```
|
||||
|
||||
# Using `canary-rs` as a Rust library
|
||||
|
||||
***WARNING***: `canary-rs` is still in very early development, and has both
|
||||
an unstable API and version. It is not advised to use it in projects not
|
||||
involved in its development in its current state.
|
||||
|
||||
`canary-rs` is not yet available on [crates.io](https://crates.io), so to add it
|
||||
as a dependency, you must add its [upstream git repository](https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html#specifying-dependencies-from-git-repositories)
|
||||
instead:
|
||||
|
||||
```toml
|
||||
[dependencies]
|
||||
canary = { git = "https://git.tebibyte.media/canary/canary-rs", rev = "deadbeef" }
|
||||
```
|
||||
|
||||
Because `canary-rs` is still under active development, it is recommended to
|
||||
pull a fixed, specific commit using the `rev` key. That can either be a specific
|
||||
tag, some point in the commit history, or whatever the latest commit on `main`
|
||||
is.
|
||||
|
||||
Tebibyte Media is capable of hosting rustdocs yet, so to learn how the API
|
||||
works, you can read the source code for the test harness, or dig through the
|
||||
source code itself.
|
||||
|
|
Loading…
Reference in New Issue