• Stars
    star
    275
  • Rank 149,796 (Top 3 %)
  • Language
    Rust
  • License
    Apache License 2.0
  • Created about 3 years ago
  • Updated 3 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

[READ ONLY] This repository is a mirror, for issue tracking and development head to: https://github.com/tauri-apps/plugins-workspace

plugin-store

Simple, persistent key-value store.

Install

This plugin requires a Rust version of at least 1.64

There are three general methods of installation that we can recommend.

  1. Use crates.io and npm (easiest, and requires you to trust that our publishing pipeline worked)
  2. Pull sources directly from Github using git tags / revision hashes (most secure)
  3. Git submodule install this repo in your tauri project and then use file protocol to ingest the source (most secure, but inconvenient to use)

Install the Core plugin by adding the following to your Cargo.toml file:

src-tauri/Cargo.toml

[dependencies]
tauri-plugin-store = { git = "https://github.com/tauri-apps/plugins-workspace", branch = "v1" }

You can install the JavaScript Guest bindings using your preferred JavaScript package manager:

Note: Since most JavaScript package managers are unable to install packages from git monorepos we provide read-only mirrors of each plugin. This makes installation option 2 more ergonomic to use.

pnpm add https://github.com/tauri-apps/tauri-plugin-store#v1
# or
npm add https://github.com/tauri-apps/tauri-plugin-store#v1
# or
yarn add https://github.com/tauri-apps/tauri-plugin-store#v1

Usage

First you need to register the core plugin with Tauri:

src-tauri/src/main.rs

fn main() {
    tauri::Builder::default()
        .plugin(tauri_plugin_store::Builder::default().build())
        .run(tauri::generate_context!())
        .expect("error while running tauri application");
}

Afterwards all the plugin's APIs are available through the JavaScript guest bindings:

import { Store } from "tauri-plugin-store-api";

const store = new Store(".settings.dat");

await store.set("some-key", { value: 5 });

const val = await store.get("some-key");
assert(val, { value: 5 });

await store.save(); // this manually saves the store, otherwise the store is only saved when your app is closed

Persisting values

Values added to the store are not persisted between application loads unless:

  1. The application is closed gracefully (plugin automatically saves)
  2. The store is manually saved (using store.save())

Usage from Rust

You can also access Stores from Rust, you can create new stores:

use tauri_plugin_store::StoreBuilder;
use serde_json::json;

fn main() {
    tauri::Builder::default()
        .plugin(tauri_plugin_store::Builder::default().build())
        .setup(|app| {
            let mut store = StoreBuilder::new(app.handle(), "path/to/store.bin".parse()?).build();

            store.insert("a".to_string(), json!("b")) // note that values must be serd_json::Value to be compatible with JS
        })
        .run(tauri::generate_context!())
        .expect("error while running tauri application");
}

As you may have noticed, the Store crated above isn't accessible to the frontend. To interoperate with stores created by JS use the exported with_store method:

use tauri::Wry;
use tauri_plugin_store::with_store;

let stores = app.state::<StoreCollection<Wry>>();
let path = PathBuf::from("path/to/the/storefile");

with_store(app_handle, stores, path, |store| store.insert("a".to_string(), json!("b")))

Contributing

PRs accepted. Please make sure to read the Contributing Guide before making a pull request.

License

Code: (c) 2015 - Present - The Tauri Programme within The Commons Conservancy.

MIT or MIT/Apache 2.0 where applicable.

More Repositories

1

tauri

Build smaller, faster, and more secure desktop applications with a web frontend.
Rust
81,362
star
2

awesome-tauri

๐Ÿš€ Awesome Tauri Apps, Plugins and Resources
4,224
star
3

wry

Cross-platform WebView library in Rust for Tauri.
Rust
3,491
star
4

cargo-mobile2

Rust on mobile made easy!
Rust
1,566
star
5

tao

The TAO of cross-platform windowing. A library in Rust built for Tauri.
Rust
1,532
star
6

create-tauri-app

Rapidly scaffold out a new tauri app project.
Rust
979
star
7

tauri-action

Build your Web application as a Tauri binary for macOS, Linux and Windows
TypeScript
870
star
8

plugins-workspace

All of the official Tauri plugins in one place!
Rust
807
star
9

tauri-docs

The source for all Tauri project documentation.
MDX
769
star
10

window-vibrancy

Make your windows vibrant.
Rust
609
star
11

tauri-vscode

Visual Studio Code Extension for Tauri apps development
TypeScript
459
star
12

vue-cli-plugin-tauri

Turn your Vue SPA into a lightweight cross-platform desktop app
JavaScript
372
star
13

tauri-plugin-sql

[READ ONLY] This repository is a mirror, for issue tracking and development head to: https://github.com/tauri-apps/plugins-workspace
Rust
365
star
14

tauri-egui

Rust
343
star
15

muda

Menu Utilities for Desktop Applications in Rust.
Rust
234
star
16

tray-icon

Tray icons for Desktop Applications.
Rust
199
star
17

window-shadows

Add native shadows to your windows.
Rust
160
star
18

tauri-bindgen

Typesafe language bindings generator for the Tauri IPC bridge
Rust
142
star
19

webkit2gtk-rs

WebKit2 bindings and wrappers for Rust
Rust
136
star
20

global-hotkey

Global hotkeys for Desktop Applications.
Rust
127
star
21

tauri-plugin-window-state

[READ ONLY] This repository is a mirror, for issue tracking and development head to: https://github.com/tauri-apps/plugins-workspace
Rust
125
star
22

tauri-plugin-log

[READ ONLY] This repository is a mirror, for issue tracking and development head to: https://github.com/tauri-apps/plugins-workspace
Rust
111
star
23

javascriptcore-rs

JavaScriptCore bindings and wrappers for Rust
Rust
91
star
24

tauri-plugin-positioner

[READ ONLY] This repository is a mirror, for issue tracking and development head to: https://github.com/tauri-apps/plugins-workspace
Rust
91
star
25

meilisearch-docsearch

A quick search component for meilisearch, inspired by algolia/docsearch.
TypeScript
88
star
26

tauri-plugin-stronghold

[READ ONLY] This repository is a mirror, for issue tracking and development head to: https://github.com/tauri-apps/plugins-workspace
Rust
88
star
27

tauri-plugin-authenticator

[READ ONLY] This repository is a mirror, for issue tracking and development head to: https://github.com/tauri-apps/plugins-workspace
Rust
86
star
28

smoke-tests

A collection of frameworks used as a suite of smoke-tests for tauri
JavaScript
76
star
29

tauri-plugin-autostart

[READ ONLY] This repository is a mirror, for issue tracking and development head to: https://github.com/tauri-apps/plugins-workspace
Rust
63
star
30

tauri-plugin-fs-watch

[READ ONLY] This repository is a mirror, for issue tracking and development head to: https://github.com/tauri-apps/plugins-workspace
Rust
62
star
31

tauri-plugin-websocket

[READ ONLY] This repository is a mirror, for issue tracking and development head to: https://github.com/tauri-apps/plugins-workspace
Rust
58
star
32

tauri-plugin-localhost

[READ ONLY] This repository is a mirror, for issue tracking and development head to: https://github.com/tauri-apps/plugins-workspace
Rust
56
star
33

tauri-invoke-http

A custom invoke system for Tauri that leverages a localhost server
Rust
47
star
34

fix-path-env-rs

Rust
44
star
35

libappindicator-rs

Rust safe bindings for the libappindicator library
Rust
44
star
36

tauri-plugin-fs-extra

[READ ONLY] This repository is a mirror, for issue tracking and development head to: https://github.com/tauri-apps/plugins-workspace
TypeScript
43
star
37

tauri-theia

Tauri Flavor of Theia
Rust
39
star
38

tauricon

Make icons for your tauri app with nodejs
TypeScript
30
star
39

tauri-plugin-upload

[READ ONLY] This repository is a mirror, for issue tracking and development head to: https://github.com/tauri-apps/plugins-workspace
Rust
29
star
40

tauri-plugin-single-instance

[DEPRECATED] Please use the plugin from https://github.com/tauri-apps/plugins-workspace instead.
Rust
25
star
41

win7-notifications

Send Windows 10 styled notifications on Windows 7.
Rust
19
star
42

tauri-forage

Currified localForage with a side of extras.
TypeScript
18
star
43

tauri-hotkey-rs

Rust
17
star
44

rfcs

Request For Comments for the Tauri project
17
star
45

tauri-discord-bot

Tauri's Discord Bot
TypeScript
17
star
46

nsis-tauri-utils

A collection of NSIS plugins written in rust.
Rust
16
star
47

tauri-plugin-notification

[READ ONLY] This repository is a mirror, for issue tracking and development head to: https://github.com/tauri-apps/plugins-workspace
Kotlin
12
star
48

benchmark_results

11
star
49

tauri-github-bot

A GitHub bot for tauri-apps org to automate various tasks and intended to used only by tauri-apps org members.
TypeScript
10
star
50

gipfs

Git ops with IPFS
9
star
51

binary-releases

Prebuilt binaries for Tauri projects
9
star
52

governance-and-guidance

Rust
8
star
53

tauri-plugin-http

[READ ONLY] This repository is a mirror, for issue tracking and development head to: https://github.com/tauri-apps/plugins-workspace
Rust
8
star
54

.github

Holds org-wide configuration files.
7
star
55

meetings

7
star
56

tauri-plugin-updater

[READ ONLY] This repository is a mirror, for issue tracking and development head to: https://github.com/tauri-apps/plugins-workspace
Rust
7
star
57

tauri-search

[Archived] Tauri's Search Capabilities for Website leveraging MeiliSearch
TypeScript
6
star
58

tauri-plugin-shell

[READ ONLY] This repository is a mirror, for issue tracking and development head to: https://github.com/tauri-apps/plugins-workspace
Rust
6
star
59

realworld

Realworld apps made with Tauri: Proof of Agnosis.
JavaScript
6
star
60

tauri.studio

Source code and build for the front-facing project website.
Vue
6
star
61

tauri-plugin-clipboard-manager

[READ ONLY] This repository is a mirror, for issue tracking and development head to: https://github.com/tauri-apps/plugins-workspace
Rust
6
star
62

wry-mobile

Rust
6
star
63

tauri-plugin-fs

[READ ONLY] This repository is a mirror, for issue tracking and development head to: https://github.com/tauri-apps/plugins-workspace
Rust
6
star
64

tauri-includedir

Rust
5
star
65

rustdocusaurus

POCโ€”turning rustdoc generated docs into Docusaurus (MD + sidebar)
JavaScript
5
star
66

docusaurus-meilisearch-indexer

JavaScript
5
star
67

tauri-plugin-os

[READ ONLY] This repository is a mirror, for issue tracking and development head to: https://github.com/tauri-apps/plugins-workspace
JavaScript
5
star
68

tauri-plugin-persisted-scope

[READ ONLY] This repository is a mirror, for issue tracking and development head to: https://github.com/tauri-apps/plugins-workspace
Rust
5
star
69

tauri-plugin-process

[READ ONLY] This repository is a mirror, for issue tracking and development head to: https://github.com/tauri-apps/plugins-workspace
JavaScript
5
star
70

tauri-plugin-global-shortcut

[READ ONLY] This repository is a mirror, for issue tracking and development head to: https://github.com/tauri-apps/plugins-workspace
Rust
5
star
71

dns-automation

This repo will manage DNS records automagically. Implementing Infrastructure as Code & GitOps practices.
HCL
4
star
72

tauri-plugin-dialog

[READ ONLY] This repository is a mirror, for issue tracking and development head to: https://github.com/tauri-apps/plugins-workspace
Rust
4
star
73

tauri-plugin-cli

[READ ONLY] This repository is a mirror, for issue tracking and development head to: https://github.com/tauri-apps/plugins-workspace
Rust
4
star
74

tauri-webpack

[Deprecated] webpack for no server
JavaScript
3
star
75

typedocusaurus

TypeScript
3
star
76

soup2-rs

Rust
2
star
77

benchmark_electron

Rust
2
star
78

automation

GitHub Actions available to the tauri-apps organization
JavaScript
2
star
79

gir-files

Shell
2
star
80

workflow-testbed

Test bed that will soon be deleted.
2
star
81

tauri-inliner-rs

Rust
1
star
82

tauri-plugin-window

[READ ONLY] This repository is a mirror, for issue tracking and development head to: https://github.com/tauri-apps/plugins-workspace
TypeScript
1
star
83

msedgedriver-manifest-cache

A caching service (in the form of a static site) of the msedgedriver version manifest file that seems to go missing a lot.
Rust
1
star
84

tauri-dialog-rs

C
1
star
85

board-voter

Vue
1
star
86

tauri-plugin-app

[READ ONLY] This repository is a mirror, for issue tracking and development head to: https://github.com/tauri-apps/plugins-workspace
JavaScript
1
star