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.


🔮 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}

⚓ 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 dynamically dispatch at runtime:

  • CRLF and header boundary scanning (\r\n\r\n).
  • URL path separator tokenization (/).
  • ASCII header validation with fallback scalar dispatch.

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 memoryview and buffer passing (await request.read_buffer()) from server transport layers into msgspec decoders or PyTorch tensors (torch.frombuffer) 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 targets 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, SSE2, NEON)

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


📙 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 5 independent runs (5s duration each, total 25s sampling per route, 50 concurrency keep-alive connections via oha on localhost, 1 worker process).

DES RSGI beats DES ASGI, stays close to Granian raw ceilings, and provides ultra-low latency across all routes.

🧠 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) 183,557 144,815 146,837 74,404 43,639 60,262 Granian (Raw RSGI, 1 worker, msgspec)
Granian (Raw ASGI) 117,158 115,134 114,108 62,342 39,031 51,393 Granian (Raw ASGI, 1 worker, msgspec)
Dreaming Electric Sheep (RSGI) 126,681 122,480 111,741 57,396 38,682 47,968 Granian (RSGI, 1 worker, msgspec)
Dreaming Electric Sheep (ASGI) 102,121 100,048 95,956 50,587 35,781 42,548 Granian (ASGI, 1 worker, msgspec)
Uvicorn (Raw ASGI) 66,784 67,646 65,406 43,118 30,661 37,882 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) 122,827 122,801 113,812 58,352 39,371 46,949 Granian (RSGI, 1 worker, stock helpers)
Dreaming Electric Sheep (ASGI) 101,789 100,210 96,536 51,355 36,030 44,383 Granian (ASGI, 1 worker, stock helpers)
Emmett 73,601 67,087 64,462 34,395 31,157 30,485 Granian (RSGI/ASGI, 1 worker)
Sanic 53,755 48,822 47,146 27,553 24,247 25,321 Sanic (1 worker)
Litestar 41,183 39,855 37,963 25,536 20,519 23,324 Granian (ASGI, 1 worker)
Robyn 37,028 34,184 32,938 22,649 20,987 21,004 Robyn Rust (1 worker process)
FastAPI 30,152 25,285 23,529 8,655 16,881 8,329 Granian (ASGI, 1 worker)
Django 29,684 25,131 23,141 8,513 16,544 7,992 Granian (WSGI, 1 worker, stripped middleware)
Flask 29,484 25,239 23,431 8,623 16,748 8,311 Granian (WSGI, 1 worker)

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

Uploaded CPython 3.14Windows ARM64

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

Uploaded CPython 3.14Windows x86-64

dreaming_electric_sheep-1.1.1-cp314-cp314-musllinux_1_2_x86_64.whl (7.5 MB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ x86-64

dreaming_electric_sheep-1.1.1-cp314-cp314-musllinux_1_2_aarch64.whl (7.5 MB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ ARM64

dreaming_electric_sheep-1.1.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (7.7 MB view details)

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

dreaming_electric_sheep-1.1.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (7.6 MB view details)

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

dreaming_electric_sheep-1.1.1-cp314-cp314-macosx_10_15_universal2.whl (3.5 MB view details)

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

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

Uploaded CPython 3.13Windows ARM64

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

Uploaded CPython 3.13Windows x86-64

dreaming_electric_sheep-1.1.1-cp313-cp313-musllinux_1_2_x86_64.whl (7.5 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

dreaming_electric_sheep-1.1.1-cp313-cp313-musllinux_1_2_aarch64.whl (7.4 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ ARM64

dreaming_electric_sheep-1.1.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (7.7 MB view details)

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

dreaming_electric_sheep-1.1.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (7.6 MB view details)

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

dreaming_electric_sheep-1.1.1-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.1.tar.gz.

File metadata

  • Download URL: dreaming_electric_sheep-1.1.1.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.1.tar.gz
Algorithm Hash digest
SHA256 321645a71de1f82a0e090fda93324d3bc9301df9c40373025b9891db7e589d9e
MD5 5361ff723c66f98ed91ade32e898d870
BLAKE2b-256 ea02434ee586993439c99a4017157f037d3f420b2a354726da7dff0db34cee5a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dreaming_electric_sheep-1.1.1-cp314-cp314-win_arm64.whl
Algorithm Hash digest
SHA256 243d2f11129b3fd02d7aedd63bd2ac495aae9df94e60d68848442fcff0d94f27
MD5 3fd4f2ad683c8add835d99614c2852e6
BLAKE2b-256 b9a66c9e9dea3246ad5da711d379a8c70e4f6be354034b9f9cf890230e3540ef

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dreaming_electric_sheep-1.1.1-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 d6c8dafa70d862c8b619af36d8d903e8ae518cbccef3673680201b335126feb6
MD5 5945b84eb1b1106ff7a6c97dd755a690
BLAKE2b-256 bdbbebf22100767c96235d957fe585fc1059790340f31fe0d634ebbe5a4d6574

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dreaming_electric_sheep-1.1.1-cp314-cp314-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 a5621e256c0848bded429e62c5f5caee5aa7c5f8074cd1ca4b3faad5cdf699dd
MD5 ee733ccea09f2d83d11c5e5f205ef371
BLAKE2b-256 f9145c6fbe599d8df4b18849d9f60ca16530bcfae67112755bfe45ae431eeea4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dreaming_electric_sheep-1.1.1-cp314-cp314-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 9a515b482f4023436f118bcd9f3ee0ffa82bc084f5e087f2ba681102ed944c31
MD5 f1924c9cb77de89655818ebde0522a93
BLAKE2b-256 e170ae67cefbfd4b6e9681aeb65122456d7c95fe532b19c4f9ef27021f2ad53b

See more details on using hashes here.

File details

Details for the file dreaming_electric_sheep-1.1.1-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.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 9d2225293c9c3ac9caee2dc238b818e83a226bfd56a1ecdf703639ac6f3ef258
MD5 aff0bb291c7980ee6088a05113380ebb
BLAKE2b-256 537852569cbb2bfe1290214667db0181cf238226faecb7cd1e39f1dbb02c4bd9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dreaming_electric_sheep-1.1.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 fcc94126c1c116793256605699b4be137ec9bdc6414f59194dcffb92a3d87e78
MD5 438ac2a761cf235d0ada1d537ef97d8b
BLAKE2b-256 0264e2480eb446c68413718f6212bca810ac4f1b053d1f0aeed7672b76fc02c3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dreaming_electric_sheep-1.1.1-cp314-cp314-macosx_10_15_universal2.whl
Algorithm Hash digest
SHA256 1d99c33ac2afe6c582935cf2d8333d25e4f842acf5af758bdb3fbe3ab9e1afe8
MD5 abaf5e88c4dbece9815633f88b5b75b5
BLAKE2b-256 b4c74343c9c608c219b90b73473c5a1710ac07af26940e8b95fa285fe81645c2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dreaming_electric_sheep-1.1.1-cp313-cp313-win_arm64.whl
Algorithm Hash digest
SHA256 0b8f717cf364cc123827b59bef9036bee1a76cfddb541e147a3998cbbf79fd7a
MD5 960eed0085353d3fe113546f3bab4a07
BLAKE2b-256 ca1c65ac7a9982fe684c92993468fd86a9984695a3b417acd139efdbfea3908a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dreaming_electric_sheep-1.1.1-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 a60e57a8d21adec4ba87109046823cab90c2f7060d8b2d71532d029af1d8a871
MD5 adf10ef547e57ae7cd9605f8f6c1cbd8
BLAKE2b-256 14b92647cb01c730a2be5197450a5ac43ed9de2e3fb76d4ffd81ae7102043051

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dreaming_electric_sheep-1.1.1-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 825ff50736f2b1125424e6b5f155f4820b3e9af3fd418ba071badc9e4a39921f
MD5 cd5c0df050ef276c5fc2f1aa7748dba5
BLAKE2b-256 df1bbb89ea309f70027876c9f46f5c92be139d0557dde0f3004f07dfb1f05355

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dreaming_electric_sheep-1.1.1-cp313-cp313-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 7ff53a14b7af0ee847b3ce1fbabeb124c07cad4f1643073324c7d9f5bf95e23a
MD5 c9271bc6643d0c168b19cd3c7e719960
BLAKE2b-256 b4975ee285bf1a11582804428c8b27a293dfdefa2a78ec8f12e229d0b5d77b86

See more details on using hashes here.

File details

Details for the file dreaming_electric_sheep-1.1.1-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.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 ec1c03ada612de6958a6937aa365aa04c7eced1829fc468316ff7dc847670dfe
MD5 6c62bb6895d5ce4f1a320fb5d339b861
BLAKE2b-256 5d22636030bcb96936c61bcf3ee2c60b40e428f82b28d1bfc3cd511ed97c2a4b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dreaming_electric_sheep-1.1.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 a63c8503f5ae452497b3e252e015f2de70d50eaec9f1f25d457f42c6827c9095
MD5 19f4dc9b2dcf9b8aecd66ef1198f0625
BLAKE2b-256 4bdc47d2483e54ca9b67b47f609de70fa8b229c416d7e298267959507060476c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dreaming_electric_sheep-1.1.1-cp313-cp313-macosx_10_13_universal2.whl
Algorithm Hash digest
SHA256 cbb1cf71c6ebd90bd41ed32a852f9f6136c0a5ce3e92c7a9fa0edd1e2996da7e
MD5 50facce2af31b569a4b10f6c15d2709c
BLAKE2b-256 9f1de6fcdf3a4db18fea7478a6065144e7aac04341d2d92004ff5a7e041ca71a

See more details on using hashes here.

Release history Release notifications | RSS feed

2.6.3

9 files

This release

1.1.1 This release

15 files

1.1.0

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