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 asgisupported. - 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 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
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d3555fbc70cee2aa8db9720edc028009e124b5b1b42c58cc0720eeb8576901df
|
|
| MD5 |
c4cd1c7774d0590e3340e2391f1b2093
|
|
| BLAKE2b-256 |
d967ce1904a2eede9ba8452e49de1c794e87f14579b6a1e88204885617c7a500
|
File details
Details for the file dreaming_electric_sheep-1.1.0-cp314-cp314-win_arm64.whl.
File metadata
- Download URL: dreaming_electric_sheep-1.1.0-cp314-cp314-win_arm64.whl
- Upload date:
- Size: 2.5 MB
- Tags: CPython 3.14, Windows ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.13.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5e45f0f75cf40c34bbdafa4203235622eab8a20f490138fb5c8ca5d1fa71fe95
|
|
| MD5 |
3d37d82e8e371a9f6760f1adbd24095e
|
|
| BLAKE2b-256 |
5a00dbb6b98c83ab0e20276e14aa19d17248cf239f4a188ac4613c0f0729ba0d
|
File details
Details for the file dreaming_electric_sheep-1.1.0-cp314-cp314-win_amd64.whl.
File metadata
- Download URL: dreaming_electric_sheep-1.1.0-cp314-cp314-win_amd64.whl
- Upload date:
- Size: 2.6 MB
- Tags: CPython 3.14, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.13.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ee33f026d4a44629dcf27977a7a6b45680af5be447839051cd86e0a132ef9136
|
|
| MD5 |
6ae459a96b3c2c571bcb67a3252621fe
|
|
| BLAKE2b-256 |
f4d291a18cff03a4766407730f914ff5f8820ad008442fc7c153fdea922e57aa
|
File details
Details for the file dreaming_electric_sheep-1.1.0-cp314-cp314-musllinux_1_2_x86_64.whl.
File metadata
- Download URL: dreaming_electric_sheep-1.1.0-cp314-cp314-musllinux_1_2_x86_64.whl
- Upload date:
- Size: 7.4 MB
- Tags: CPython 3.14, musllinux: musl 1.2+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.13.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7a9aee0f9696075efcb10723bc197bf51a2c63144c27f246f1a4b9d19ffba6d3
|
|
| MD5 |
e63dbf32286c37701d42e7513915055c
|
|
| BLAKE2b-256 |
349cf83ed127be84fc277ac87aaf1a584ce49511902db903a0dfe4db5370087d
|
File details
Details for the file dreaming_electric_sheep-1.1.0-cp314-cp314-musllinux_1_2_aarch64.whl.
File metadata
- Download URL: dreaming_electric_sheep-1.1.0-cp314-cp314-musllinux_1_2_aarch64.whl
- Upload date:
- Size: 7.4 MB
- Tags: CPython 3.14, musllinux: musl 1.2+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.13.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7449beb0cb6b50b87f535a0b9fae36d89c2da0d9f83114c3156275144adeca22
|
|
| MD5 |
a5e0219eb64588c24c4d1e1ef5d6c54c
|
|
| BLAKE2b-256 |
86ff53287fe0794a59f941b5c840f268c3f00d17241feb1bd3a995f45631dc97
|
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
- Download URL: dreaming_electric_sheep-1.1.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 7.5 MB
- Tags: CPython 3.14, manylinux: glibc 2.17+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.13.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
778365924a7837e044859ffc7fc7d9116de6ea4ca22d69d3b863f8b3db467125
|
|
| MD5 |
383038c13562c66ddd4c87232e5fd724
|
|
| BLAKE2b-256 |
dc67e7128b5c6d60e44630a209e442191988d0c0776f3918e6c3a5666bd22c8b
|
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
- Download URL: dreaming_electric_sheep-1.1.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
- Upload date:
- Size: 7.5 MB
- Tags: CPython 3.14, manylinux: glibc 2.17+ ARM64, manylinux: glibc 2.28+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.13.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ae9c0fa56ae9455214d5278fe552ede2fd0aba6c7637abaaa7b1a074b69f834d
|
|
| MD5 |
91a47fcc259ca44f4cceb503343fdcd1
|
|
| BLAKE2b-256 |
f0cb8a427de03ebec0834e16dc9788782c02b40ffaba7f19e7329f94b3f1fdef
|
File details
Details for the file dreaming_electric_sheep-1.1.0-cp314-cp314-macosx_10_15_universal2.whl.
File metadata
- Download URL: dreaming_electric_sheep-1.1.0-cp314-cp314-macosx_10_15_universal2.whl
- Upload date:
- Size: 3.4 MB
- Tags: CPython 3.14, macOS 10.15+ universal2 (ARM64, x86-64)
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.13.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e55d6df6b8e64670d70dc4edad655e276e50095327e1f9f88007224747d531d9
|
|
| MD5 |
41170979f0c1f97d9f8e8c47637e58bf
|
|
| BLAKE2b-256 |
fdd9803f719e12ce57d6c842040a546a2513ca6c77d959c8e7cbeef48d12567d
|
File details
Details for the file dreaming_electric_sheep-1.1.0-cp313-cp313-win_arm64.whl.
File metadata
- Download URL: dreaming_electric_sheep-1.1.0-cp313-cp313-win_arm64.whl
- Upload date:
- Size: 2.5 MB
- Tags: CPython 3.13, Windows ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.13.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2105eb81e1adc9f44b736695ae78bbb12b30e1c166dbdb0eda31620e00131f7d
|
|
| MD5 |
442c5cdfc3f96279837248eff0086fbb
|
|
| BLAKE2b-256 |
79a59b8a235df1f72f63ed6253f163d1d5e2998250eb4813d141f787c68cdf4c
|
File details
Details for the file dreaming_electric_sheep-1.1.0-cp313-cp313-win_amd64.whl.
File metadata
- Download URL: dreaming_electric_sheep-1.1.0-cp313-cp313-win_amd64.whl
- Upload date:
- Size: 2.6 MB
- Tags: CPython 3.13, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.13.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bb05368db9aa392cc62badb25d1d53379e53ba5cdf06e80d161329ac6a116a70
|
|
| MD5 |
f6416908c4b7d4688ba9f4aa64434a8f
|
|
| BLAKE2b-256 |
1f96d6b7109df0fcf703ba0b8ec83df70a14d7e294d20cd10492de1c001a3850
|
File details
Details for the file dreaming_electric_sheep-1.1.0-cp313-cp313-musllinux_1_2_x86_64.whl.
File metadata
- Download URL: dreaming_electric_sheep-1.1.0-cp313-cp313-musllinux_1_2_x86_64.whl
- Upload date:
- Size: 7.4 MB
- Tags: CPython 3.13, musllinux: musl 1.2+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.13.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
34a471630b68a469c16e6486149032760dab956f0ecbf972e1a1773e4d8efeec
|
|
| MD5 |
478cd7fccca994aebff72b001c1f91c3
|
|
| BLAKE2b-256 |
a6b7f212edcaeebd26e3631b57ab48c70d11050544b072b5643e063bc5290f2f
|
File details
Details for the file dreaming_electric_sheep-1.1.0-cp313-cp313-musllinux_1_2_aarch64.whl.
File metadata
- Download URL: dreaming_electric_sheep-1.1.0-cp313-cp313-musllinux_1_2_aarch64.whl
- Upload date:
- Size: 7.3 MB
- Tags: CPython 3.13, musllinux: musl 1.2+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.13.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cf2c2f94ef1278020bb35d92fc0809bc98afc24a71d51284272d0f9975f48ca7
|
|
| MD5 |
767ce23f4dd8a2466b1b65d08b7e160a
|
|
| BLAKE2b-256 |
bf0cceed190665eefec47980b9b76aec9b0f889aad5247ae481410965ce8e773
|
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
- Download URL: dreaming_electric_sheep-1.1.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 7.6 MB
- Tags: CPython 3.13, manylinux: glibc 2.17+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.13.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
468d6dfe0ba81984ee1f0fad3cc246804d9658ef0dea93a9dec0e01f125991d0
|
|
| MD5 |
e7df3c3960c2f058640ed234610fd8fa
|
|
| BLAKE2b-256 |
f6b3d7b0da42ac907d7707625eb15c10bc39b22366f96cfe0a04b273763a3fd2
|
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
- Download URL: dreaming_electric_sheep-1.1.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
- Upload date:
- Size: 7.5 MB
- Tags: CPython 3.13, manylinux: glibc 2.17+ ARM64, manylinux: glibc 2.28+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.13.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6dadf59d83dca97a617173bfff3d317c91e1c7411cbac8e91bdd8f2cec13d8bb
|
|
| MD5 |
415a1eeee917900935c8b8223d0e43d3
|
|
| BLAKE2b-256 |
078e6ef71d6f523c65c51f4c41c8b7fc853e256eb711a6ee6b798d334fca884b
|
File details
Details for the file dreaming_electric_sheep-1.1.0-cp313-cp313-macosx_10_13_universal2.whl.
File metadata
- Download URL: dreaming_electric_sheep-1.1.0-cp313-cp313-macosx_10_13_universal2.whl
- Upload date:
- Size: 3.4 MB
- Tags: CPython 3.13, macOS 10.13+ universal2 (ARM64, x86-64)
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.13.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a61b93ca2df39316814bef76877b529e801f18c5ae55057cda7b44b1ae0b8f89
|
|
| MD5 |
938f7d5560c9d8cc3ee38db8d588bf59
|
|
| BLAKE2b-256 |
d3eb315488d3a369b30da5440ad2f6c3616ab130775d2b14ea9efcc482015651
|