[package] name = "tauri" version = "2.1.1" description = "Make tiny, secure apps for all desktop platforms with Tauri" exclude = ["/test", "/.scripts", "CHANGELOG.md", "/target"] readme = "README.md" links = "Tauri" authors.workspace = true homepage.workspace = true repository.workspace = true categories.workspace = true license.workspace = true edition.workspace = true rust-version.workspace = true [package.metadata.docs.rs] no-default-features = true features = [ "wry", "unstable", "custom-protocol", "tray-icon", "devtools", "image-png", "protocol-asset", "test", "specta", ] rustc-args = ["--cfg", "docsrs"] rustdoc-args = ["--cfg", "docsrs"] default-target = "x86_64-unknown-linux-gnu" targets = [ "x86_64-pc-windows-msvc", "x86_64-unknown-linux-gnu", "x86_64-apple-darwin", "x86_64-linux-android", "x86_64-apple-ios", ] [package.metadata.cargo-udeps.ignore] normal = ["reqwest"] build = ["tauri-build"] development = ["quickcheck_macros"] [dependencies] serde_json = { version = "1.0", features = ["raw_value"] } serde = { version = "1.0", features = ["derive", "rc"] } tokio = { version = "1", features = [ "rt", "rt-multi-thread", "sync", "fs", "io-util", ] } futures-util = "0.3" uuid = { version = "1", features = ["v4"], optional = true } url = "2" anyhow = "1.0" thiserror = "2" tauri-runtime = { version = "2.2.0", path = "../tauri-runtime" } tauri-macros = { version = "2.0.3", path = "../tauri-macros" } tauri-utils = { version = "2.1.0", features = [ "resources", ], path = "../tauri-utils" } tauri-runtime-wry = { version = "2.2.0", path = "../tauri-runtime-wry", optional = true } getrandom = "0.2" serde_repr = "0.1" http = "1.1" dirs = "5" percent-encoding = "2.3" reqwest = { version = "0.12", default-features = false, features = [ "json", "stream", ] } bytes = { version = "1", features = ["serde"] } raw-window-handle = { version = "0.6", features = ["std"] } glob = "0.3" urlpattern = "0.3" mime = "0.3" data-url = { version = "0.3", optional = true } serialize-to-javascript = "=0.1.1" image = { version = "0.25", default-features = false, optional = true } http-range = { version = "0.1.5", optional = true } tracing = { version = "0.1", optional = true } heck = "0.5" log = "0.4" dunce = "1" specta = { version = "^2.0.0-rc.16", optional = true, default-features = false, features = [ "function", "derive", ] } [target."cfg(any(target_os = \"linux\", target_os = \"dragonfly\", target_os = \"freebsd\", target_os = \"openbsd\", target_os = \"netbsd\", target_os = \"windows\", target_os = \"macos\"))".dependencies] muda = { version = "0.15", default-features = false, features = ["serde"] } tray-icon = { version = "0.19", default-features = false, features = [ "serde", ], optional = true } [target."cfg(any(target_os = \"linux\", target_os = \"dragonfly\", target_os = \"freebsd\", target_os = \"openbsd\", target_os = \"netbsd\"))".dependencies] gtk = { version = "0.18", features = ["v3_24"] } webkit2gtk = { version = "=2.0.1", features = ["v2_40"] } # macOS [target.'cfg(target_os = "macos")'.dependencies] embed_plist = "1.2" plist = "1" objc2 = "0.5.2" objc2-foundation = { version = "0.2.2", features = ["NSData", "NSThread"] } objc2-app-kit = { version = "0.2.2", features = [ "NSApplication", "NSColor", "NSResponder", "NSView", "NSWindow", "NSImage", ] } window-vibrancy = "0.5" [target."cfg(windows)".dependencies] webview2-com = "0.33" window-vibrancy = "0.5" [target."cfg(windows)".dependencies.windows] version = "0.58" features = ["Win32_Foundation"] [target."cfg(target_os = \"android\")".dependencies] jni = "0.21" # UIKit, i.e. iOS/tvOS/watchOS/visionOS [target.'cfg(all(target_vendor = "apple", not(target_os = "macos")))'.dependencies] libc = "0.2" swift-rs = "1.0.7" [build-dependencies] heck = "0.5" tauri-build = { path = "../tauri-build/", default-features = false, version = "2.0.3" } tauri-utils = { path = "../tauri-utils/", version = "2.1.0", features = [ "build", ] } [dev-dependencies] proptest = "1.4.0" quickcheck = "1.0.3" quickcheck_macros = "1.0.0" serde = { version = "1.0", features = ["derive"] } serde_json = "1.0" tauri = { path = ".", default-features = false, features = ["wry"] } tokio = { version = "1", features = ["full"] } cargo_toml = "0.17" http-range = "0.1.5" # macOS [target.'cfg(target_os = "macos")'.dev-dependencies] objc2-web-kit = { version = "0.2.2", features = [ "objc2-app-kit", "WKWebView", "WKUserContentController", ] } [features] default = ["wry", "compression", "objc-exception", "common-controls-v6"] unstable = ["tauri-runtime-wry/unstable"] common-controls-v6 = [ "tray-icon?/common-controls-v6", "muda/common-controls-v6", ] tray-icon = ["dep:tray-icon"] tracing = ["dep:tracing", "tauri-macros/tracing", "tauri-runtime-wry/tracing"] test = [] compression = ["tauri-macros/compression", "tauri-utils/compression"] wry = ["tauri-runtime-wry"] objc-exception = ["tauri-runtime-wry/objc-exception"] linux-libxdo = ["tray-icon/libxdo", "muda/libxdo"] isolation = ["tauri-utils/isolation", "tauri-macros/isolation", "uuid"] custom-protocol = ["tauri-macros/custom-protocol"] native-tls = ["reqwest/native-tls"] native-tls-vendored = ["reqwest/native-tls-vendored"] rustls-tls = ["reqwest/rustls-tls"] devtools = ["tauri-runtime/devtools", "tauri-runtime-wry/devtools"] process-relaunch-dangerous-allow-symlink-macos = [ "tauri-utils/process-relaunch-dangerous-allow-symlink-macos", ] macos-private-api = [ "tauri-runtime/macos-private-api", "tauri-runtime-wry/macos-private-api", ] webview-data-url = ["data-url"] protocol-asset = ["http-range"] config-json5 = ["tauri-macros/config-json5"] config-toml = ["tauri-macros/config-toml"] image-ico = ["image/ico"] image-png = ["image/png"] macos-proxy = ["tauri-runtime-wry/macos-proxy"] specta = ["dep:specta"] [[example]] name = "commands" path = "../../examples/commands/main.rs" [[example]] name = "helloworld" path = "../../examples/helloworld/main.rs" [[example]] name = "multiwebview" path = "../../examples/multiwebview/main.rs" required-features = ["unstable"] [[example]] name = "multiwindow" path = "../../examples/multiwindow/main.rs" [[example]] name = "run-iteration" path = "../../examples/run-iteration/main.rs" [[example]] name = "splashscreen" path = "../../examples/splashscreen/main.rs" [[example]] name = "state" path = "../../examples/state/main.rs" [[example]] name = "streaming" path = "../../examples/streaming/main.rs" [[example]] name = "isolation" path = "../../examples/isolation/main.rs" required-features = ["isolation"]