Skip to main content

Crate tauri_plugin_axum

Crate tauri_plugin_axum 

Source
Expand description

§tauri-plugin-axum

Crates.io Version NPM Version

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 axum

or Manual

Rust crate:

cargo add tauri-plugin-axum

npm package:

pnpm i tauri-plugin-axum-api

Add 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

Structs§

Axum
AxumResponse
Builder

Enums§

Error

Traits§

AxumExt
Extensions to tauri::App, tauri::AppHandle and tauri::Window to access the axum APIs.

Functions§

block_init
init
Initializes the plugin.
try_block_init

Type Aliases§

Result