bevy_pkv
bevy_pkv is a cross-platform persistent key value store for rust apps.
Use it for storing things like settings, save games etc.
Currently, the Bevy dependency is optional, so it may be used in other games/apps as well.
Usage with Bevy
Add a store resource to your app
use *;
use PkvStore;
This will create or load a store in the appropriate location for your system, and make it available to bevy systems:
Using your own types implementing serde::Serialize and Deserialize:
See the examples for further usage
Usage without Bevy
Disable the default features when adding the dependency:
= { = 0.7, = false}
Implementation details
Native
sled and rmp_serde (MessagePack) is used for storage. It's creating a sled db in bevy_pkv in the appropriate application data directory for your system.
Wasm
Window.localStorage and serde_json is used for storage. Perhaps IndexedDb and something else would have been a better choice, but its API is complicated, and I wanted a simple implementation and a simple synchronous API.
Bevy version support
The main branch targets the latest bevy release.
I intend to support the main branch of Bevy in the bevy-main branch.
| bevy | bevy_pkv |
|---|---|
| 0.9 | 0.6, main |
| 0.8 | 0.5 |
| 0.7 | 0.2, 0.3, 0.4 |
| 0.6 | 0.1 |
License
MIT or Apache-2.0