Skip to main content
tauri-plugin-configurate is a Tauri v2 plugin that brings structured, type-safe configuration management to your desktop application. Define your config shape once with a TypeScript schema, and the plugin handles reading, writing, encrypting, and migrating your settings — across JSON, YAML, TOML, and encrypted binary formats — with full type inference throughout your codebase.
This plugin targets desktop platforms only. Android and iOS are not supported.

Platform Support

PlatformSupported
Linux
Windows
macOS
Android
iOS

Key Features

Multi-Format Storage

Persist configuration as JSON, YAML, TOML, or Binary. The binary provider uses XChaCha20-Poly1305 encryption with either a high-entropy key (SHA-256 KDF) or a user password (Argon2id).

Type-Safe Schema

Define your config shape with defineConfig and get full TypeScript type inference across every read and write. Mark individual fields as optional() to model settings that may be absent. No more stringly-typed settings objects or manual casting.

OS Keyring Integration

Mark individual fields with keyring() to store sensitive values — passwords, tokens, API keys — in the native OS credential store (Keychain on macOS, Credential Manager on Windows, Secret Service on Linux) instead of on disk.

Atomic Writes & Rolling Backups

Every file write uses atomic replace via tempfile::persist, protecting against partial writes and data corruption even on unexpected shutdown. Rolling backup support keeps prior versions recoverable.

Batch Operations

Use Configurate.loadAll, Configurate.saveAll, and Configurate.patchAll to read or write multiple config entries in a single IPC call, reducing round-trips in apps with many config files.

Schema Versioning & Migrations

Attach a version to your schema and provide migration functions so the plugin can automatically upgrade stored config from older application releases to the current shape.

File Watching

Subscribe to external file-change events so your UI can react in real time when the config file is modified outside your app — useful for power users who edit settings by hand.

Export & Import Across Formats

Export a live config to any supported format and import it back, enabling format migrations (e.g. JSON → TOML) and portable settings backup workflows.

Next Steps

Installation

Add the Rust crate and npm package to your project, register the plugin, and configure permissions.

Quickstart

Define your first schema, create a config file, and read it back in five minutes.