App JSON Settings
App settings as JSON format stored in file and available via read-by-key and write-by-key.
Aims a tiny settings manager with reasonably few dependencies.
Examples
Rust - as Tauri backend
use JsonSettigs;
Instead of JsonSettigs::exe_dir()
above, where to store the settings file has options.
fn | where to store |
---|---|
exe_dir() |
the same to where the executable is |
config_dir() |
points to app dir in user config dir. the app dir name is automatically defined due to the executable name |
new(filepath) |
custom path and file name |
TypeScript - as Tauri frontend
import { invoke } from '@tauri-apps/api/core'
interface ReadByKeyResponse {
key: string
value: unknown
file_exists: boolean
key_exists: boolean
}
const read = (key: string): Promise<unknown> => {
return invoke('settings_read_by_key', { key: key }).then((res) => {
const _res = res as ReadByKeyResponse
if (!_res.file_exists || !_res.key_exists) return undefined
return _res.value
})
}
const write = (key: string, value: any) => {
invoke('settings_write_by_key', { key: key, value: value })
}
settings.json
Acknowledgements
Depends on: serde / serde_json .