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-protocol-headers: Enables headers support for custom protocol requests on Linux. Requires webkit2gtk v2.36 or above.
- 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). - system-tray: Enables application system tray API. Enabled by default if the
systemTray
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 tauri_utils as utils;
pub use self::window::Monitor;
pub use self::window::Window;
pub use self::window::WindowBuilder;
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.
- 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. - 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
- Application metadata for the
MenuItem::About
action. - 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 system tray.
- User supplied data required inside of a Tauri application.
- A custom menu item.
- Information about environment variables.
- An event that was triggered.
- Represents an event handler.
- A window event that was triggered on the specified window.
- The message and resolver given to a custom command.
- Error response from an
InvokeMessage
. - An invoke message.
- The payload used on the IPC invoke.
- Resolver of a invoke message.
- A position represented in logical pixels.
- A size represented in logical pixels.
- A window menu.
- The window menu event.
tauri::App
package information.- The payload for the
OnPageLoad
hook. - 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.
- SystemTray
system-tray
Represents a System Tray instance. - SystemTrayHandle
system-tray
A handle to a system tray. Allows updating the context menu items. - SystemTrayMenu
system-tray
A system tray menu. - SystemTrayMenuItemHandle
system-tray
A handle to a system tray menu item. - SystemTraySubmenu
system-tray
- The attributes used to create an webview.
- A menu event that was triggered on a window.
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.
- Response from a
InvokeMessage
passed to theInvokeResolver
. - An entry on the system tray menu.
- A menu item, bound to a pre-defined action or
Custom
emit an event. Note that status bar only supportsCustom
menu item variants. And on the menu bar, some platforms might not support some of the variants. Unsupported variant will be no-op on such platform. - 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.
- SystemTrayEvent
system-tray
System tray event. - SystemTrayMenuItem
system-tray
System tray menu item. - 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 Definitions
- A closure that is run every time Tauri receives a message it doesn’t explicitly handle.
- A closure that is responsible for respond a JS message.
- A closure that is run once every time a window is created and loaded.
Result<T, ::tauri::Error>
- A closure that is run when the Tauri application is setting up.
- A task to run on the main thread.
- Wry
wry
A TauriRuntime
wrapper around wry.
Attribute Macros
- Mark a function as a command handler. It creates a wrapper function with the necessary glue code.