Persistent stores for Tauri.
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();
[!TIP] There are also custom plugins that tightly integrate with your favorite framework or library.
Check the documentation for more information on how to install and use the 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 |
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
The plugins require Tauri 2.0
or later.