tauri-plugin-axum

Feature
Install
cargo add tauri-plugin-axum
pnpm i @mcitem/tauri-plugin-axum
{
"permissions": ["axum:default"]
}
Example
tauri::Builder::default().plugin(tauri_plugin_axum::init(Router::new()))
window.fetch("http://axum.localhost/")
#[derive(Serialize, Deserialize)]
struct Greet {
axum: String,
tauri: String,
}
async fn post_handle(Json(j): Json<Greet>) -> Json<Greet> {
Json(Greet {
axum: format!("axum, {}!", j.axum),
tauri: format!("tauri, {}!", j.tauri),
})
}
tauri::Builder::default()
.setup(|app| {
let path = app.path().app_config_dir()?;
app.handle().plugin(tauri_plugin_axum::block_init(async {
println!("do something with path: {:?}", path);
router::router()
}))?;
Ok(())
})
import { axum } from "@mcitem/tauri-plugin-axum";
axum.get<string>("/").then((response) => {
console.log(response.body); // "Hello, World!"
});
axum.post<{ axum: string; tauri: string }>("/post", {
axum: "hello axum",
tauri: "hello tauri",
});
import { fetch } from "@mcitem/tauri-plugin-axum/fetch";
fetch("/", { method: "GET" })
.then((res) => res.text())
.then((res) => {
console.log(res);
});
import axios from "axios";
import { Adapter } from "@mcitem/tauri-plugin-axum/axios";
const instance = axios.create({
adapter: Adapter,
});
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