Skip to main content

Build pypi versions license

Electric Screaming Don Quixote EGO

Dreaming Electric Sheep

"The cloud has a head and two pairs of legs. It resembles a sheep."

Dreaming Electric Sheep is an ultra-high-performance, bare-metal asynchronous ASGI web framework for modern CPython (3.13–3.14+). Born as an aggressively optimized evolution of BlackSheep, it discards legacy runtime compromises (such as PyPy compatibility shims) to squeeze maximum throughput, microsecond-level latency, and direct C/C++/CUDA interoperability from standard CPython.


🔮 Key Highlights & Low-Level Architectural Features

1. 👾 PEP 590 Vectorcall Direct C-API Dispatch

All handler, middleware, and route dispatching bypasses Python *args tuple and **kwargs dict allocations. Handlers are invoked using PyObject_Vectorcall passing contiguous pointer arrays directly in CPU registers.

2. ⚓ Pure cdef class Extension Types (Zero __dict__ Overhead)

Request, Response, RouteMatch, Header, and Scope are pure Cython extension classes. All fields reside at fixed C-level struct offsets (pointer offset), eliminating dictionary lookups in the hot path.

3. 🌊 C-Level Object Freelists & Fast Pools

Request and Response instances are managed through dedicated C freelists (acquire_request, release_request, acquire_response, release_response), recycling objects across HTTP lifecycles and reducing Python heap pressure to near zero.

4. 🚄 SIMD Vectorization (AVX2 / SSE4.2 / ARM NEON / SWAR)

Custom C SIMD kernels accelerate:

  • CRLF and header boundary scanning (\r\n\r\n).
  • URL path separator tokenization (/).
  • ASCII header validation with fallback SWAR (SIMD Within A Register).

5. 🧊 In-Memory Request Scratchpad Arenas

Per-request linear arenas (scratchpad.h/.c) allow $\mathcal{O}(1)$ allocation and instant bulk resets without invoking malloc() or free() during request lifecycle processing.

6. 💎 Zero-Copy ASGI Ingestion

Direct bytes-like memoryview and buffer passing from server transport layers (Granian, Uvicorn) directly into msgspec decoders without intermediate string copies or heap duplications.

7. 🔋 Pre-Compiled Type Decoders & Fast DI Bindings

Endpoint payload decoders (msgspec.json.Decoder(type=...)) and controller activation paths are compiled ahead-of-time during application startup, eradicating runtime reflection.


🐍 CPython & C / C++ / CUDA Native Interoperability

[!IMPORTANT] Why CPython exclusively? Dreaming Electric Sheep purposefully removes PyPy and legacy Python support to target modern CPython C-APIs (3.13, 3.14+). If your workloads utilize:

  • C / C++ Native Extensions (e.g., custom Cython, pybind11, nanobind)
  • CUDA / TensorRT / PyTorch / ONNX Runtime for high-throughput AI/ML serving
  • SIMD hardware intrinsics (AVX2, AVX-512, NEON)

CPython provides the tightest possible low-overhead binding without JIT tracing overhead or foreign function interface (FFI) penalties.


⭐ Installation

pip install dreaming-electric-sheep

For maximum throughput and SIMD speed, install with httptools and uvloop:

pip install dreaming-electric-sheep httptools uvloop uvicorn granian msgspec

⚡ Quick Start & msgspec Integration

Dreaming Electric Sheep provides first-class, zero-overhead support for msgspec.Struct, dataclasses, and pydantic models with startup-cached pre-compiled decoders.

from dreaming_electric_sheep import Application, get, post
from msgspec import Struct

# Fast, schema-validated msgspec Struct
class CreateItemInput(Struct):
    name: str
    price: float
    tags: list[str] = []

app = Application()

@get("/hello")
async def hello():
    return {"message": "Do electric sheep dream of high throughput?"}

@post("/api/items")
async def create_item(data: CreateItemInput):
    # Bound automatically with zero-copy buffer ingestion
    return {"status": "created", "item": data}

📙 OpenAPI 3.0, Swagger UI, Scalar & ReDoc

Dreaming Electric Sheep automatically generates OpenAPI 3.0 documentation from type annotations (msgspec.Struct, dataclasses, Pydantic, Python typing) and docstrings. It includes built-in support for Swagger UI, Scalar, and ReDoc.

from dreaming_electric_sheep import Application, get, post
from dreaming_electric_sheep.server.openapi.v3 import OpenAPIHandler
from dreaming_electric_sheep.server.openapi.ui import (
    SwaggerUIProvider,
    ScalarUIProvider,
    ReDocUIProvider,
)
from openapidocs.v3 import Info
from msgspec import Struct

app = Application()

# Configure OpenAPI with interactive documentation UIs
docs = OpenAPIHandler(
    info=Info(title="Dreaming Electric Sheep API", version="1.0.0"),
    ui_providers=[
        SwaggerUIProvider("/docs"),    # Interactive Swagger UI at /docs
        ScalarUIProvider("/scalar"),   # Modern Scalar UI at /scalar
        ReDocUIProvider("/redoc"),     # ReDoc at /redoc
    ],
)
docs.bind_app(app)

class Sheep(Struct):
    id: int
    name: str
    voltage: float

@get("/api/sheep/:id")
async def get_sheep(id: int) -> Sheep:
    """
    Retrieve an Electric Sheep by ID.
    """
    return Sheep(id=id, name="Cloud Sheep", voltage=220.0)

Now navigate in your browser:

  • Swagger UI: http://localhost:8000/docs
  • Scalar UI: http://localhost:8000/scalar
  • ReDoc: http://localhost:8000/redoc
  • Raw OpenAPI JSON Spec: http://localhost:8000/openapi.json

🔥 High-Speed Serialization: JSON & MessagePack

Take full advantage of pre-compiled type decoders and multiple wire formats:

from dreaming_electric_sheep import Application, FromJSON, FromMsgPack, FromQuery, post
from msgspec import Struct

class SensorPayload(Struct):
    device_id: str
    readings: list[float]

app = Application()

# JSON payload with precompiled type decoder
@post("/api/sensors/json")
async def ingest_json(data: FromJSON[SensorPayload]):
    return {"received_readings": len(data.value.readings)}

# Binary MessagePack payload (ultra-fast binary format)
@post("/api/sensors/msgpack")
async def ingest_msgpack(data: FromMsgPack[SensorPayload]):
    return {"received_readings": len(data.value.readings)}

🛠️ Developer CLI (des)

The des CLI is the default, first-class interface for development, inspection, and operations.

Quick Cheat Sheet

des new demo -t api          # Scaffold REST API project (Scalar UI default)
cd demo && des dev           # Start development server with auto-reload (http://127.0.0.1:8000)
des run app:app --workers 4  # Start production server (Granian first, Uvicorn fallback)
des check                    # Validate routes, compiled binders, and configuration
des routes                   # Inspect compiled radix routing table
des why GET /items/1         # Explain route match, parameters, binders, and pipeline
des doctor                   # Inspect C-core, SIMD ISA, and runtime environment health

OpenAPI Documentation Model

There is one OpenAPI 3.0 specification served at /openapi.json. Scalar, Swagger UI, and ReDoc are renderers reading that same spec:

# Scaffold with your preferred UI renderer
des new demo -t api --docs scalar   # Scalar (default) -> http://127.0.0.1:8000/docs
des new demo -t api --docs swagger  # Swagger UI      -> http://127.0.0.1:8000/docs
des new demo -t api --docs redoc    # ReDoc           -> http://127.0.0.1:8000/docs

Validation Errors (FastAPI-Compatible HTTP 422)

Request validation produces standard, structured JSON errors with explicit field locations:

{
  "detail": [
    {
      "loc": ["body", "price"],
      "msg": "Expected `float`, got `str`",
      "type": "validation_error"
    }
  ]
}

Server Support & Migration

  • Granian (Default): Runs via high-performance RSGI protocol by default (des run / des dev), eliminating ASGI ceremony, with --interface asgi supported.
  • Uvicorn: Supported portable ASGI fallback (uvicorn app:app --reload).
  • Docs & Migration: See FastAPI to DES Cheat Sheet and 15-Minute Quickstart Tutorial.

🎯 Controllers & Dependency Injection

Dreaming Electric Sheep includes built-in dependency injection with pre-bound fast dispatching:

from dreaming_electric_sheep import Application
from dreaming_electric_sheep.server.controllers import Controller, get, post

class DatabaseService:
    def get_stats(self) -> dict:
        return {"active_connections": 42}

app = Application()
app.services.add_singleton(DatabaseService)

class StatusController(Controller):
    @get("/api/status")
    def get_status(self, db: DatabaseService):
        return {"status": "ok", "db": db.get_stats()}

🧠 Benchmarks & Performance Comparison

Localhost framework overhead measured against a shared in-memory fixture (not the TechEmpower Framework Benchmarks; no Postgres). Numbers represent the median of 3 independent runs (5s duration each, total 15s sampling per route, 50 concurrency keep-alive connections via oha on localhost, 1 worker process).

DES RSGI beats DES ASGI, and beats a raw Granian ASGI script on this box, and stays under raw RSGI.

Table A: Ceiling Comparison (Apples-to-Apples msgspec Encoder)

Measures framework tax against raw server ceilings when all targets encode JSON per request using msgspec.json.encode and run with optimize_gc=False.

Framework Plaintext (req/s) JSON (req/s) Mem get (req/s) Mem get ×20 (req/s) HTML fortunes (req/s) Mem update ×20 (req/s) Server / Runtime
Granian (Raw RSGI) 180,418 134,066 128,959 66,668 41,258 56,284 Granian (Raw RSGI, 1 worker, msgspec)
Granian (Raw ASGI) 102,600 97,707 96,067 57,577 36,136 48,356 Granian (Raw ASGI, 1 worker, msgspec)
Dreaming Electric Sheep (RSGI) 110,538 103,517 99,210 52,074 34,669 43,834 Granian (RSGI, 1 worker, msgspec)
Dreaming Electric Sheep (ASGI) 84,070 84,287 87,052 47,839 33,576 40,628 Granian (ASGI, 1 worker, msgspec)
Uvicorn (Raw ASGI) 65,440 63,618 61,350 39,702 28,271 35,110 Uvicorn (Raw ASGI, 1 worker, msgspec)

Table B: Default Stack Comparison (Stock Helpers Out-of-the-Box)

Measures out-of-the-box performance using each framework's stock response/serialization helpers (e.g. DES json()/html()/text(), Emmett json.dumps, Sanic json(), Robyn jsonify, Litestar msgspec default, FastAPI JSONResponse, Flask jsonify/Response, Django JsonResponse/HttpResponse).

Framework Plaintext (req/s) JSON (req/s) Mem get (req/s) Mem get ×20 (req/s) HTML fortunes (req/s) Mem update ×20 (req/s) Server / Runtime
Dreaming Electric Sheep (RSGI) 111,200 107,928 101,460 52,352 34,414 42,756 Granian (RSGI, 1 worker, stock helpers)
Dreaming Electric Sheep (ASGI) 87,704 86,172 84,000 45,786 27,443 35,651 Granian (ASGI, 1 worker, stock helpers)
Emmett 52,958 54,042 54,335 29,730 27,101 25,937 Granian (RSGI/ASGI, 1 worker)
Sanic 49,087 44,389 42,072 24,623 21,527 22,876 Sanic (1 worker)
Robyn 32,747 29,125 28,147 16,169 15,839 16,111 Robyn Rust (1 worker process)
Litestar 26,852 33,040 31,644 20,380 17,956 19,849 Granian (ASGI, 1 worker)
FastAPI 25,289 22,176 18,999 6,180 12,872 6,977 Granian (ASGI, 1 worker)
Flask 25,815 22,010 20,465 7,307 14,635 7,288 Granian (WSGI, 1 worker)
Django 25,774 22,160 19,655 7,380 14,582 6,576 Granian (WSGI, 1 worker, stripped middleware)

Environment & System Specifications:

  • CPU / OS: x86_64 Linux (CachyOS Kernel 7.2), SIMD ISA: AVX2
  • Runtimes: CPython 3.14.7 | Granian 2.8.2 | Uvicorn 0.34.2 | Emmett 2.8.1 | Sanic 25.12.1 | Robyn 0.88.0 | Litestar 2.24.0 | FastAPI 0.141.1 | Flask 3.1.1 | Django 6.1
  • Load Tester: oha 1.16.0 (Rust)

To reproduce on your machine:

pip install -r perf/requirements-bench.txt
./perf/compare/run.sh

made with love.png by EduLoboM

Download files

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

Source Distribution

dreaming_electric_sheep-1.1.0.tar.gz (1.9 MB view details)

Uploaded Source

Built Distributions

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

dreaming_electric_sheep-1.1.0-cp314-cp314-win_arm64.whl (2.5 MB view details)

Uploaded CPython 3.14Windows ARM64

dreaming_electric_sheep-1.1.0-cp314-cp314-win_amd64.whl (2.6 MB view details)

Uploaded CPython 3.14Windows x86-64

dreaming_electric_sheep-1.1.0-cp314-cp314-musllinux_1_2_x86_64.whl (7.4 MB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ x86-64

dreaming_electric_sheep-1.1.0-cp314-cp314-musllinux_1_2_aarch64.whl (7.4 MB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ ARM64

dreaming_electric_sheep-1.1.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (7.5 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

dreaming_electric_sheep-1.1.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (7.5 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ ARM64manylinux: glibc 2.28+ ARM64

dreaming_electric_sheep-1.1.0-cp314-cp314-macosx_10_15_universal2.whl (3.4 MB view details)

Uploaded CPython 3.14macOS 10.15+ universal2 (ARM64, x86-64)

dreaming_electric_sheep-1.1.0-cp313-cp313-win_arm64.whl (2.5 MB view details)

Uploaded CPython 3.13Windows ARM64

dreaming_electric_sheep-1.1.0-cp313-cp313-win_amd64.whl (2.6 MB view details)

Uploaded CPython 3.13Windows x86-64

dreaming_electric_sheep-1.1.0-cp313-cp313-musllinux_1_2_x86_64.whl (7.4 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

dreaming_electric_sheep-1.1.0-cp313-cp313-musllinux_1_2_aarch64.whl (7.3 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ ARM64

dreaming_electric_sheep-1.1.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (7.6 MB view details)

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

dreaming_electric_sheep-1.1.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (7.5 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64manylinux: glibc 2.28+ ARM64

dreaming_electric_sheep-1.1.0-cp313-cp313-macosx_10_13_universal2.whl (3.4 MB view details)

Uploaded CPython 3.13macOS 10.13+ universal2 (ARM64, x86-64)

File details

Details for the file dreaming_electric_sheep-1.1.0.tar.gz.

File metadata

  • Download URL: dreaming_electric_sheep-1.1.0.tar.gz
  • Upload date:
  • Size: 1.9 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.13.15

File hashes

Hashes for dreaming_electric_sheep-1.1.0.tar.gz
Algorithm Hash digest
SHA256 d3555fbc70cee2aa8db9720edc028009e124b5b1b42c58cc0720eeb8576901df
MD5 c4cd1c7774d0590e3340e2391f1b2093
BLAKE2b-256 d967ce1904a2eede9ba8452e49de1c794e87f14579b6a1e88204885617c7a500

See more details on using hashes here.

File details

Details for the file dreaming_electric_sheep-1.1.0-cp314-cp314-win_arm64.whl.

File metadata

File hashes

Hashes for dreaming_electric_sheep-1.1.0-cp314-cp314-win_arm64.whl
Algorithm Hash digest
SHA256 5e45f0f75cf40c34bbdafa4203235622eab8a20f490138fb5c8ca5d1fa71fe95
MD5 3d37d82e8e371a9f6760f1adbd24095e
BLAKE2b-256 5a00dbb6b98c83ab0e20276e14aa19d17248cf239f4a188ac4613c0f0729ba0d

See more details on using hashes here.

File details

Details for the file dreaming_electric_sheep-1.1.0-cp314-cp314-win_amd64.whl.

File metadata

File hashes

Hashes for dreaming_electric_sheep-1.1.0-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 ee33f026d4a44629dcf27977a7a6b45680af5be447839051cd86e0a132ef9136
MD5 6ae459a96b3c2c571bcb67a3252621fe
BLAKE2b-256 f4d291a18cff03a4766407730f914ff5f8820ad008442fc7c153fdea922e57aa

See more details on using hashes here.

File details

Details for the file dreaming_electric_sheep-1.1.0-cp314-cp314-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for dreaming_electric_sheep-1.1.0-cp314-cp314-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 7a9aee0f9696075efcb10723bc197bf51a2c63144c27f246f1a4b9d19ffba6d3
MD5 e63dbf32286c37701d42e7513915055c
BLAKE2b-256 349cf83ed127be84fc277ac87aaf1a584ce49511902db903a0dfe4db5370087d

See more details on using hashes here.

File details

Details for the file dreaming_electric_sheep-1.1.0-cp314-cp314-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for dreaming_electric_sheep-1.1.0-cp314-cp314-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 7449beb0cb6b50b87f535a0b9fae36d89c2da0d9f83114c3156275144adeca22
MD5 a5e0219eb64588c24c4d1e1ef5d6c54c
BLAKE2b-256 86ff53287fe0794a59f941b5c840f268c3f00d17241feb1bd3a995f45631dc97

See more details on using hashes here.

File details

Details for the file dreaming_electric_sheep-1.1.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for dreaming_electric_sheep-1.1.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 778365924a7837e044859ffc7fc7d9116de6ea4ca22d69d3b863f8b3db467125
MD5 383038c13562c66ddd4c87232e5fd724
BLAKE2b-256 dc67e7128b5c6d60e44630a209e442191988d0c0776f3918e6c3a5666bd22c8b

See more details on using hashes here.

File details

Details for the file dreaming_electric_sheep-1.1.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for dreaming_electric_sheep-1.1.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 ae9c0fa56ae9455214d5278fe552ede2fd0aba6c7637abaaa7b1a074b69f834d
MD5 91a47fcc259ca44f4cceb503343fdcd1
BLAKE2b-256 f0cb8a427de03ebec0834e16dc9788782c02b40ffaba7f19e7329f94b3f1fdef

See more details on using hashes here.

File details

Details for the file dreaming_electric_sheep-1.1.0-cp314-cp314-macosx_10_15_universal2.whl.

File metadata

File hashes

Hashes for dreaming_electric_sheep-1.1.0-cp314-cp314-macosx_10_15_universal2.whl
Algorithm Hash digest
SHA256 e55d6df6b8e64670d70dc4edad655e276e50095327e1f9f88007224747d531d9
MD5 41170979f0c1f97d9f8e8c47637e58bf
BLAKE2b-256 fdd9803f719e12ce57d6c842040a546a2513ca6c77d959c8e7cbeef48d12567d

See more details on using hashes here.

File details

Details for the file dreaming_electric_sheep-1.1.0-cp313-cp313-win_arm64.whl.

File metadata

File hashes

Hashes for dreaming_electric_sheep-1.1.0-cp313-cp313-win_arm64.whl
Algorithm Hash digest
SHA256 2105eb81e1adc9f44b736695ae78bbb12b30e1c166dbdb0eda31620e00131f7d
MD5 442c5cdfc3f96279837248eff0086fbb
BLAKE2b-256 79a59b8a235df1f72f63ed6253f163d1d5e2998250eb4813d141f787c68cdf4c

See more details on using hashes here.

File details

Details for the file dreaming_electric_sheep-1.1.0-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for dreaming_electric_sheep-1.1.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 bb05368db9aa392cc62badb25d1d53379e53ba5cdf06e80d161329ac6a116a70
MD5 f6416908c4b7d4688ba9f4aa64434a8f
BLAKE2b-256 1f96d6b7109df0fcf703ba0b8ec83df70a14d7e294d20cd10492de1c001a3850

See more details on using hashes here.

File details

Details for the file dreaming_electric_sheep-1.1.0-cp313-cp313-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for dreaming_electric_sheep-1.1.0-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 34a471630b68a469c16e6486149032760dab956f0ecbf972e1a1773e4d8efeec
MD5 478cd7fccca994aebff72b001c1f91c3
BLAKE2b-256 a6b7f212edcaeebd26e3631b57ab48c70d11050544b072b5643e063bc5290f2f

See more details on using hashes here.

File details

Details for the file dreaming_electric_sheep-1.1.0-cp313-cp313-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for dreaming_electric_sheep-1.1.0-cp313-cp313-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 cf2c2f94ef1278020bb35d92fc0809bc98afc24a71d51284272d0f9975f48ca7
MD5 767ce23f4dd8a2466b1b65d08b7e160a
BLAKE2b-256 bf0cceed190665eefec47980b9b76aec9b0f889aad5247ae481410965ce8e773

See more details on using hashes here.

File details

Details for the file dreaming_electric_sheep-1.1.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for dreaming_electric_sheep-1.1.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 468d6dfe0ba81984ee1f0fad3cc246804d9658ef0dea93a9dec0e01f125991d0
MD5 e7df3c3960c2f058640ed234610fd8fa
BLAKE2b-256 f6b3d7b0da42ac907d7707625eb15c10bc39b22366f96cfe0a04b273763a3fd2

See more details on using hashes here.

File details

Details for the file dreaming_electric_sheep-1.1.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for dreaming_electric_sheep-1.1.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 6dadf59d83dca97a617173bfff3d317c91e1c7411cbac8e91bdd8f2cec13d8bb
MD5 415a1eeee917900935c8b8223d0e43d3
BLAKE2b-256 078e6ef71d6f523c65c51f4c41c8b7fc853e256eb711a6ee6b798d334fca884b

See more details on using hashes here.

File details

Details for the file dreaming_electric_sheep-1.1.0-cp313-cp313-macosx_10_13_universal2.whl.

File metadata

File hashes

Hashes for dreaming_electric_sheep-1.1.0-cp313-cp313-macosx_10_13_universal2.whl
Algorithm Hash digest
SHA256 a61b93ca2df39316814bef76877b529e801f18c5ae55057cda7b44b1ae0b8f89
MD5 938f7d5560c9d8cc3ee38db8d588bf59
BLAKE2b-256 d3eb315488d3a369b30da5440ad2f6c3616ab130775d2b14ea9efcc482015651

See more details on using hashes here.

Release history Release notifications | RSS feed

2.6.3

9 files

1.1.1

15 files

This release

1.1.0 This release

15 files

1.0.0

15 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