Skip to main content

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


Download files

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

Source Distribution

syncopate_runtime-0.1.0.tar.gz (8.8 kB view details)

Uploaded Source

Built Distribution

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

syncopate_runtime-0.1.0-py3-none-any.whl (15.5 kB view details)

Uploaded Python 3

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

Hashes for syncopate_runtime-0.1.0.tar.gz
Algorithm Hash digest
SHA256 012b44e1e7628faf878561f9efdc49bda17dc175aa8dd0b5dfabe76e8af3d00c
MD5 2304c011824885a952c1e8895a7c5dac
BLAKE2b-256 14bc626b6ea270308c300158b9d68e62456c6c99affb35c4bfd4da0529dc55bf

See more details on using hashes here.

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

Hashes for syncopate_runtime-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 824d3c35fdffbadbefb1418f3c5563e9ebbb4d4e5f2ed695ff82729b46bd73e6
MD5 507a98b19c8d289d776f4e0f9c5a8c78
BLAKE2b-256 70fa5fb1774094971e3321b1707aadb7c220bb292652112cf0ee3a4756c58134

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page