tauri-store

Persistent stores for Tauri.

Features

  • Save your stores to disk.
  • Synchronize across multiple windows.
  • Debounce or throttle store updates.
  • Access the stores from both JavaScript and Rust.

Usage

[!TIP] There are also custom plugins that tightly integrate with your favorite framework or library.

import { Store } from 'tauri-store';

const store = new Store('my-store', { counter: 0 });

// Get a value. This is a synchronous operation!
const counter = store.get('counter');
console.log(counter);

// Set a value.
store.set('counter', 42);

// Update a value with a callback.
store.update('counter', (value) => value + 1);

// Set multiple values at once.
store.patch({ counter: 0 });

// Listen to changes.
store.subscribe((state) => {
  console.log(state);
});

// Save the store. Unlike the others, this is asynchronous.
await store.save();

Documentation

Check the documentation for more information on how to install and use the plugins.

Plugins

Currently, the following plugins are available:

Name Version Works with
tauri-store Everything
@tauri-store/pinia Vue, Nuxt
@tauri-store/svelte Svelte
@tauri-store/valtio React
@tauri-store/zustand React

Examples

You can find example projects in the examples directory. To check them out, run the following commands:

git clone https://github.com/ferreira-tb/tauri-store.git
cd tauri-store
pnpm install
pnpm run example [EXAMPLE_NAME]

For example, to run the pinia project, you can use:

pnpm run example pinia

For a completely random example, run:

pnpm run example random

Supported Tauri Version

The plugins require Tauri 2.0 or later.

Top categories

svelte logo

Need a Svelte website built?

Hire a professional Svelte developer today.
Loading Svelte Themes