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.1.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.1-cp314-cp314-macosx_11_0_arm64.whl (8.4 MB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

dbzero-0.6.1-cp313-cp313-win_amd64.whl (27.0 MB view details)

Uploaded CPython 3.13Windows x86-64

dbzero-0.6.1-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (9.9 MB view details)

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

dbzero-0.6.1-cp313-cp313-macosx_11_0_arm64.whl (8.4 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

dbzero-0.6.1-cp312-cp312-win_amd64.whl (27.0 MB view details)

Uploaded CPython 3.12Windows x86-64

dbzero-0.6.1-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (9.9 MB view details)

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

dbzero-0.6.1-cp312-cp312-macosx_11_0_arm64.whl (8.4 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

dbzero-0.6.1-cp311-cp311-win_amd64.whl (27.0 MB view details)

Uploaded CPython 3.11Windows x86-64

dbzero-0.6.1-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (9.9 MB view details)

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

dbzero-0.6.1-cp311-cp311-macosx_11_0_arm64.whl (8.4 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

dbzero-0.6.1-cp310-cp310-win_amd64.whl (27.0 MB view details)

Uploaded CPython 3.10Windows x86-64

dbzero-0.6.1-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (9.9 MB view details)

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

dbzero-0.6.1-cp310-cp310-macosx_11_0_arm64.whl (8.4 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

dbzero-0.6.1-cp39-cp39-win_amd64.whl (27.0 MB view details)

Uploaded CPython 3.9Windows x86-64

dbzero-0.6.1-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (9.9 MB view details)

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

dbzero-0.6.1-cp39-cp39-macosx_11_0_arm64.whl (8.4 MB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

File details

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

File metadata

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

File hashes

Hashes for dbzero-0.6.1.tar.gz
Algorithm Hash digest
SHA256 cee45224f6e6b92cc0c9f4f01007fb5c880ee27a0866bcf65a2533215f2bc6a8
MD5 6e1b8f306efe2b42f639fb733712b308
BLAKE2b-256 dc72f72e52f29964e37a39927048a9e119adcc22c889fb5c7524e039b9d77016

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dbzero-0.6.1-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7f077337e209827e6e0c3034eed451152b4ef971d63b3e3ad3230db76ac496bf
MD5 fc70480cd114f4181e7c11d045d8a956
BLAKE2b-256 be1f2fd19f68f33e8de5f28e15b53866d8760f963e6717982508f2af909c38fd

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for dbzero-0.6.1-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 fbc6c455b05f285c887146ea221654623d31197cff6720d8fea7e277650cadc1
MD5 ac45ea3910a507aef6b46591c739861c
BLAKE2b-256 197aba871eb8ee641aa90d41aad064c4edea0b2dfba61b4ae816b577eecf77ae

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dbzero-0.6.1-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 8aca10fa87babb71dabd9f314662a527c711f6e188868c8f33c1c12392ed271b
MD5 a98edf848f2135b014a7c135208b8e14
BLAKE2b-256 b3ff6f40616c8381e14bf3b32f413b17141a1711498cd5ac8b3e0538c961ebc7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dbzero-0.6.1-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c8b7200f16f2c0cf4289a16e9fc1f882b6f2f33e2648c47246ab9f7ea915d59d
MD5 41949b5ef3cf25b806e69d559c52458f
BLAKE2b-256 87a1f8a5db9905c2270a1980451fbf0b8ac9cb464568d24f735fa99a8b0a90c7

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for dbzero-0.6.1-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 6567317cdd714c9b77209b7fece2c1311bf94ab0e4848807b615343df50789a9
MD5 a5e1df58aa348f8ecc53957e4e1363e4
BLAKE2b-256 50be22db59b890566243c508bf415660a6342966eeea8bc52febefac1c5973e2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dbzero-0.6.1-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 68a3854d0b7b5d6cbb47fba9b9d85bcfbe1ce321944d8dfaeadfa1bba1741ee6
MD5 76f9a53d57501fc23cf459cd48fb02bf
BLAKE2b-256 bf505df524e86188f51c3667fdc00ed51ccde464a21e359fb9a5fa00c032a152

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dbzero-0.6.1-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f5d195e41a5b198a963c37e5dbf136c24c36d96306ffa69f15813a6732b9f1bd
MD5 286a98948ec6a392b5fdfd5433491d3c
BLAKE2b-256 343d90c484a2e5f70148b2ada7c97ac79c67e012a9ac4435c150abcc9521d6cf

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for dbzero-0.6.1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 f68da666b15c6e6f54a4377a0c8ba26172d83ccd60ea1d958050230c11ef8969
MD5 07fd9a18e67427e1ad8f0a8cd7c8cafe
BLAKE2b-256 149db83c59205bb6445a6943e27a5da53b5f49aeceb88e3c3e7233b34ab40741

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dbzero-0.6.1-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 08f2ea55776143f064d64147819f4cb0d6a23665605066f96c1cfc11162a0726
MD5 7b7729e8a94c9e808fcaf10c363da715
BLAKE2b-256 30f4dc1b6aaa41a77d7f36bd18de2d9b795471db1b55a6154fc09f0847aa9a64

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dbzero-0.6.1-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 0d6c5242beecf30d26034e69d9becca71281b932b2d59e9f36a121c04e2dbc05
MD5 ff04a4e0ccfaf95c029f5aaca6beb4d3
BLAKE2b-256 425e16fd40c0b4b8fff77121b3b5810e428c19b92604ef01cb5635579a309dce

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for dbzero-0.6.1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 00d82ba7593d43ba15b9ce23e702c14a90d6c1a28d752ce55f2e634fc4ce5ebc
MD5 18dd20f95913c93692a43675b403c13d
BLAKE2b-256 2fba4dabca762ca867cfd6927a83b945e7c1d500372ddc3dccb718faef447aae

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dbzero-0.6.1-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 ab5aace4d72c0fa4fc21ccbd2e2adfba33227d0eae137d59dcf7e67000afea65
MD5 8f821e2859b832e4c1a450c6e74044e9
BLAKE2b-256 a5c30af6dd47a23914755c4fac7567695e1015f5815c3a6ea3fa329899ae9b1f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dbzero-0.6.1-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 649bd26c82e3899f8833a42cdaf1ee4b1877b84e8618a3d51212675b40a5b437
MD5 8ebfe103b87e464c36304772bfc49da1
BLAKE2b-256 48069b91f4d578f0a7fac7fbd1b2bb1dd9286a15004da4701f11ce5632e33377

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for dbzero-0.6.1-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 043e585ec93a0116e02a5702214040e7289ea1129b8e28b277b514c9f92f4873
MD5 d0f06d8aa778d1a81e092c4cd99c4b0a
BLAKE2b-256 780d08a3475c61103a8668d51b88ebd5f662e55fe232376b9ab97926777d6393

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dbzero-0.6.1-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 b625b38e54b20d85348852b137a8c1422d0d30b1df2dabebc7a2543e3ede6b77
MD5 446bc58b596d4fb42b7ec5c47ee3dbe7
BLAKE2b-256 7f97b82923741c3d4bbbf3bd5871d76b2308754f87c0e9572c70c68e2c9d67ea

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dbzero-0.6.1-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 56ffea6cc0f40940ad8f888fcfca4fbf2abe2dcb4453883c7552eca29d28ef70
MD5 6457a7ba767c091a5715151a032d95c9
BLAKE2b-256 b22dee86896f73b50e1f0f49d081ecae1751c8bd58c9a134651ad7684bb2129c

See more details on using hashes here.

Release history Release notifications | RSS feed

0.6.2

17 files

This release

0.6.1 This release

17 files

0.6.0

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