Skip to main content

Config

Struct Config 

Source
pub struct Config {
    pub schema: Option<String>,
    pub product_name: Option<String>,
    pub main_binary_name: Option<String>,
    pub version: Option<String>,
    pub identifier: String,
    pub app: AppConfig,
    pub build: BuildConfig,
    pub bundle: BundleConfig,
    pub plugins: PluginConfig,
}
Expand description

The Tauri configuration object. It is read from a file where you can define your frontend assets, configure the bundler and define a tray icon.

The configuration file is generated by the tauri init command that lives in your Tauri application source directory (src-tauri).

Once generated, you may modify it at will to customize your Tauri application.

§File Formats

By default, the configuration is defined as a JSON file named tauri.conf.json.

Tauri also supports JSON5 and TOML files via the config-json5 and config-toml Cargo features, respectively. The JSON5 file name must be either tauri.conf.json or tauri.conf.json5. The TOML file name is Tauri.toml.

§Platform-Specific Configuration

In addition to the default configuration file, Tauri can read a platform-specific configuration from tauri.linux.conf.json, tauri.windows.conf.json, tauri.macos.conf.json, tauri.android.conf.json and tauri.ios.conf.json (or Tauri.linux.toml, Tauri.windows.toml, Tauri.macos.toml, Tauri.android.toml and Tauri.ios.toml if the Tauri.toml format is used), which gets merged with the main configuration object.

§Configuration Structure

The configuration is composed of the following objects:

  • app: The Tauri configuration
  • build: The build configuration
  • bundle: The bundle configurations
  • plugins: The plugins configuration

Example tauri.config.json file:

{
  "productName": "tauri-app",
  "version": "0.1.0",
  "build": {
    "beforeBuildCommand": "",
    "beforeDevCommand": "",
    "devUrl": "http://localhost:3000",
    "frontendDist": "../dist"
  },
  "app": {
    "security": {
      "csp": null
    },
    "windows": [
      {
        "fullscreen": false,
        "height": 600,
        "resizable": true,
        "title": "Tauri App",
        "width": 800
      }
    ]
  },
  "bundle": {},
  "plugins": {}
}

Fields§

§schema: Option<String>

The JSON schema for the Tauri config.

§product_name: Option<String>

App name.

This is the name your app is known by on the user’s system, so it must be changed from the default before publishing. Besides naming the generated bundles, it is written into platform metadata and install paths that are expected to be unique to your application.

§Platform-specific

  • macOS: Names the .app bundle and the .dmg, and sets the bundle’s CFBundleDisplayName and CFBundleName properties. CFBundleName can be overridden with bundle > macOS > bundleName.
  • Linux: Kebab-cased for the Debian and RPM package names, used as the Name entry of the desktop file and as the resource directory name under /usr/lib.
  • Windows: Names the installers, the installation directory, the Start Menu folder and the HKCU\Software\<publisher>\<product name> registry key. It also derives the default WiX upgrade code, which must be unique across applications and can be set explicitly with bundle > windows > wix > upgradeCode.
§main_binary_name: Option<String>

Overrides app’s main binary filename.

By default, Tauri uses the output binary from cargo, by setting this, we will rename that binary in tauri-cli’s tauri build command, and target tauri bundle to it

If possible, change the package name or set the name field instead, and if that’s not enough and you’re using nightly, consider using the different-binary-name feature instead

Note: this config should not include the binary extension (e.g. .exe), we’ll add that for you

§version: Option<String>

App version. It is a semver version number or a path to a package.json file containing the version field.

If removed the version number from Cargo.toml is used. It’s recommended to manage the app versioning in the Tauri config.

§Platform-specific

  • macOS: Translates to the bundle’s CFBundleShortVersionString property and is used as the default CFBundleVersion. You can set an specific bundle version using bundle > macOS > bundleVersion.
  • iOS: Translates to the bundle’s CFBundleShortVersionString property and is used as the default CFBundleVersion. You can set an specific bundle version using bundle > iOS > bundleVersion. The tauri ios build CLI command has a --build-number <number> option that lets you append a build number to the app version.
  • Android: By default version 1.0 is used. You can set a version code using bundle > android > versionCode.

By default version 1.0 is used on Android.

§identifier: String

The application identifier in reverse domain name notation (e.g. com.tauri.example). This string must be unique across applications since it is used in system configurations like the bundle ID and path to the webview data directory. This string must contain only alphanumeric characters (A-Z, a-z, and 0-9), hyphens (-), and periods (.). The default value com.tauri.dev is rejected by tauri build and must be changed before building your application.

§app: AppConfig

The App configuration.

§build: BuildConfig

The build configuration.

§bundle: BundleConfig

The bundler configuration.

§plugins: PluginConfig

The plugins config.

Trait Implementations§

Source§

impl Clone for Config

Source§

fn clone(&self) -> Config

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Config

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for Config

Source§

fn default() -> Config

Returns the “default value” for a type. Read more
Source§

impl<'de> Deserialize<'de> for Config

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl PartialEq for Config

Source§

fn eq(&self, other: &Config) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl Serialize for Config

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl StructuralPartialEq for Config

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Serialize for T
where T: Serialize + ?Sized,

Source§

fn erased_serialize(&self, serializer: &mut dyn Serializer) -> Result<(), Error>

Source§

fn do_erased_serialize( &self, serializer: &mut dyn Serializer, ) -> Result<(), ErrorImpl>

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.