Skip to main content

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.

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.6.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.6.0-cp314-cp314-macosx_11_0_arm64.whl (8.0 MB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

dbzero-0.6.0-cp313-cp313-win_amd64.whl (26.3 MB view details)

Uploaded CPython 3.13Windows x86-64

dbzero-0.6.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (9.6 MB view details)

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

dbzero-0.6.0-cp313-cp313-macosx_11_0_arm64.whl (8.0 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

dbzero-0.6.0-cp312-cp312-win_amd64.whl (26.3 MB view details)

Uploaded CPython 3.12Windows x86-64

dbzero-0.6.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (9.6 MB view details)

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

dbzero-0.6.0-cp312-cp312-macosx_11_0_arm64.whl (8.0 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

dbzero-0.6.0-cp311-cp311-win_amd64.whl (26.3 MB view details)

Uploaded CPython 3.11Windows x86-64

dbzero-0.6.0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (9.5 MB view details)

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

dbzero-0.6.0-cp311-cp311-macosx_11_0_arm64.whl (8.0 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

dbzero-0.6.0-cp310-cp310-win_amd64.whl (26.3 MB view details)

Uploaded CPython 3.10Windows x86-64

dbzero-0.6.0-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (9.5 MB view details)

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

dbzero-0.6.0-cp310-cp310-macosx_11_0_arm64.whl (8.0 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

dbzero-0.6.0-cp39-cp39-win_amd64.whl (26.3 MB view details)

Uploaded CPython 3.9Windows x86-64

dbzero-0.6.0-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (9.5 MB view details)

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

dbzero-0.6.0-cp39-cp39-macosx_11_0_arm64.whl (8.0 MB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

File details

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

File metadata

  • Download URL: dbzero-0.6.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.6.0.tar.gz
Algorithm Hash digest
SHA256 1eba2c2380b4179e87a60f8ad1d12222df5ba7f800ca16d7b72bd97b033914a3
MD5 bdb9764d0881a0fe8bcca08fabec516d
BLAKE2b-256 258d3e0d7daeaa4d2395ca88e6fc52a0a2d2f5a60a70abaff17ccf58b9271316

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dbzero-0.6.0-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 13c33c3a9138728762b1d5d607fcc2b883c84b0831eb91cf57e6a5337e2f10b4
MD5 4d26e967287ffaebdb2588fc5d10922a
BLAKE2b-256 679cbce80269f5d3bd393c56b64d7ec07362928e70f724abc1a52b1de7509526

See more details on using hashes here.

File details

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

File metadata

  • Download URL: dbzero-0.6.0-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 26.3 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.6.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 0f87520e949bac93963a74190dc39d99b8f2d401a5ad56cf15b32bf6a735e3b1
MD5 ba48e93f7c85c478e4c5b96a116ae77c
BLAKE2b-256 2b56bb71836dd123cad1108d29e14bb7e07056f62025cc121b730182072e9a04

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dbzero-0.6.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 170aefa7949e471c4253a678c480ed7923b3e882539ea9620c38acfbe74ac3bf
MD5 78d86a93c51edef9270f7dec662c93d5
BLAKE2b-256 88d40efa78684e6953109c0185109a1312286734329699215da182e8d8a49df1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dbzero-0.6.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 fe892dfacab0f310554d62f37e64bbe319cfb7ab73fe81f4e08386fb5845d595
MD5 c3100cd65970347818b09d48a98b8f44
BLAKE2b-256 9eec9c38689a92d993dd9839de2e807ff80dd474e3967de5da0af75dafeccd15

See more details on using hashes here.

File details

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

File metadata

  • Download URL: dbzero-0.6.0-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 26.3 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.6.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 ec1d9c00bd3890e07db6dbe3808b33e832f1d90223f04a91ecfd99f01817fea2
MD5 457156d7fdd99004e08a5cabc1ae36e6
BLAKE2b-256 91111bd11a4de2728b8c0f0faab7843118df16ba96bc5ac2ba99bb66339599fe

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dbzero-0.6.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 8d3cd628f26c2378b0d3009731e19f13ef1b1ea80977e43fad5dfdbc0f4f2a14
MD5 0a0ac6b013fc606f1ee32c0b9b022ca4
BLAKE2b-256 c7a69312e14c8376979114e16a8793a2bf362c47a87b45a6188536b0f77871d1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dbzero-0.6.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5ea85e9d1decc5d65b65f23bbd3e04b886e6564d5b2ff8ba02d128f338be3467
MD5 c4ecdafeb902943c24e40718b862e4e7
BLAKE2b-256 87e1fd9300dfcb638c1a750bb4bed60940b8c5fc80bdc29f45219eb456d34f9d

See more details on using hashes here.

File details

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

File metadata

  • Download URL: dbzero-0.6.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 26.3 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.6.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 217a98b07ee2e53c2429833dec6279dd0eae0706335b756872cd4d2a5ce8248d
MD5 1f1c3208fe8cc58dceaa570f1f8f0d4d
BLAKE2b-256 af137f45b4a483d8740876366f9d267fa938733a77f6301afda35b7bd59e2f85

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dbzero-0.6.0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 42dd01fdf7cbfd718b4cb115d9e784cb44355fe62d7f31702e03a630f6037172
MD5 39d2180a9dd3fc6ed1e4d8159faed81b
BLAKE2b-256 de00b0e87722572143168c143f8e7366858b84cac1d1fe14f762a83339b69e94

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dbzero-0.6.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1de2f4b9bf152ed92fdf281358cbc4308ff4046ca4097b500989de77e2229bfd
MD5 d946ea9de879781732b43438d4f6c87c
BLAKE2b-256 65eff36be8d2925ae3d886126fe14bd5150a11ea0223553ab7641ecd22e2b400

See more details on using hashes here.

File details

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

File metadata

  • Download URL: dbzero-0.6.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 26.3 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.6.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 c7cdc14a43227884d07ba0f37894050750eceff8bf38f817280227df7dec72d2
MD5 ed363d01bc3e4230dae43f08f3ffee3a
BLAKE2b-256 092e077160d4dc55fc1eb36734ac29fe5cb4eec50e739c2eb1f17673e4d9bd0a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dbzero-0.6.0-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 ba1603d7937b3cccdcab2c21e455f3e96e7958286c9052aaaed12bc4966e1353
MD5 6a74d7bc364f7dc58aa8a134e786697e
BLAKE2b-256 cf8d02e87fdcf53249cf9146a4e5d45fcadcec627decab4de51d90e873c865a8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dbzero-0.6.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b750746e54536c8ea4931129c524aa91ff91ed1b3587e60b8b5fc9d3e367873d
MD5 9cbdf267a3ab4c3903ae92d5d9ee21b1
BLAKE2b-256 51b69bd77d09472676f3704cf4f732444939ba5b809753b5f97e420a0b5a13d3

See more details on using hashes here.

File details

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

File metadata

  • Download URL: dbzero-0.6.0-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 26.3 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.6.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 84a0556ddff0ac2073d17b5f85d065f858441907ae6994f4a3dab701554b1436
MD5 6e6ab55c3f1ce7e2f365c9beaf79dbb0
BLAKE2b-256 3b72cb68cb3adac715b38c504a9870fbe95c877941931bbc2de7d13e23c36192

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dbzero-0.6.0-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 ff792f3cb5f3c546aa8e6d4d183d0282cbf1da02c2b18a272da74aba9b67f141
MD5 1baf9c7cffb9db39c08004d610092690
BLAKE2b-256 5c3dbfc3d98db820f4f526609b32891a5c53e1350e054c0f72001eb0fce96723

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dbzero-0.6.0-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 57ac2d4d4acfce99d494fc2a0ee15abbb4e814cb1c1d65172b802aaff60c65b6
MD5 3af6d4c640ea86b7c72558f80980d2fd
BLAKE2b-256 87e78897e49b904b7156914007884d3f6fabdfaff813eaed9c5976601f4bf971

See more details on using hashes here.

Release history Release notifications | RSS feed

0.6.2

17 files

0.6.1

17 files

This release

0.6.0 This release

17 files

0.5.2

17 files

0.5.1

17 files

0.5.0

17 files

0.4.2

17 files

0.4.1

17 files

0.4.0

17 files

0.3.7

17 files

0.3.6

17 files

0.3.5

17 files

0.3.4

17 files

0.3.3

17 files

0.3.2

17 files

0.3.0

17 files

0.2.4

17 files

0.2.3

17 files

0.2.2

17 files

0.2.1

17 files

0.1.12

17 files

0.1.11

17 files

0.1.10

17 files

0.1.9

17 files

0.1.8

17 files

0.1.7

17 files

0.1.6

18 files

0.1.5

18 files

0.1.4

18 files

0.1.3

18 files

0.1.2

18 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page