A lightweight and simple key-value store written in Rust, inspired by Python's PickleDB.
PickleDB-rs is a lightweight key-value store library written in Rust, heavily inspired by Python's PickleDB. It provides simple persistent storage for applications that need to save and retrieve data without the overhead of a full database system. The library supports multiple serialization formats and offers both automatic and manual data persistence options.
Rust developers who need a simple, no-fuss solution for persistent data storage in their applications, particularly for small to medium-sized projects where a full database would be overkill.
Developers choose PickleDB-rs for its minimal learning curve, straightforward API, and flexibility in serialization formats. It's specifically designed to be easy to use while providing reliable data persistence with crash-safe file operations.
PickleDB-rs is a lightweight and simple key-value store. It is a Rust version for Python's PickleDB
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
The library offers intuitive methods like `set()` and `get()` with minimal boilerplate, as shown in the hello world example where basic operations are accomplished in a few lines of code.
Supports JSON, Bincode, YAML, and CBOR, allowing developers to choose based on performance or compatibility, a feature added in version 0.3.0 and highlighted in the changelog.
Uses temporary files during writes to prevent data corruption, ensuring integrity even if the application crashes, as mentioned in the features and changelog for version 0.2.0.
Provides AutoDump for automatic persistence on every change and DumpUponRequest for manual control, catering to different use cases like prototyping or performance tuning.
Only offers key-value pairs and basic lists, lacking advanced structures like sets, sorted maps, or nested objects, which may require complex workarounds for richer data models.
The README doesn't address thread safety or concurrent access, making it risky for multi-threaded applications without external locking mechanisms like mutexes.
Version updates, such as 0.5.0 altering dump policies and removing automatic dumps on drop, indicate instability that could break existing code without careful migration.
With only two basic examples, developers might struggle with edge cases or complex scenarios, relying on source code inspection or community support for guidance.