Tauri v2 (Rust Only) Setup Notes
This guide assumes:
- Rust is already installed
cargo tauriCLI is already installed- Existing HTML/CSS/JS game
- No Node.js
- No Vite
Project Structure
FishingGame-Protoype/
├── web/
│ ├── index.html
│ ├── trophy_wall.html
│ ├── css/
│ ├── js/
│ ├── imgs/
│ └── sound/
├── src-tauri/
│ ├── Cargo.toml
│ ├── build.rs
│ ├── tauri.conf.json
│ ├── icon.png
│ ├── capabilities/
│ │ └── default.json
│ ├── icons/ <-- generated
│ └── src/
│ ├── main.rs
│ └── lib.rs
└── README.md
Create Directories
mkdir -p src-tauri/src
mkdir -p src-tauri/icons
mkdir -p src-tauri/capabilities
Files Created By Hand
src-tauri/Cargo.toml
[package]
name = "one_more_cast"
version = "0.1.0"
description = "One More Cast"
authors = ["Anthony Frank"]
edition = "2024"
[lib]
name = "one_more_cast_lib"
crate-type = ["staticlib", "cdylib", "rlib"]
[build-dependencies]
tauri-build = { version = "2" }
[dependencies]
tauri = { version = "2" }
[features]
default = ["custom-protocol"]
custom-protocol = ["tauri/custom-protocol"]
src-tauri/build.rs
fn main() {
tauri_build::build()
}
src-tauri/src/main.rs
fn main() {
one_more_cast_lib::run();
}
src-tauri/src/lib.rs
#[cfg_attr(mobile, tauri::mobile_entry_point)]
pub fn run() {
tauri::Builder::default()
.run(tauri::generate_context!())
.expect("error while running tauri application");
}
src-tauri/capabilities/default.json
{
"$schema": "../gen/schemas/desktop-schema.json",
"identifier": "default",
"description": "Default desktop capability",
"windows": ["main"],
"permissions": [
"core:default"
]
}
src-tauri/tauri.conf.json
Important settings:
"build": {
"beforeDevCommand": "",
"beforeBuildCommand": "",
"frontendDist": "../web"
}
Do NOT use
"frontendDist": ".."
Tauri rejects the project root because it contains src-tauri/.
Generate Icons
Copy your game icon to:
src-tauri/icon.png
Generate all required icons:
cargo tauri icon src-tauri/icon.png
This creates:
src-tauri/icons/
without needing to make anything manually.
Build
cargo tauri build
Output:
src-tauri/target/release/
Bundles:
- AppImage
- DEB
- RPM (if enabled)
Common Errors
Missing lib.rs
can't find library one_more_cast_lib
Create:
src-tauri/src/lib.rs
and have main.rs call:
one_more_cast_lib::run();
Missing Icons
failed to open icon
Run:
cargo tauri icon src-tauri/icon.png
before building.
frontendDist Error
frontendDist includes src-tauri
Use:
"frontendDist": "../web"
instead of pointing to the project root.
Run
Executable:
./src-tauri/target/release/one_more_cast
AppImage:
chmod +x src-tauri/target/release/bundle/appimage/*.AppImage
./src-tauri/target/release/bundle/appimage/*.AppImage