Skip to content
Tauri

Store

This plugin provides a persistent key-value store. This is one of many options to handle state in your application. See the state management overview for more information on additional options.

This store will allow you to persist state to a file which can be saved and loaded on demand including between app restarts. Note that this process is asynchronous which will require handling it within your code. It can be used both in the webview or within Rust.

Supported Platforms

  • Windows
  • Linux
  • macOS
  • Android
  • iOS

Setup

Install the store plugin to get started.

Use your project’s package manager to add the dependency:

npm run tauri add store

Usage

import { Store } from '@tauri-apps/plugin-store';
// when using `"withGlobalTauri": true`, you may use
// const { Store } = window.__TAURI_PLUGIN_STORE__;
// Store will be loaded automatically when used in JavaScript binding.
const store = new Store('store.bin');
// Set a value.
await store.set('some-key', { value: 5 });
// Get a value.
const val = await store.get('some-key');
console.log(val); // { value: 5 }
// You can manually save the store after making changes.
// Otherwise, it will save upon graceful exit as described above.
await store.save();

Permissions

By default, all plugin commands are blocked and cannot be accessed. You must define a list of permissions in your capabilities configuration.

See the Capabilities Overview for more information and the step by step guide to use plugin permissions.

src-tauri/capabilities/main.json
{
"$schema": "../gen/schemas/desktop-schema.json",
"identifier": "main-capability",
"description": "Capability for the main window",
"windows": ["main"],
"permissions": [
"store:allow-get",
"store:allow-set",
"store:allow-save",
"store:allow-load"
]
}

Default Permission

This permission set configures what kind of operations are available from the store plugin.

Granted Permissions

All operations are enabled by default.

  • allow-clear
  • allow-delete
  • allow-entries
  • allow-get
  • allow-has
  • allow-keys
  • allow-length
  • allow-load
  • allow-reset
  • allow-save
  • allow-set
  • allow-values

Permission Table

Identifier Description

store:allow-clear

Enables the clear command without any pre-configured scope.

store:deny-clear

Denies the clear command without any pre-configured scope.

store:allow-delete

Enables the delete command without any pre-configured scope.

store:deny-delete

Denies the delete command without any pre-configured scope.

store:allow-entries

Enables the entries command without any pre-configured scope.

store:deny-entries

Denies the entries command without any pre-configured scope.

store:allow-get

Enables the get command without any pre-configured scope.

store:deny-get

Denies the get command without any pre-configured scope.

store:allow-has

Enables the has command without any pre-configured scope.

store:deny-has

Denies the has command without any pre-configured scope.

store:allow-keys

Enables the keys command without any pre-configured scope.

store:deny-keys

Denies the keys command without any pre-configured scope.

store:allow-length

Enables the length command without any pre-configured scope.

store:deny-length

Denies the length command without any pre-configured scope.

store:allow-load

Enables the load command without any pre-configured scope.

store:deny-load

Denies the load command without any pre-configured scope.

store:allow-reset

Enables the reset command without any pre-configured scope.

store:deny-reset

Denies the reset command without any pre-configured scope.

store:allow-save

Enables the save command without any pre-configured scope.

store:deny-save

Denies the save command without any pre-configured scope.

store:allow-set

Enables the set command without any pre-configured scope.

store:deny-set

Denies the set command without any pre-configured scope.

store:allow-values

Enables the values command without any pre-configured scope.

store:deny-values

Denies the values command without any pre-configured scope.


© 2024 Tauri Contributors. CC-BY / MIT