created_at2018-02-27 04:53:40.430873
updated_at2024-05-14 18:05:36.610603
descriptionWASM bindings to the in-game Screeps API
Shane Madden (shanemadden)




Linux Build Status version badge dependency status version badge

Rusty Screeps Logo

Typed bindings to the Screeps in-game API for WASM Rust AIs.

Also the homepage for tools relating to writing Screeps AIs in Rust.

screeps-game-api is a Rust binding to the JavaScript APIs for programs compiled to WASM using wasm-pack.

Also in this organization is cargo screeps, a binary program which wraps wasm-pack and lets one directly upload Rust WASM code to Screeps servers.

These two tools go together well, but do not depend on eachother. cargo-screeps can compile and upload any screeps WASM project buildable with wasm-bindgen's wasm-pack, and screeps-game-api is usable in any project built with wasm-pack.

Writing Screeps code in Rust can be nice, but it can also be annoying. If you have tips, tricks, or other things you'd like to share, make an issue! We need to write more documentation, and if we have enough ideas, we can start an mdbook for this repository.

If you need help or want to share feedback, feel free to open an issue or come say "Hi!" on the official Screeps Discord in the #rust channel!

Here's a quickstart for what you need to get going. More documentation will be made in the future.

# Install CLI dependency:
cargo install cargo-screeps

# Clone the starter
git clone
cd screeps-starter-rust

# Copy the example config, and set up at least one deployment mode
cp example-screeps.toml screeps.toml
nano screeps.toml
# configure credentials (API key) if you'd like to upload directly,
# or a directory to copy to if you'd prefer to use the game client to deploy

# build tool:
cargo screeps --help
# compile the module without deploying anywhere
cargo screeps build
# compile plus deploy to the configured 'upload' mode; any section name you
# set up in your screeps.toml for different environments and servers can be used
cargo screeps deploy -m upload
# or if you've set a default mode in your configuration, simply use:
cargo screeps deploy
Commit count: 965

cargo fmt