tauri-plugin-axum-api
v0.8.0
Published
Call your Axum router directly — just like a local database, not a remote server.
Readme
tauri-plugin-axum
Call your Axum router directly — just like a local database, not a remote server.
Features
Custom protocol registration
// Important: if you use a custom protocol, register it *before* the setup hook. // https://docs.rs/tauri/2.8.2/tauri/plugin/struct.Builder.html#known-limitations tauri::Builder::default().plugin(tauri_plugin_axum::init(Router::new()))
Once registered, you can access your Axum routes via:
- macOS, iOS, and Linux:
axum://localhost/<path> - Windows and Android:
http://axum.localhost/<path>(default)
Note: Custom protocols currently do not support streaming. (#1404)
stream body support
Supports streaming responses using either the provided fetch API or an Axios adapter:
import { fetch } from "tauri-plugin-axum-api/fetch"; import { Adapter } from "tauri-plugin-axum-api/axios";
Installation
Automatic
pnpm tauri add axumor Manual
Rust crate:
cargo add tauri-plugin-axumnpm package:
pnpm i tauri-plugin-axum-apiAdd required capability in src-tauri/capabilities/default.json:
{
// ...
"permissions": ["axum:default"],
// ...
}Usage Example
// URI scheme protocols are registered when the WebView is created.
// If the plugin is registered after a WebView has been created,
// the protocol will not be available.
//
// macOS, iOS, Linux: axum://localhost/<path>
// Windows, Android: http://axum.localhost/<path> (default)
tauri::Builder::default().plugin(tauri_plugin_axum::init(axum::Router::new()));
window.fetch("http://axum.localhost/");
import { fetch } from "tauri-plugin-axum-api/fetch";
fetch("/", { method: "GET" })
.then((res) => res.text())
.then((res) => console.log(res));
// Using Axios adapter
import axios from "axios";
import { Adapter } from "tauri-plugin-axum-api/axios";
const instance = axios.create({ adapter: Adapter });Example Project
Run Example
git clone https://github.com/mcitem/tauri-plugin-axum
cd tauri-plugin-axum
pnpm install
pnpm build
pnpm --filter tauri-app install
pnpm --filter tauri-app tauri dev