This library is a part of Unrust, a pure rust native/wasm game engine. This library provides a native/wasm compatibility layer for following components : * Window creation * Input (mouse + keyboard) * File system (local + http[s], ready-only)
toml
[dependencies]
uni-app = "0.3.*"
```rust extern crate uni_app;
fn main() { // create the game window (native) or canvas (web) let app = uniapp::App::new(uniapp::AppConfig { size: (800, 600), title: "my game".toowned(), vsync: true, showcursor: true, headless: false, resizable: true, fullscreen: false, }); // start game loop app.run(move |app: &mut uniapp::App| { for evt in app.events.borrow().iter() { // print on stdout (native) or js console (web) uniapp::App::print(format!("{:?}", evt)); // exit when pressing escape match &evt { uniapp::AppEvent::KeyUp(ev) if ev.code == ScanCode::Escape => { uniapp::App::exit(); } _ => (), } } }); } ```
Install wasm32 target :
rustup target install wasm32-unknown-unknown
Install wasm-pack
and npm
Compile the demo with
wasm-pack build examples
This creates a wasm package in examples/pkg
Run the demo with
cd www
npm install
npm run start
Open your browser at http://localhost:8080/
Run it from the www/ directory to be able to load the test.txt file :
cd www && cargo run --example basic --release
Licensed under either of
at your option.
You can contribute to this library through pull requests. If you do so, please update the CHANGELOG.md and CREDITS.md files. If you provide a new feature, consider adding an example as a tutorial/showcase.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.