[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"] }
[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"
[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"
[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"]