Skip to content

ceil-python/persistence

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

layered-persistence

PyPI version License

Flexible, multi-layer key-value persistence library for Python and MicroPython. In-memory, file, and HTTP storage, with simple pluggable API.


Features

  • Persistent key-value storage with multiple, cascading "layers"
  • Storage backends: RAM, JSON file, remote HTTP
  • Supports async and sync use
  • Lightweight, only core Python dependencies
  • Optional HTTP server for networked persistence

Installation

pip install layered-persistence

or

python -m pip install layered-persistence

or

python3 -m pip install layered-persistence

Quickstart

from layered_persistence import LayeredPersistence, RuntimeLayer, FileLayer

# Use both in-memory (fast) and file (persistent) layers
store = LayeredPersistence(layers=[
    RuntimeLayer(),
    FileLayer(directory="./data")
])

# Store and retrieve a value
await store.set('foo', {'bar': 123})
val = await store.get('foo')
await store.set('foo', {'bar': val["value"]["bar"]+1})
print(val)  # {'value': {'bar': 123}}

Layers

  • RuntimeLayer — Fastest, memory only, cleared on reboot.
  • FileLayer — Stores each key as ./directory/key.json.
  • HttpLayer — For network/remote server persistence (see docs).

Layers can be stacked; reads backfill for speed, writes cascade for durability.


HTTP Server

Expose your store as a simple HTTP API:

from layered_persistence import serve_via_http, LayeredPersistence, RuntimeLayer

store = LayeredPersistence([RuntimeLayer()])
serve_via_http(store, port=8080)

License

MIT

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages