Skip to main content

Virtuals

Virtual Python collections over any storage.

Dict, list, set, indexed dict, tree — they look and feel like native Python, but they don't physically exist as in-memory collections. They're virtual: lazy views that compose data structure logic over flat tuple-key storage. Any backend that implements the storage protocol gets every data structure for free.

Like SQLAlchemy for Python collections. No SQL, no specific backend. Define your structure, plug in a store.

PyPI: virtuals-py | Import: virtuals

What It Does

from virtuals import View, Container
from virtuals.storages.mem import InMemoryStorage
from virtuals.codecs import NoOpCodec

storage = InMemoryStorage(codec=NoOpCodec())
storage.open()

with storage.transaction() as tx:
    users = DictView.open_root(tx)
    users["alice"] = {"name": "Alice", "age": 30}
    users["bob"] = {"name": "Bob", "age": 25}

    # Navigate naturally
    for user_id, profile in users.items():
        print(f"{user_id}: {profile['name']}")

# Under the hood: flat KV pairs with tuple keys
# ("users", "alice", "name") -> "Alice"
# ("users", "alice", "age")  -> 30

Three Layers

Layer 1: Storage

Generic tuple-key KV store with lexicographic ordering.

storage.put(("users", "alice", "name"), "Alice")
value = storage.get(("users", "alice", "name"))

Layer 2: Container

Hierarchy and parent-child relationships over flat keys.

container = Container(storage, ("users", "alice"))
container.create()
children = container.children()  # ["name", "age"]

Layer 3: View

Data structure abstractions (dict, list, set) over containers.

users = DictView.open_root(tx)
users["alice"] = "data"

Installation

pip install virtuals-py
pip install virtuals-py[rocksdb]  # with RocksDB backend

Features

  • Virtual collections: Work with dicts, lists, sets over any KV backend
  • Tuple keys: Natural hierarchical addressing with lexicographic ordering
  • Backend agnostic: Works with any ordered KV store (RocksDB, LMDB, in-memory)
  • Observable: Watch for changes at any level of the hierarchy
  • Transactional: Full ACID support when the backend provides it
  • Lazy: Nothing materializes until accessed

License

Apache-2.0

Download files

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

Source Distribution

virtuals_py-0.1.4.tar.gz (167.2 kB view details)

Uploaded Source

Built Distribution

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

virtuals_py-0.1.4-py3-none-any.whl (239.7 kB view details)

Uploaded Python 3

File details

Details for the file virtuals_py-0.1.4.tar.gz.

File metadata

  • Download URL: virtuals_py-0.1.4.tar.gz
  • Upload date:
  • Size: 167.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for virtuals_py-0.1.4.tar.gz
Algorithm Hash digest
SHA256 c90b38fa57746fe0957057e96268b62473e302eb4433e5e60695876d8ca3301b
MD5 a9ea7ffa49966cb05d7402b4796e124b
BLAKE2b-256 e6a901ce8fed5b794f45444dcee3fa3a8ea367c81032a785a4ee9398ade5d1eb

See more details on using hashes here.

Provenance

The following attestation bundles were made for virtuals_py-0.1.4.tar.gz:

Publisher: publish-py.yml on nustackdev/virtuals

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file virtuals_py-0.1.4-py3-none-any.whl.

File metadata

  • Download URL: virtuals_py-0.1.4-py3-none-any.whl
  • Upload date:
  • Size: 239.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for virtuals_py-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 9ba2aea7ae5e1b3e15daf5631408cf44a70d819dc83d77f07442c389f53f8e6f
MD5 5f3b981cf1696392fef671628cb70c5d
BLAKE2b-256 1faa239b7efcdb4555db5013e72b44ab2b1162f83628fa8b771cdba6698229ed

See more details on using hashes here.

Provenance

The following attestation bundles were made for virtuals_py-0.1.4-py3-none-any.whl:

Publisher: publish-py.yml on nustackdev/virtuals

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

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