Skip to main content

Flexible data and file storage, retrieval and caching system for Python applications

Project description

Vault

Vault is a flexible and lightweight data/file storage, retrieval, and caching system for Python applications.

It enables developers to manage any Python object (given a proper Datatype implementation), store them locally or remotely, organize them by type, and access them efficiently using an in-memory cache, all this with just a few lines of code.

Vault has only two dependencies (psutil and requests), encourages memory usage monitoring, and will support non-blocking I/O operations.

I. Project Structure

Vault is split into two libraries:

  • vault – Core data storage library, which also includes the ability to connect to remote Vaults.
  • vault-fastapi – Library for building custom servers that expose Vault storage over the network.

There are also two usage examples: one for local use-cases where Vault is used within the same Python process, and one for remote use-cases where Vault is run on a separate machine.

Additionally, the datatypes/ directory contains example wrappers for using Python types from common libraries with Vault.

II. Architecture

(todo)

Diagram for showing the core in-memory cache for accessing data

III. Milestones

A main issue with Vault is the absence of ways to scale Vaults across multiple servers: those issue will be solved with Vault 2.0, which will introduce Scalable Storage, Disk Caching and Data Streaming.

These changes are intended to support large-scale applications and will likely require breaking changes; we are planning to recieve feedback and fix bugs during the 1.0 development cycle in order to have a stable base to build upon, before starting the 2.0 development cycle.

Before that, a key improvement planned for 1.x is support for non-blocking data operations, either through async-compatible methods for the already implement classes or async-specific variants of existing classes.

A smaller improvement that could be done for programs that use large amounts of files is adding an optional feature for keeping track of files in a separate register (most likely sqlite) in order to remove the need to list all files in the directories when the Vault is loaded. This additional database could also be used to add data integrity checks (checksum).

IV. Vault API

The Remote API specification for Vault 1.0 is available in VAULT_API.md.

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

pyvault_client-0.1.1.tar.gz (19.5 kB view details)

Uploaded Source

Built Distribution

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

pyvault_client-0.1.1-py3-none-any.whl (19.6 kB view details)

Uploaded Python 3

File details

Details for the file pyvault_client-0.1.1.tar.gz.

File metadata

  • Download URL: pyvault_client-0.1.1.tar.gz
  • Upload date:
  • Size: 19.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for pyvault_client-0.1.1.tar.gz
Algorithm Hash digest
SHA256 0afa05a15d3b464987baf298d8f0f04f2b4a319daa14ed60b1f2a344e27b984a
MD5 6be6e32ebd0996b2a6fddbce11075c66
BLAKE2b-256 a3dc39162bbff2a39ca658a2a7ccab7709d21b3df49bc9b89fe21beec99d3ae3

See more details on using hashes here.

File details

Details for the file pyvault_client-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: pyvault_client-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 19.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for pyvault_client-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 fb7ce660b89c30c4ece607bb0c855e091b1f1256fdee5c4561bbdfaee2ecfc72
MD5 3c0a19d5de8be3cba4aa91edc155dbd6
BLAKE2b-256 2331ad64af9492b3c81e42e0afae95191dc2737e59bb6f5b6a78f97d178d081e

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