tauri-sys
<strong>Raw bindings to the <a href="https://tauri.app/v1/api/js/"><code>Tauri API</code></a>
for projects using <a href="https://github.com/rustwasm/wasm-bindgen"><code>wasm-bindgen</code></a></strong>
This crate is not yet published to crates.io, so you need to use it from git. You also need a global installation of [esbuild].
tauri-sys = { git = "https://github.com/JonasKruckenberg/tauri-sys" } // tauri v1 api, main repo
// OR
tauri-sys = { git = "https://github.com/JonasKruckenberg/tauri-sys", branch = "v2" } // tauri v2 api
use serde::{Deserialize, Serialize};
use tauri_sys::tauri;
#[derive(Serialize, Deserialize)]
struct GreetArgs<'a> {
name: &'a str,
}
fn main() {
wasm_bindgen_futures::spawn_local(async move {
let new_msg: String = tauri::invoke("greet", &GreetArgs { name: &name.get() }).await.unwrap();
println!("{}", new_msg);
});
}
All modules are gated by accordingly named Cargo features. It is recommended you keep this synced with the features enabled in your Tauri Allowlist but no automated tool for this exists (yet).
core module. (~70% implemented)event module.menu module. (~20% implemented)window: Enables the windows module. (~20% implemented)
nightly: Enable nightly only features such as tracker calling for invoke for better error reporting.
These API bindings are not completely on-par with @tauri-apps/api yet, but here is the current status-quo:
appcore (partial implementation)dpieventimagemenu (partial implementation)mockspathtraywebviewwebviewWindowwindow (partial implementation)The current API also very closely mirrors the JS API even though that might not be the most ergonomic choice, ideas for improving the API with quality-of-life features beyond the regular JS API interface are very welcome.
The [examples/leptos] crate provides examples of how to use most of the implemented functionality.
$ claude mcp add tauri-sys \
-- python -m otcore.mcp_server <graph>