35bd9dd3d
(#10977 by @amrbashir) Add mainBinaryName
config option to set the file name for the main binary.0a47bf043
(#10946 by @FabianLars) Fixed an issue that made the identifier
in tauri.conf.json
optional while it was actually required.d9c8d3cc8
(#10902 by @Legend-Master) Update infer to 0.16, tray icon to 0.17, urlpattern to 0.3, image to 0.25faa259bac
(#10907 by @lucasfernog) The Assets::iter
function now must return a iterator with Item = (Cow<'_, str>, Cow<'_, [u8]>)
to be more flexible on contexts where the assets are not 'static
.f0acf504a
(#10858 by @lucasfernog) Validate duplicate capability identifier.58dda44a5
(#10339 by @Legend-Master) Add a new option minimumWebview2Version
for Windows NSIS installer to trigger a webview2 update if the user's webview2 is older than this version03f2a5098
(#10718 by @rdlabo) Update swift-rs fixing a plugin build when native dependencies are used.073bb4f45
(#10772 by @lucasfernog) Removed the deprecated webview_fixed_runtime_path
config option, use the webview_install_mode
instead.9bcff3cd7
(#10703 by @lucasfernog) Properly remove isolation script on Android.f4d5241b3
(#10731 by @amrbashir) Update documentation icon path.da381e07f
(#10696 by @lucasfernog) Implemented resource_dir
on Android, which returns a URI that needs to be resolved using AssetManager::open. This will be handled by the file system plugin.da381e07f
(#10696 by @lucasfernog) Fix resource_dir
on iOS.8d148a9e2
(#10634 by @anatawa12) Custom sign command with object notation for whitespaces in the command path and arguments.5c335ae9a
(#10648 by @Flakebi) Prevent build script from rerunning unnecessarily by only writing files when the content changes.0bb7b0f35
(#10559 by @Norbiros) Return autogenerated permissions from autogenerate_command_permissions
.9e891933d
(#10293 by @amrbashir) Fix ResourcePaths
iterator returning an unexpected result for mapped resources, for example "../resources/user.json": "resources/user.json"
generates this resource resources/user.json/user.json
where it should generate just resources/user.json
.9fe846615
(#10547 by @lucasfernog) Fix plugin permissions documentation heading for permissions table.f5dfc0280
(#10533 by @FabianLars) Fixed an issue causing tauri ios init
to fail if iOS.minimumSystemVersion
was not configured explicitly.8dc81b6cc
(#10496 by @lucasfernog) Added bundle > ios > template
configuration option for custom Xcode project YML Handlebars template using XcodeGen.02c00abc6
(#10495 by @lucasfernog) Added bundle > ios > minimumSystemVersion
configuration option.7e810cb2a
(#10485 by @anatawa12) Fixed an issue where permission files will be generated with ':' in the file path.a5bfbaa62
(#9962) Added bundle > iOS > frameworks
configuration to define a list of frameworks that are linked to the Xcode project when it is generated.7aeac39e7
(#10397) Make the set of gtk application id optional, to allow more then one instance of the app running at the same time.498f405ca
(#10404) Fixed an issue where configuration parsing errors always displayed 'tauri.conf.json' as the file path, even when using 'Tauri.toml' or 'tauri.conf.json5'.The error messages now correctly shows the actual config file being used.
426d14bb4
(#10423) Explicitly check that the main frame's origin is the sender of Isolation Payloads4c239729c
(#10167 by @amrbashir) Add RawIsolationPayload::content_type
method.fafc238f7
(#9977) Add bundle > homepage
option, if unset, it will fallback to homepage
defined in Cargo.toml
.656a64974
(#9318) Added a configuration option to disable hardened runtime on macOS codesign.5b769948a
(#9959) Add include_image
macro to help embedding instances of Image
struct at compile-time in rust to be used with window, menu or tray icons.3ab170917
(#9932) Add an option to disable NSIS compression bundle > nsis > compression: "none"
f21029b1b
(#9994) Add bundle > nsis > startMenuFolder
option to customize start menu folder for NSIS installer3ab170917
(#9932) Changed NsisSettings::compression
field from Option<NsisCompression>
to just NsisCompression
911242f09
(#9883) Move updater target from bundle > targets
to a separate field bundle > createUpdaterArtifacts
3ab170917
(#9932) Changed NsisConfig::compression
field from Option<NsisCompression>
to just NsisCompression
8a1ae2dea
(#9843) Added an option to use a Xcode project for the iOS plugin instead of a plain SwiftPM project.5462e5cad
(#9731) Add installer_hooks
NSIS configuration fieldd6d3efbd1
(#9865) Add sign_command
in WindowsConfig
fc1543c65
(#9864) Removed skip_webview_install
(skipWebviewInstall
) option from config, which has been deprecated for a while now and planned to be removed in v2. Use webview_install_mode
(webviewInstallMode
) instead.265c23886
(#9375) Removed Config::binary_name
and PackageInfo::package_name
36b4c1249
(#9331) Added support for provides
, conflicts
and replaces
(obsoletes
for RPM) options for bundler > deb
and bundler > rpm
configs.259d84529
(#9209) Added preInstallScript
, postInstallScript
, preRemoveScript
and postRemoveScript
options for bundler > deb
and bundler > rpm
configs.7c334cb18
(#9327) Make the isolation pattern encrypt key unextractable.a804a70a7
(#9328) The isolation iframe script now removes itself after execution.06833f4fa
(#9100) Rename FileDrop
to DragDrop
on structs, enums and enum variants. Also renamed file_drop
to drag_drop
on fields and function names.7213b9e47
(#9124) Fallback to an empty permission set if the plugin did not define its default
permissions.4ef17d083
(#9116) The ACL configuration for remote URLs now uses the URLPattern standard instead of glob patterns.86fa339de
(#9071) Fix compile time error in context generation when using app.windows.windowEffects.color
6c0683224
(#9068) Fixes scope resolution grouping scopes for all windows.c68218b36
(#8990) Fix BundleTarget::to_vec
returning an empty vec for BundleTarget::All
variant.c68218b36
(#8990) Add BundleType::all
method to return all possible BundleType
variants.9aa0d6e95
(#9069) Removed debug_eprintln!
and consume_unused_variable
macros.bb23511ea
(#9079) Changed CapabiltyFile::List
enum variant to be a tuple-struct and added CapabiltyFile::NamedList
. This allows more flexibility when parsing capabilties from JSON files.d7f56fef
(#9014) Allow defining a permission that only applies to a set of target platforms via the platforms
configuration option.3657ad82
(#9008) Allow defining permissions for the application commands via tauri_build::Attributes::app_manifest
.bc5b5e67
(#8984) Do not include a CSP tag in the application HTML and rely on the custom protocol response header instead.a76fb118
(#8950) Changed the capability format to allow configuring both remote: { urls: Vec<String> }
and local: bool (default: true)
instead of choosing one on the context
field.361ec37f
(#8932) Moved ProgressBarState
from tauri-utils
to the tauri::window
module and removed the unity_uri
field.0cb0a15c
(#8789) Add webviews
array on the capability for usage on multiwebview contexts.83a68deb
(#8797) Added a new configuration option tauri.conf.json > app > security > capabilities
to reference existing capabilities and inline new ones. If it is empty, all capabilities are still included preserving the current behavior.8d16a80d
(#8802) The Context
struct now includes the runtime authority instead of the resolved ACL. This does not impact most applications.28fb036c
(#8852) Enhance resource directory resolution on development.dd7571a7
(#8815) Do not generate JSON schema and markdown reference file if the plugin does not define any permissions and delete those files if they exist.5618f6d2
(#8856) Relax requirements on plugin's identifiers to be alphanumeric and -
instead of only lower alpha and -
.8d16a80d
(#8802) Refactored the capability types and resolution algorithm.f284f9c5
(#8898) Changed the capability remote
configuration to take a list of urls
instead of domains
for more flexibility.4e101f80
(#8756) Moved the capability JSON schema to the src-tauri/gen
folder so it's easier to track changes on the capabilities
folder.74a2a603
(#8661) Implement access control list for IPC usage.9eaeb5a8
(#8622) Add parent
option for window config.58fe2e81
(#8670) Add WebviewUrl::CustomProtocol
enum variant.6639a579
(#8441) Added the WindowConfig::proxy_url
WebviewBuilder::proxy_url() / WebviewWindowBuilder::proxy_url()
options when creating a webview.8de308d1
(#8723) Restructured Tauri config per RFC#5:
package.productName
, package.version
and tauri.bundle.identifier
fields to the top-level.package
object.tauri
object to app
.tauri.bundle
object to the top-level.build.distDir
field to frontendDist
.build.devPath
field to devUrl
and will no longer accepts paths, it will only accept URLs.tauri.pattern
to app.security.pattern
.tauri.bundle.updater
object, and its fields have been moved to the updater plugin under plugins.updater
object.build.withGlobalTauri
to app.withGlobalTauri
.tauri.bundle.dmg
object to bundle.macOS.dmg
.tauri.bundle.deb
object to bundle.linux.deb
.tauri.bundle.appimage
object to bundle.linux.appimage
.bundle.license
and bundle.licenseFile
.AppUrl
to FrontendDist
and refactored its variants to be more explicit.c77b4032
(#8280) Renamed config::WindowUrl
to config::WebviewUrl
.
a093682d
(#8621) Changed error
field in ConfigError::FormatToml
to be boxed Box<toml::de::Error>
to reduce the enum ConfigError
size in memory.
58fe2e81
(#8670) Changed dist_dir
and dev_path
config options to be optional.
5e84e92e
(#8243) Changed platform::windows_version
to return a (u32, u32, u32)
instead of Option<(u32, u32, u32)>
c6c59cf2
Pull changes from Tauri 1.5 release.c085adda
(#8009) Added set_progress_bar
to Window
.c1ec0f15
(#7933) Added the always_on_bottom
option to the window configuration.880266a7
(#8031) Bump the MSRV to 1.70.ed32257d
(#7794) On Windows, add WindowEffect::Tabbed
,WindowEffect::TabbedDark
and WindowEffect::TabbedLight
ebcc21e4
(#8057) Renamed the beforeDevCommand, beforeBuildCommand and beforeBundleCommand hooks environment variables from TAURI_PLATFORM, TAURI_ARCH, TAURI_FAMILY, TAURI_PLATFORM_VERSION, TAURI_PLATFORM_TYPE and TAURI_DEBUG
to TAURI_ENV_PLATFORM, TAURI_ENV_ARCH, TAURI_ENV_FAMILY, TAURI_ENV_PLATFORM_VERSION, TAURI_ENV_PLATFORM_TYPE and TAURI_ENV_DEBUG
to differentiate the prefix with other CLI environment variables.id
for the tray icon in the tauri configuration file.100d9ede
(#7802) Follow file name conventions set by desktop for mobile Tauri configuration files. Added target
argument on most config::parse
methods.4db363a0
(#6589) Added visible_on_all_workspaces
configuration option to WindowBuilder
, Window
, and WindowConfig
.7fb419c3
(#7535) Add option to specify a tooltip text for the tray icon in the config.74b1f4fc
(#7384) Add WindowEffect::MicaDark
and WindowEffect::MicaLight
3b98141a
(#3736) Add a configuration object for file associations under BundleConfig
.9a79dc08
(#6947) Remove enable_tauri_api
from the IPC scope.09376af5
(#6704) Moved the cli
feature to its own plugin in the plugins-workspace repository.e1e85dc2
(#6925) Moved the protocol
scope configuration to the asset_protocol
field in SecurityConfig
.e1e85dc2
(#6925) Moved the updater configuration to the BundleConfig
.b072daa3
(#6919) Moved the updater
feature to its own plugin in the plugins-workspace repository.3188f376
(#6883) Bump the MSRV to 1.65.e1e85dc2
(#6925) Removed the allowlist configuration.2d5378bf
(#6717) Remove the updater's dialog option.android
configuration object under tauri > bundle
.
shadow
option to the window configuration and set_shadow
option to the window
allow list.
crate_name
field on PackageInfo
.
android
and ios
Tauri configuration files.
9aa34ada
(#7645) Add setting to switch to http://<scheme>.localhost/
for custom protocols on Windows.acc36fe1
(#6158) Add option to configure require_literal_leading_dot
on fs
and asset
protocol scopes.35cd751a
(#5176) Added the desktop_template
option on tauri.conf.json > tauri > bundle > deb
.c4d6fb4b
(#2353) Added the maximizable
, minimizable
and closable
options to the window configuration.3cb7a3e6
(#6997) Add MimeType::parse_with_fallback
and MimeType::parse_from_uri_with_fallback
29488205
(#6867) Allow specifying custom language files of Tauri's custom messages for the NSIS installere092f799
(#6887) Add nsis > template
option to specify custom NSIS installer template.cd3846c8
(#6955) Add WindowsUpdateInstallMode::nsis_args
85e77fb7
(#6762) Correctly determine MIME type of .txt
files.additional_browser_args
option to the window configuration.
content_protected
option to the window configuration.
.less
, .sass
and .styl
files.
nsis
bundles on non-Windows platforms.
nsis
bundle target
allowlist > app > show/hide
always disabled when allowlist > app > all: false
.
package > productName
in the tauri config and produce errors if it contains one of the following characters /\:*?\"<>|
PatternKind::Isolation
is now defined even without the isolation
feature.
app
allowlist module.
tauri.conf.json > bundle > publisher
field to specify the app publisher.
platform::resource_dir
.
title
option on the system tray configuration (macOS only).
user_agent
option to the window configuration.
mime_type
module.
set_cursor_grab
, set_cursor_visible
, set_cursor_icon
and set_cursor_position
APIs.
build > beforeBundleCommand
in tauri.conf.json to run a shell command before the bundling phase.
before_dev_command
and before_build_command
config value to allow configuring the current working directory.
before_dev_command
to force the CLI to wait for the command to finish before proceeding.
config::parse
module.
menu_on_left_click: bool
to the SystemTrayConfig
.
config::parse::read_platform
and config::parse::get_platform_config_filename
.
platform::windows_version
function.
BundleConfig::targets
to a BundleTarget
enum to enhance generated documentation.
platform::is_windows_7
.
tauri.conf.json > tauri > bundle > appimage > bundleMediaFramework
.
PackageInfo::version
is now a semver::Version
instead of a String
.
$schema
support to tauri.conf.json
.
dangerous_allow_asset_csp_modification
configuration value has been changed to allow a list of CSP directives to disable.
io
module with the read_line
method.
useBootstrapper
option. Use https://github.com/tauri-apps/fix-path-env-rs instead.
Added an option to disable the CSP injection of distributable assets nonces and hashes.
Use the default value for MacConfig.minimumSystemVersion
if the value is set to an empty string.
Replace multiple dependencies who's C code compiled concurrently and caused the other ones to bloat compile time significantly.
zstd
-> brotli
blake3
-> a vendored version of the blake3 reference
ring
-> getrandom
See https://github.com/tauri-apps/tauri/pull/3773 for more information about these specific choices.
is_symlink
API compatible with Rust v1.57 instead of std/fs/struct.Metadata.html#method.is_symlink.
tauri > bundle > macOS > minimumSystemVersion
to 10.13
.
freezePrototype
configuration to false
.
allowlist
configuration now includes a clipboard
object, controlling the exposure of the writeText
and readText
APIs.
message
, ask
and confirm
APIs.
allowlist
configuration now includes a process
object, controlling the exposure of the relaunch
and exit
APIs.
window
allowlist now includes options to enable all window modification APIs: center
, close
, create
, hide
, maximize
, minimize
, print
, requestUserAttention
, setAlwaysOnTop
, setDecorations
, setFocus
, setFullscreen
, setIcon
, setMaxSize
, setMinSize
, setPosition
, setResizable
, setSize
, setSkipTaskbar
, setTitle
, show
, startDragging
, unmaximize
and unminimize
.
asset
allowlist configuration, which enables the asset
protocol and defines it access scope.
CliArg
numeric types from u64
to usize
.
nonce
to script
and style
tags and set them on the CSP
(script-src
and style-src
fetch directives).
tauri::api::process::current_binary
is now cached when loading the binary.
dev_csp
to the security
configuration object.
tauri > bundle > windows > webviewFixedRuntimePath
config option.
pubkey
is now a required field for security reasons. Sign your updates with the tauri signer
command.
isolation
pattern.
tauri.conf.json
file, along with also supporting the .json5
extension.Here is the logic flow that determines if JSON or JSON5 will be used to parse the config:
tauri.conf.json
exists
a. Parse it with serde_json
b. Parse it with json5
if serde_json
fails
c. Return original serde_json
error if all above steps failedtauri.conf.json5
exists
a. Parse it with json5
b. Return error if all above steps failedcli.rs
to tauri-build
so using the Cargo CLI directly processes the files for the application execution in development.
tauri.conf.json > tauri > windows
is not set.
1.56
.
scope
glob array config under tauri > allowlist > fs
.
Adds assetScope
glob array config under tauri > allowlist > protocol
.
Adds scope
URL array config under tauri > allowlist > http
.
shell
allowlist now includes a sidecar
flag, which enables the use of the shell
API to execute sidecars.
https
on release builds.
Debug
on public API structs and enums.
config > package > productName
on Linux (previously converted to kebab-case).
<script></script>
tags.
script
tags with type="module"
.
Params
has been removed, along with all the associated types on it. Functions that previously accepted those
associated types now accept strings instead. Type that used a generic parameter Params
now use Runtime
instead. If
you use the wry
feature, then types with a Runtime
generic parameter should default to Wry
, letting you omit the
explicit type and let the compiler infer it instead.tauri
:
Params
noteParams
inside a function parameter or definition, all references to it have been replaced with a
simple runtime that defaults to Wry
. If you are not using a custom runtime, just remove Params
from the definition
of functions/items that previously took it. If you are using a custom runtime, you may need to pass the runtime type
to these functions.Params
(uncommon and if you don't understand you probably were not using it), all
methods that were previously taking the custom type now takes an Into<String>
or a &str
. The types were already
required to be string-able, so just make sure to convert it into a string before passing it in if this breaking change
affects you.tauri-macros
:
default_runtime
proc macro to allow us to give item definitions a custom runtime only when
the specified feature is enabled.tauri-runtime
:
Params
noteParams
, MenuId
, Tag
, TagRef
.menu::{MenuHash, MenuId, MenuIdRef}
as type aliases for the internal type that menu types now use.
MenuId
generic now use the underlying MenuId
type without a generic.Runtime
, RuntimeHandle
, and Dispatch
have no more generic parameter on create_window(...)
and instead use the
Runtime
type directlyRuntime::system_tray
has no more MenuId
generic and uses the string based SystemTray
type directly.CustomMenuItem::id_value()
is now hashed on creation and exposed as the id
field with type MenuHash
.tauri-runtime-wry
:
Params
notetauri-runtime
.tauri-utils
:
Assets::get
signature has changed to take a &AssetKey
instead of impl Into<AssetKey>
to become trait object
safe.Params
and replace with strings (#2191) on 2021-07-15dev_path
and dist_dir
to be an array of root files and directories to embed.
tauri.conf.json > build > devPath
and tauri.conf.json > build > distDir
values.
file_drop_enabled
flag on WindowConfig
.
phf
crate export (not public API).
assets
field on the tauri::Context
struct is now a Arc<impl Assets>
.
csp
injection, configured on tauri.conf.json > tauri > security > csp
.
platform::resource_dir
API now takes the PackageInfo
.
package
object on tauri.conf.json
.
tauri
create.
Also, the AppBuilder
build
function now returns a Result.