An experimental ASGI runtime built from the ground up.
Project description
🎶 Syncopate
An experimental ASGI framework that thrives on the polyrhythmic magic of async Python.
This project is built as a learning exercise, so it re-implements all the wheels posible:
the asyncio event loop and server, uvicorn HTTP ASGI
server and h11 protocol library,
and starlette ASGI toolkit.
It is not meant for production! Use under your own risk.
📖 Table of Contents
⚒ Env Setup and Development
To set up your local environment for development run
make init
This will install all dev requirements using uv and add the pre-commit hooks.
⚙ Running Syncopate
Build an ASGI app:
from syncopate.framework import Syncopate
app = Syncopate()
@app.route("/")
async def index(request):
return "Hello, World!"
@app.route("/api")
def api(request):
return {"hello": "world"}
and run it:
import syncopate
syncopate.run(app, host="localhost", port=8888)
This will start the syncopate server and run the app on http://localhost:8888.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
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 syncopate_runtime-0.1.0.tar.gz.
File metadata
- Download URL: syncopate_runtime-0.1.0.tar.gz
- Upload date:
- Size: 8.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.5 {"installer":{"name":"uv","version":"0.11.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
012b44e1e7628faf878561f9efdc49bda17dc175aa8dd0b5dfabe76e8af3d00c
|
|
| MD5 |
2304c011824885a952c1e8895a7c5dac
|
|
| BLAKE2b-256 |
14bc626b6ea270308c300158b9d68e62456c6c99affb35c4bfd4da0529dc55bf
|
File details
Details for the file syncopate_runtime-0.1.0-py3-none-any.whl.
File metadata
- Download URL: syncopate_runtime-0.1.0-py3-none-any.whl
- Upload date:
- Size: 15.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.5 {"installer":{"name":"uv","version":"0.11.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
824d3c35fdffbadbefb1418f3c5563e9ebbb4d4e5f2ed695ff82729b46bd73e6
|
|
| MD5 |
507a98b19c8d289d776f4e0f9c5a8c78
|
|
| BLAKE2b-256 |
70fa5fb1774094971e3321b1707aadb7c220bb292652112cf0ee3a4756c58134
|