[package]
authors = [ "Tauri Programme within The Commons Conservancy" ]
categories = [ "gui", "web-programming" ]
description = "Make tiny, secure apps for all desktop platforms with Tauri"
edition = "2021"
rust-version = "1.60"
exclude = [ "/test", "/.scripts", "CHANGELOG.md", "/target" ]
homepage = "https://tauri.app"
license = "Apache-2.0 OR MIT"
name = "tauri"
readme = "README.md"
repository = "https://github.com/tauri-apps/tauri"
version = "1.8.1"
[package.metadata.docs.rs]
no-default-features = true
features = [
"wry",
"custom-protocol",
"windows7-compat",
"cli",
"updater",
"fs-extract-api",
"system-tray",
"devtools",
"http-multipart",
"icon-png",
"test",
"dox",
"dialog",
"global-shortcut",
"http-request",
"os-api",
"process-relaunch",
"process-exit",
"protocol-asset",
"process-command-api",
"shell-open"
]
rustdoc-args = [ "--cfg", "doc_cfg" ]
default-target = "x86_64-unknown-linux-gnu"
targets = [
"x86_64-pc-windows-msvc",
"x86_64-unknown-linux-gnu",
"x86_64-apple-darwin"
]
[lints.rust]
unexpected_cfgs = { level = "warn", check-cfg = ['cfg(doc_cfg)'] }
[package.metadata.cargo-udeps.ignore]
normal = [ "reqwest", "nix" ]
[dependencies]
serde_json = { version = "1.0", features = [ "raw_value", "preserve_order" ] }
serde = { version = "1.0", features = [ "derive" ] }
tokio = { version = "1", features = ["time", "rt", "rt-multi-thread", "sync", "fs", "io-util" ] }
futures-util = "0.3"
uuid = { version = "1", features = [ "v4" ] }
url = { version = "2" }
anyhow = "1.0"
thiserror = "1.0"
once_cell = "1"
tauri-runtime = { version = "0.14.5", path = "../tauri-runtime" }
tauri-macros = { version = "1.4.6", path = "../tauri-macros" }
tauri-utils = { version = "1.6.1", features = [ "resources" ], path = "../tauri-utils" }
tauri-runtime-wry = { version = "0.14.10", path = "../tauri-runtime-wry", optional = true }
rand = "0.8"
semver = { version = "1", features = [ "serde" ] }
serde_repr = "0.1"
state = "0.5"
tar = "0.4"
tempfile = "3"
zip = { version = "0.6", default-features = false, optional = true }
ignore = "0.4"
flate2 = "1"
http = "0.2"
dirs-next = "2.0"
percent-encoding = "2"
base64 = { version = "0.22", optional = true }
clap = { version = "3", optional = true }
reqwest = { version = "0.11", features = [ "json", "stream" ], optional = true }
bytes = { version = "1", features = [ "serde" ], optional = true }
open = { version = "3", optional = true }
shared_child = { version = "1.0", optional = true }
os_pipe = { version = "1", optional = true }
raw-window-handle = "0.5"
minisign-verify = { version = "0.2", optional = true }
time = { version = "0.3", features = [ "parsing", "formatting" ], optional = true }
os_info = { version = "3", optional = true }
regex = { version = "1", optional = true }
glob = "0.3"
data-url = { version = "0.3", optional = true }
serialize-to-javascript = "=0.1.2"
infer = { version = "0.13", optional = true }
png = { version = "0.17", optional = true }
ico = { version = "0.3", optional = true }
encoding_rs = "0.8"
sys-locale = { version = "0.3", optional = true }
tracing = { version = "0.1", optional = true }
indexmap = { version = "1", features = [ "std", "serde" ], optional = true }
getrandom = { version = "0.2", features = [ "std" ] }
log = "0.4"
[target."cfg(any(target_os = \"macos\", windows, target_os = \"linux\", target_os = \"dragonfly\", target_os = \"freebsd\", target_os = \"openbsd\", target_os = \"netbsd\"))".dependencies]
rfd = { version = "0.10", optional = true, features = [ "gtk3", "common-controls-v6" ] }
notify-rust = { version = "4", optional = true }
[target."cfg(any(target_os = \"linux\", target_os = \"dragonfly\", target_os = \"freebsd\", target_os = \"openbsd\", target_os = \"netbsd\"))".dependencies]
gtk = { version = "0.15", features = [ "v3_20" ] }
glib = "0.15"
webkit2gtk = { version = "0.18.2", features = [ "v2_22" ] }
nix = { version = "0.26.0", default-features = false, features = [ "user", "socket", "uio" ], optional = true }
[target."cfg(target_os = \"macos\")".dependencies]
embed_plist = "1.2"
plist = "1"
cocoa = "0.24"
objc = "0.2"
[target."cfg(windows)".dependencies]
dunce = "1"
webview2-com = "0.19.1"
win7-notifications = { version = "0.4", optional = true }
[target."cfg(windows)".dependencies.windows]
version = "0.39.0"
features = [
"Win32_Foundation",
"Win32_UI_WindowsAndMessaging",
"Win32_UI_Shell"
]
[build-dependencies]
heck = "0.5"
once_cell = "1"
[dev-dependencies]
mockito = "0.31"
proptest = "1"
quickcheck = "1"
quickcheck_macros = "1"
serde = { version = "1", features = [ "derive" ] }
serde_json = "1"
tauri = { path = ".", default-features = false, features = [ "wry" ] }
tokio-test = "0.4"
tokio = { version = "1", features = [ "full" ] }
cargo_toml = "0.15"
[features]
default = [ "wry", "compression", "objc-exception" ]
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-protocol-headers = [ "tauri-runtime-wry/linux-headers", "webkit2gtk/v2_36" ]
isolation = [ "tauri-utils/isolation", "tauri-macros/isolation" ]
custom-protocol = [ "tauri-macros/custom-protocol" ]
updater = [
"minisign-verify",
"time",
"base64",
"http-api",
"dialog-ask",
"fs-extract-api",
"infer"
]
http-api = [ "reqwest", "bytes", "indexmap" ]
http-multipart = [ "reqwest/multipart" ]
os-api = [ "sys-locale" ]
shell-open-api = [ "open", "regex", "tauri-macros/shell-scope" ]
fs-extract-api = [ "zip" ]
reqwest-client = [ "http-api" ]
reqwest-native-tls-vendored = [ "native-tls-vendored" ]
native-tls-vendored = [ "reqwest/native-tls-vendored" ]
process-command-api = [ "shared_child", "os_pipe" ]
global-shortcut = [
"tauri-runtime/global-shortcut",
"tauri-runtime-wry/global-shortcut"
]
clipboard = [ "tauri-runtime/clipboard", "tauri-runtime-wry/clipboard" ]
dialog = [ "rfd" ]
notification = [ "notify-rust", "nix" ]
cli = [ "clap" ]
system-tray = [ "tauri-runtime/system-tray", "tauri-runtime-wry/system-tray" ]
devtools = [ "tauri-runtime/devtools", "tauri-runtime-wry/devtools" ]
dox = [ "tauri-runtime-wry/dox" ]
macos-private-api = [
"tauri-runtime/macos-private-api",
"tauri-runtime-wry/macos-private-api"
]
windows7-compat = [ "win7-notifications" ]
window-data-url = [ "data-url" ]
api-all = [
"clipboard-all",
"dialog-all",
"fs-all",
"global-shortcut-all",
"http-all",
"notification-all",
"os-all",
"path-all",
"process-all",
"protocol-all",
"shell-all",
"window-all",
"app-all"
]
clipboard-all = [ "clipboard-write-text", "clipboard-read-text" ]
clipboard-read-text = [ "clipboard" ]
clipboard-write-text = [ "clipboard" ]
dialog-all = [ "dialog-open", "dialog-save", "dialog-message", "dialog-ask" ]
dialog-ask = [ "dialog" ]
dialog-confirm = [ "dialog" ]
dialog-message = [ "dialog" ]
dialog-open = [ "dialog" ]
dialog-save = [ "dialog" ]
fs-all = [
"fs-copy-file",
"fs-create-dir",
"fs-exists",
"fs-read-file",
"fs-read-dir",
"fs-remove-dir",
"fs-remove-file",
"fs-rename-file",
"fs-write-file"
]
fs-copy-file = [ ]
fs-create-dir = [ ]
fs-exists = [ ]
fs-read-file = [ ]
fs-read-dir = [ ]
fs-remove-dir = [ ]
fs-remove-file = [ ]
fs-rename-file = [ ]
fs-write-file = [ ]
global-shortcut-all = [ "global-shortcut" ]
http-all = [ "http-request" ]
http-request = [ "http-api" ]
notification-all = [ "notification", "dialog-ask" ]
os-all = [ "os_info", "os-api" ]
path-all = [ ]
process-all = [ "process-relaunch", "process-exit" ]
process-exit = [ ]
process-relaunch = [ ]
process-relaunch-dangerous-allow-symlink-macos = [ "tauri-utils/process-relaunch-dangerous-allow-symlink-macos" ]
protocol-all = [ "protocol-asset" ]
protocol-asset = [ ]
shell-all = [ "shell-execute", "shell-sidecar", "shell-open" ]
shell-execute = [ "process-command-api", "regex", "tauri-macros/shell-scope" ]
shell-sidecar = [ "process-command-api", "regex", "tauri-macros/shell-scope" ]
shell-open = [ "shell-open-api" ]
window-all = [
"window-create",
"window-center",
"window-request-user-attention",
"window-set-resizable",
"window-set-maximizable",
"window-set-minimizable",
"window-set-closable",
"window-set-title",
"window-maximize",
"window-unmaximize",
"window-minimize",
"window-unminimize",
"window-show",
"window-hide",
"window-close",
"window-set-decorations",
"window-set-always-on-top",
"window-set-content-protected",
"window-set-size",
"window-set-min-size",
"window-set-max-size",
"window-set-position",
"window-set-fullscreen",
"window-set-focus",
"window-set-icon",
"window-set-skip-taskbar",
"window-set-cursor-grab",
"window-set-cursor-visible",
"window-set-cursor-icon",
"window-set-cursor-position",
"window-set-ignore-cursor-events",
"window-start-dragging",
"window-print"
]
window-create = [ ]
window-center = [ ]
window-request-user-attention = [ ]
window-set-resizable = [ ]
window-set-maximizable = [ ]
window-set-minimizable = [ ]
window-set-closable = [ ]
window-set-title = [ ]
window-maximize = [ ]
window-unmaximize = [ ]
window-minimize = [ ]
window-unminimize = [ ]
window-show = [ ]
window-hide = [ ]
window-close = [ ]
window-set-decorations = [ ]
window-set-always-on-top = [ ]
window-set-content-protected = [ ]
window-set-size = [ ]
window-set-min-size = [ ]
window-set-max-size = [ ]
window-set-position = [ ]
window-set-fullscreen = [ ]
window-set-focus = [ ]
window-set-icon = [ ]
window-set-skip-taskbar = [ ]
window-set-cursor-grab = [ ]
window-set-cursor-visible = [ ]
window-set-cursor-icon = [ ]
window-set-cursor-position = [ ]
window-set-ignore-cursor-events = [ ]
window-start-dragging = [ ]
window-print = [ ]
app-all = [ "app-show", "app-hide" ]
app-show = [ ]
app-hide = [ ]
config-json5 = [ "tauri-macros/config-json5" ]
config-toml = [ "tauri-macros/config-toml" ]
icon-ico = [ "infer", "ico" ]
icon-png = [ "infer", "png" ]
[[example]]
name = "commands"
path = "../../examples/commands/main.rs"
[[example]]
name = "helloworld"
path = "../../examples/helloworld/main.rs"
[[example]]
name = "multiwindow"
path = "../../examples/multiwindow/main.rs"
required-features = [ "window-create" ]
[[example]]
name = "parent-window"
path = "../../examples/parent-window/main.rs"
[[example]]
name = "navigation"
path = "../../examples/navigation/main.rs"
required-features = [ "window-create" ]
[[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" ]