Expand description
Tauri is a framework for building tiny, blazing fast binaries for all major desktop platforms. Developers can integrate any front-end framework that compiles to HTML, JS and CSS for building their user interface. The backend of the application is a rust-sourced binary with an API that the front-end can interact with.
Cargo features
The following are a list of Cargo features that can be enabled or disabled:
- wry (enabled by default): Enables the wry runtime. Only disable it if you want a custom runtime.
- test: Enables the [
test
] module exposing unit test helpers. - dox: Internal feature to generate Rust documentation without linking on Linux.
- objc-exception: Wrap each msg_send! in a @try/@catch and panics if an exception is caught, preventing Objective-C from unwinding into Rust.
- linux-ipc-protocol: Use custom protocol for faster IPC on Linux. Requires webkit2gtk v2.40 or above.
- linux-libxdo: Enables linking to libxdo which enables Cut, Copy, Paste and SelectAll menu items to work on Linux.
- isolation: Enables the isolation pattern. Enabled by default if the
tauri > pattern > use
config option is set toisolation
on thetauri.conf.json
file. - custom-protocol: Feature managed by the Tauri CLI. When enabled, Tauri assumes a production environment instead of a development one.
- devtools: Enables the developer tools (Web inspector) and
Window::open_devtools
. Enabled by default on debug builds. On macOS it uses private APIs, so you can’t enable it if your app will be published to the App Store. - native-tls: Provides TLS support to connect over HTTPS.
- native-tls-vendored: Compile and statically link to a vendored copy of OpenSSL.
- rustls-tls: Provides TLS support to connect over HTTPS using rustls.
- process-relaunch-dangerous-allow-symlink-macos: Allows the
process::current_binary
function to allow symlinks on macOS (this is dangerous, see the Security section in the documentation website). - tray-icon: Enables application tray icon APIs. Enabled by default if the
trayIcon
config is defined on thetauri.conf.json
file. - macos-private-api: Enables features only available in macOS’s private APIs, currently the
transparent
window functionality and thefullScreenEnabled
preference setting totrue
. Enabled by default if thetauri > macosPrivateApi
config flag is set totrue
on thetauri.conf.json
file. - window-data-url: Enables usage of data URLs on the webview.
- compression *(enabled by default): Enables asset compression. You should only disable this if you want faster compile times in release builds - it produces larger binaries.
- config-json5: Adds support to JSON5 format for
tauri.conf.json
. - config-toml: Adds support to TOML format for the configuration
Tauri.toml
. - icon-ico: Adds support to set
.ico
window icons. EnablesIcon::File
andIcon::Raw
variants. - icon-png: Adds support to set
.png
window icons. EnablesIcon::File
andIcon::Raw
variants.
Cargo allowlist features
The following are a list of Cargo features that enables commands for Tauri’s API package.
These features are automatically enabled by the Tauri CLI based on the allowlist
configuration under tauri.conf.json
.
Protocol allowlist
- protocol-asset: Enables the
asset
custom protocol.
Re-exports
pub use self::window::Monitor;
pub use self::window::Window;
pub use self::window::WindowBuilder;
pub use tauri_utils as utils;
pub use http;
pub use scope::*;
Modules
- The Tauri API interface.
- The singleton async runtime used by Tauri and exposed to users.
- The Tauri custom commands types and traits.
- Types and functions related to Inter Procedure Call(IPC).
- Menu types and utility functions
- Path APIs.
- The Tauri plugin extension to expand Tauri functionality.
- Types and functions related to child processes management.
- The allowlist scopes.
- test
test
Utilities for unit testing on Tauri applications. - tray
desktop
andtray-icon
Tray icon types and utility functions - The Tauri window types and functions.
Macros
- Reads the config file at compile time and generates a
Context
based on its content. - Accepts a list of commands functions. Creates a handler that allows commands to be called from JS with invoke().
- Include a
Context
that was generated bytauri-build
inside your build script.
Structs
- The instance of the currently running application.
- A handle to the currently running application.
- A resolved asset.
- The asset resolver is a helper to access the
tauri_utils::assets::Assets
interface. - Builds a Tauri application.
- Api exposed on the
CloseRequested
event. - The Tauri configuration object. It is read from a file where you can define your frontend assets, configure the bundler and define a tray icon.
- User supplied data required inside of a Tauri application.
- Information about environment variables.
- An event that was triggered.
- Represents an event handler.
- A window event that was triggered on the specified window.
- A position represented in logical pixels.
- A size represented in logical pixels.
tauri::App
package information.- A position represented in physical pixels.
- A size represented in physical pixels.
- Metadata for a runtime event loop iteration on
run_iteration
. - A guard for a state value.
- The Tauri state manager.
- The attributes used to create an webview.
Enums
- Describes the appearance of the mouse cursor.
- The Tauri error enum. Runtime errors that can happen inside a Tauri application.
- The user event type.
- The file drop event payload.
- A icon definition.
- An application pattern.
- A position that’s either physical or logical.
- An application event, triggered from the event loop.
- A size that’s either physical or logical.
- System theme.
- Type of user attention requested on a window.
- An event from a window.
- An URL to open on a Tauri webview window.
Constants
- The Tauri version.
Traits
- Represents a container of file assets that are retrievable during runtime.
- Manages a running application.
- The webview runtime interface. A wrapper around
runtime::Runtime
with the proper user event type associated.
Functions
- Get Webview/Webkit version on current platform.
Type Aliases
Attribute Macros
- Mark a function as a command handler. It creates a wrapper function with the necessary glue code.