Skip to main content

A state management system for Python 3.x that unifies your applications business logic, data persistence, and caching into a single, efficient layer.

Project description

dbzero logo

A state management system for Python 3.x that unifies your application's business logic, data persistence, and caching into a single, efficient layer.

License: LGPL 2.1

"If we had infinite memory in our laptop, we'd have no need for clumsy databases. Instead, we could just use our objects whenever we liked."

— Harry Percival and Bob Gregory, Architecture Patterns with Python

Overview

dbzero lets you code as if you have infinite memory. Inspired by a thought experiment from Architecture Patterns with Python by Harry Percival and Bob Gregory, dbzero handles the complexities of data management in the background while you work with simple Python objects.

dbzero implements the DISTIC memory model:

  • Durable - Data persists across application restarts
  • Infinite - Work with data as if memory constraints don't exist (e.g. create lists, dicts or sets with billions of elements)
  • Shared - Multiple processes can access and share the same data
  • Transactional - Transaction support for data integrity
  • Isolated - Reads performed against a consistent point-in-time snapshot
  • Composable - Plug in multiple prefixes (memory partitions) on demand and access other apps’ data by simply attaching their prefix.

With dbzero, you don’t need separate pieces like a database, ORM, or cache layer. Your app becomes easier to build and it runs faster, because there are no roundtrips to a database, memory is used better, and you can shape your data to fit your problem.

Key Platform Features

dbzero provides the reliability of a traditional database system with modern capabilities and extra features on top.

  • Persistence: Application objects (classes and common structures like list, dict, set, etc.) are automatically persisted (e.g. to a local or network-attached file)
  • Efficient caching: Only the data actually accessed is retrieved and cached. For example, if a list has 1 million elements but only 10 are accessed, only those 10 are loaded.
  • Constrained memory usage: You can define memory limits for the process to control RAM consumption.
  • Serializable consistency: Data changes can be read immediately, maintaining a consistent view.
  • Transactions: Make atomic, exception-safe changes using the with dbzero.atomic(): context manager.
  • Snapshots & Time Travel: Query data as it existed at a specific point in the past. This enables tracking of data changes and simplify auditing.
  • Tags: Tag objects and use tags to filter or retrieve data.
  • Indexing: Define lightweight, imperative indexes that can be dynamically created and updated.
  • Data composability: Combine data from different apps, processes, or servers and access it through a unified interface - i.e. your application’s objects, methods and functions.
  • UUID support: All objects are automatically assigned a universally unique identifier, allowing to always reference them directly.
  • Custom data models - Unlike traditional databases, dbzero allows you to define custom data structures to match your domain's needs.

Requirements

  • Python: 3.9+
  • Operating Systems: Linux, macOS, Windows
  • Storage: Local filesystem or network-attached storage
  • Memory: Varies by workload; active working set should fit in RAM for best performance

Quick Start

Installation

pip install dbzero

Simple Example

The guiding philosophy behind dbzero is invisibility—it stays out of your way as much as possible. In most cases, unless you're using advanced features, you won’t even notice it’s there. No schema definitions, no explicit save calls, no ORM configuration. You just write regular Python code, as you always have. See the complete working example below:

import dbzero as db0

@db0.memo(singleton=True)
class GreeterAppRoot:
    def __init__(self, greeting, persons):
        self.greeting = greeting
        self.persons = persons
        self.counter = 0

    def greet(self):
        print(f"{self.greeting}{''.join(f', {person}' for person in self.persons)}!")
        self.counter += 1

if __name__ == "__main__":
    # Initialize dbzero
    db0.init("./app-data", prefix="main")
    # Initialize the application's root object
    root = GreeterAppRoot("Hello", ["Michael", "Jennifer"])
    root.greet() # Output: Hello, Michael, Jennifer!
    print(f"Greeted {root.counter} times.")

The application state is persisted automatically; the same data will be available the next time the app starts. All objects are automatically managed by dbzero and there's no need for explicit conversions, fetching, or saving — dbzero handles persistence transparently for the entire object graph.

Example Project and Utilities

Simple CRM

simple-crm is a small tutorial app that shows how to build a persistent Python internal tool with dbzero and NiceGUI. It tracks companies, contacts, notes, tags, and follow-up tasks using dbzero-backed Python objects instead of a separate REST API, ORM, cache layer, or database server.

Simple CRM browser interface

dbzero-modelkit

dbzero-modelkit is an open-source package of reusable model primitives for dbzero-friendly Python apps. It includes utilities for sparse calendars, active date windows, month-indexed storage, multilingual strings, FIFO queues, and tag-based object locks.

Core Concepts

Memo Classes

Transform any Python class into a persistent, automatically managed object by applying the @db0.memo decorator:

import dbzero as db0

@db0.memo
class Person:
    def __init__(self, name: str, age: int):
        self.name = name
        self.age = age

# Instantiation works just like regular Python
person = Person("Alice", 30)

# Attributes can be changed dynamically
person.age += 1
person.address = "123 Main St"  # Add new attributes on the fly

Collections

dbzero provides persistent versions of Python's built-in collections:

from datetime import date

person = Person("John", 25)

# Assign persistent collections to memo object
person.appointment_dates = {date(2026, 1, 12), date(2026, 1, 13), date(2026, 1, 14)}

person.skills = ["Python", "C++", "Docker"]

person.contact_info = {
    "email": "john@example.com",
    "phone": "+1-555-0100",
    "linkedin": "linkedin.com/in/john"
}

# Use them as usual
date(2026, 1, 13) in person.appointment_dates # True

person.skills.append("Kubernetes") 
print(person.skills) # Output: ['Python', 'C++', 'Docker', 'Kubernetes']

person.contact_info["github"] = "github.com/john"
person.contact_info["email"] # "john@example.com"

All standard operations are supported, and changes are automatically persisted.

Queries and Tags

Find objects using tag-based queries and flexible logic operators:

# Create and tag objects
person = Person("Susan", 31)
db0.tags(person).add("employee", "manager")

person = Person("Michael", 29)
db0.tags(person).add("employee", "developer")

# Find every Person by type
result = db0.find(Person)

# Combine type and tags (AND logic) to find employees
employees = db0.find(Person, "employee")

# OR logic using a list to find managers and developers
staff = db0.find(["manager", "developer"])

# NOT logic using db0.no() to find employees wich aren't managers
non_managers = db0.find("employee", db0.no("manager"))

Snapshots and Time Travel

Create isolated views of your data at any point in time:

person = Person("John", 25)
person.balance = 1500
# Keep the current state 
state = db0.get_state_num()
# Commit changes explicitely to advance the state immediately
db0.commit()

# Change the balance
person.balance -= 300
db0.commit()

print(f"{person.name} balance: {person.balance}") # John balance: 1200
# Open snapshot view with past state number
with db0.snapshot(state) as snap:
    past_person = db0.fetch(db0.uuid(person))
    print(f"{past_person.name} balance: {past_person.balance}") # John balance: 1500

Prefixes (Data Partitioning)

Organize data into independent, isolated partitions:

@db0.memo(singleton=True, prefix="/my-org/my-app/settings")
class AppSettings:
    def __init__(self, theme: str):
        self.theme = theme

@db0.memo(prefix="/my-org/my-app/data")
class Note:
    def __init__(self, content: str):
        self.content = content

settings = AppSettings(theme="dark") # Data goes to "settings.db0"
note = Note("Hello dbzero!")         # Data goes to "data.db0"

Indexes

Index your data for fast range queries and sorting:

from datetime import datetime

@db0.memo()
class Event:
    def __init__(self, event_id: int, occured: datetime):
        self.event_id = event_id
        self.occured = occured

events = [
    Event(100, datetime(2026, 1, 28)),
    Event(101, datetime(2026, 1, 30)),
    Event(102, datetime(2026, 1, 29)),
    Event(103, datetime(2026, 2, 1)),
]

# Create an index
event_index = db0.index()
# Populate with objects
for event in events:
    event_index.add(event.occured, event)

# Query events from January 2026
query = event_index.select(datetime(2026, 1, 1), datetime(2026, 1, 31))
# Sort ascending by date of occurance
query_sorted = event_index.sort(query)
print([event.event_id for event in query_sorted]) # Output: [100, 102, 101]

Scalability

dbzero provides tools to build scalable applications:

  • Data Partitioning - Split data across independent partitions (prefixes) to distribute workload
  • Distributed Transactions - Coordinate transactions across multiple partitions for data consistency
  • Multi-Process Support - Multiple processes can work with shared or separate data simultaneously, enabling horizontal scaling

These features give you the flexibility to design distributed architectures that fit your needs.

Use Cases

Our experience has proven that dbzero fits many real-life use cases, which include:

  • Web Applications - Unified state management for backend services
  • Data Processing Pipelines - Efficient and simple data preparation
  • Event-Driven Systems - Capturing data changes and time travel for auditing
  • AI Applications - Simplified state management for AI agents and workflows
  • Something Else? - Built something cool with dbzero? We'd love to see what you're working on—share it on our Discord server!

Why dbzero?

The short answer is illustrated by diagram below:

Traditional Stack

Application Code
    ↓
ORM Layer
    ↓
Caching Layer
    ↓
Database Layer
    ↓
Storage

With dbzero

Application Code + dbzero
    ↓
Storage

By eliminating intermediate layers, dbzero reduces complexity, improves performance, and accelerates development—all while providing the reliability and features you expect from a regular database system.

Documentation

Check our docs to learn more: docs.dbzero.io

There you can find:

  • Guides
  • Tutorials
  • Performance tips
  • API Reference

License

This project is licensed under the GNU Lesser General Public License v2.1 (LGPL 2.1). See LICENSE for the full text.

  • This library can be linked with proprietary software.
  • Modifications to the library itself must be released under LGPL 2.1.
  • Redistributions must preserve copyright and license notices and provide source.

For attribution details, see NOTICE.

Support

Feedback

We'd love to hear how you're using dbzero and what features you'd like to see! Your input helps us make dbzero better for everyone.

The best way to share your thoughts is through our Discord server: Join us on Discord

Commercial Support

Need help building large-scale solutions with dbzero?

We offer:

  • Tools for data export and manipulation
  • Tools for hosting rich UI applications on top of your existing dbzero codebase
  • System integrations
  • Expert consulting and architectural reviews
  • Performance tuning

Contact us at: info@dbzero.io


Start coding as if you have infinite memory. Let dbzero handle the rest.

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

dbzero-0.4.0.tar.gz (15.9 MB view details)

Uploaded Source

Built Distributions

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

dbzero-0.4.0-cp314-cp314-macosx_11_0_arm64.whl (7.6 MB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

dbzero-0.4.0-cp313-cp313-win_amd64.whl (25.1 MB view details)

Uploaded CPython 3.13Windows x86-64

dbzero-0.4.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (9.1 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

dbzero-0.4.0-cp313-cp313-macosx_11_0_arm64.whl (7.5 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

dbzero-0.4.0-cp312-cp312-win_amd64.whl (25.1 MB view details)

Uploaded CPython 3.12Windows x86-64

dbzero-0.4.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (9.1 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

dbzero-0.4.0-cp312-cp312-macosx_11_0_arm64.whl (7.5 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

dbzero-0.4.0-cp311-cp311-win_amd64.whl (25.1 MB view details)

Uploaded CPython 3.11Windows x86-64

dbzero-0.4.0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (9.1 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

dbzero-0.4.0-cp311-cp311-macosx_11_0_arm64.whl (7.5 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

dbzero-0.4.0-cp310-cp310-win_amd64.whl (25.1 MB view details)

Uploaded CPython 3.10Windows x86-64

dbzero-0.4.0-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (9.1 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

dbzero-0.4.0-cp310-cp310-macosx_11_0_arm64.whl (7.5 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

dbzero-0.4.0-cp39-cp39-win_amd64.whl (25.1 MB view details)

Uploaded CPython 3.9Windows x86-64

dbzero-0.4.0-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (9.1 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

dbzero-0.4.0-cp39-cp39-macosx_11_0_arm64.whl (7.6 MB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

File details

Details for the file dbzero-0.4.0.tar.gz.

File metadata

  • Download URL: dbzero-0.4.0.tar.gz
  • Upload date:
  • Size: 15.9 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for dbzero-0.4.0.tar.gz
Algorithm Hash digest
SHA256 f5f5ae080bd6328ff9b2f4bc4a097f74d9fa5aa052e2bea82a82ae5b4d5c304d
MD5 5056d9a6fd907931226ae2a22fac10e1
BLAKE2b-256 79451cc812f61dbc2608f670785086c126440a15e6e74b7842a9e303fefc9b71

See more details on using hashes here.

File details

Details for the file dbzero-0.4.0-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for dbzero-0.4.0-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f5aa294816683ee776a2cdc9a28f796cf3884018e5d1bb8f3eac62dbad7368b9
MD5 fee5c98bf71729fff98297a369cd7005
BLAKE2b-256 320156be8cb7da7897da9b14a9fcf1aec21467fb4da25214598164c55f8f45b2

See more details on using hashes here.

File details

Details for the file dbzero-0.4.0-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: dbzero-0.4.0-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 25.1 MB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for dbzero-0.4.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 83791081a9546662e61de49eee0238ccc4d00d05151b7c52156903ebb7a163a5
MD5 5e2071b6d39f8e412c2db0590708a658
BLAKE2b-256 18221f5285715fac8291c7f13be45e1d9c1dd4522328731b7d264c405cf28f89

See more details on using hashes here.

File details

Details for the file dbzero-0.4.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for dbzero-0.4.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 fb282190a8640e20d7b8760998589af506e5c7b5d3110f9a6e287821da9b766b
MD5 aedcdba7a757650c2d79d6cd9a353d0c
BLAKE2b-256 73b86ea28542afa9b26a97c7c45107434b6ef9dfa07dd77e3b3a30358c5f4647

See more details on using hashes here.

File details

Details for the file dbzero-0.4.0-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for dbzero-0.4.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 32ff3be59018eeacf3546d0cc208f7d20195f055ac7f64360b8f1bbf1a536ad5
MD5 ebb0db40b917a124a3cd83bb60d73b33
BLAKE2b-256 443a7a43e4beb161507a181ff17d66790d6823400ade2be6ed6e990e8f1a5776

See more details on using hashes here.

File details

Details for the file dbzero-0.4.0-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: dbzero-0.4.0-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 25.1 MB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for dbzero-0.4.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 b5ed40d5f33e6e7ef032e98e57d9d64a428832529a655cd4fc6b436477db5cbd
MD5 cd00c7209db43dd5e7c9bedcb148e317
BLAKE2b-256 1d3c178f9c62a57d3a20fe24a2a3ac03b83cf8b66a714fdc67e1203de406b554

See more details on using hashes here.

File details

Details for the file dbzero-0.4.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for dbzero-0.4.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 f99b41d35a69818c865c0a40bea137a9dc216d1ec3b17b6a590aeb1094399c77
MD5 571f7cb2cfbb2f1654a9cb857efa7006
BLAKE2b-256 951e4d14ab4995ab11bf0d51a813b9608bc1dfc8c74d9aa74765b8a06d53d5d0

See more details on using hashes here.

File details

Details for the file dbzero-0.4.0-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for dbzero-0.4.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1b3ce4e6868ba2f7478c5c49100a7ffa767d7fa28da89951b7e8f16371b499fe
MD5 3d0e4de278f8761f7117f5cd37c31d76
BLAKE2b-256 073105e6d6aa934b87357fe6e0321e5a60df3ebab84fa6bb2af0607111c2dcac

See more details on using hashes here.

File details

Details for the file dbzero-0.4.0-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: dbzero-0.4.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 25.1 MB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for dbzero-0.4.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 8fb81294b334f6e68d7757ecf0497c2e08f9fad1ead5a86e88edc3bf836db53f
MD5 e2970f71fc9cf2cb4b04d5a24fc47ba7
BLAKE2b-256 d15ac3112b962a5ce64a27ca90c953cc7c1d3f5e469988a72746f2bd89823ac9

See more details on using hashes here.

File details

Details for the file dbzero-0.4.0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for dbzero-0.4.0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 bf82448f84dbfee4f28507cf5994829ae717a854723ad65e261c4cc40fd37ee1
MD5 2ced15638d85943de60d1e66e8e3f245
BLAKE2b-256 2ab28a054949150a09069f0d6fe0b493f0b1c37d674279b6786e8fe38448679e

See more details on using hashes here.

File details

Details for the file dbzero-0.4.0-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for dbzero-0.4.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 dfe36ab3f7c0cba121f8dfa964aaed71d726b9e401013fbebdf909639b263a07
MD5 a05e2b86ca07330ab1295a5fbae70a51
BLAKE2b-256 1e29eec7575ce29d5963c59d5dd69072ce11d63caf69a5f20316e800b983bbc7

See more details on using hashes here.

File details

Details for the file dbzero-0.4.0-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: dbzero-0.4.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 25.1 MB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for dbzero-0.4.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 94d8ea0803386296da78bdadc6ba475afb5fb536da2aab65248038fac77432d5
MD5 cbf72b521d575589b7667932b324a4f5
BLAKE2b-256 68beccaf00e34df91469bb2d37391414a73a68254b340bdef309be9c57c48536

See more details on using hashes here.

File details

Details for the file dbzero-0.4.0-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for dbzero-0.4.0-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 0ca65ed91374d5acd7fda032ed6540b6b9e1e4d9e7c6449f472118a54ac54d9f
MD5 78a51a8f8c696bca45ba6ceb61e9af8a
BLAKE2b-256 d2d978087e676eaa95568c73a06c8a1c41d018a5e65997bf9a81504d29412f63

See more details on using hashes here.

File details

Details for the file dbzero-0.4.0-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for dbzero-0.4.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 54f3a2cf55cff6332f722884bb4e83236dbe0a9cea485ceaf56388b21a91b6f1
MD5 76ddb2642948c13c43e317e0130f7336
BLAKE2b-256 af7650e528f28a862b81cbcc035a723909217c03cafc7a0f6f6c3d16f2217c2c

See more details on using hashes here.

File details

Details for the file dbzero-0.4.0-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: dbzero-0.4.0-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 25.1 MB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for dbzero-0.4.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 7cc012d928522c8d469e4699350d92b0a5c88ccd9b15c8e8a83416cc27a3c180
MD5 61a69c04302893ba85bffbdfe55f1cf8
BLAKE2b-256 f092a2e1812425bf9475b8d3dbdffb6c7552bd9a8e774498369448eb00d16d2c

See more details on using hashes here.

File details

Details for the file dbzero-0.4.0-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for dbzero-0.4.0-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 3f57f6148cafd4f874b2f666f6d2128cb21643cfe0394f74505e6357cba3accd
MD5 503f4d5651eb12b392305f0b96d89302
BLAKE2b-256 aab8a36a5c4be9075372c06dcee661b856e5b9d860ae2e6960d3020a0c693a9d

See more details on using hashes here.

File details

Details for the file dbzero-0.4.0-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for dbzero-0.4.0-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b6468e4a314a637840ca979dd6cce36e4e332bfd23c9181ef3c3bf1e52c09f1c
MD5 c0e2bd98ab60e201538d442d474eb7ea
BLAKE2b-256 57d118816be876964c5d9fe3355b6e32084298337d74fd64b63de7f85df231fe

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