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
| Platform | Supported |
|---|---|
| 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.