Skip to main content

Persistence

Project description

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

layered_persistence-0.0.3.tar.gz (7.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

layered_persistence-0.0.3-py3-none-any.whl (8.1 kB view details)

Uploaded Python 3

File details

Details for the file layered_persistence-0.0.3.tar.gz.

File metadata

  • Download URL: layered_persistence-0.0.3.tar.gz
  • Upload date:
  • Size: 7.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.2

File hashes

Hashes for layered_persistence-0.0.3.tar.gz
Algorithm Hash digest
SHA256 1661b09e37af0f921c83cb7f6f391cf1d9b0f85355db67fe1ff4c84cbf70376e
MD5 0d7f6f45cbcded424d0acd3ecde3d5e9
BLAKE2b-256 1dc519ca9b702bb37e610afc82d1573d8566e893896841c71a58bc957cdfc377

See more details on using hashes here.

File details

Details for the file layered_persistence-0.0.3-py3-none-any.whl.

File metadata

File hashes

Hashes for layered_persistence-0.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 f338ced657d5f88c113b8072150371425009437dbb595f097a9d30b14d114e4d
MD5 edbc56f9352bf2b3fb90dc2ec13e53c2
BLAKE2b-256 948fca1a08b9a781670bf9edd9cc051139d35d63f7f0a9cec5df2dc31a9a54ab

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page