Install & Compatibility
Where this runs
tested against v0.86.0 · pip install
no network on importno background threads
Install × environment matrix
Each cell = how many times install + import succeeded across repeated harness runs. Partial = flaky.
glibc = Debian/Ubuntu slim · musl = Alpine Linux
muslpy 3.10–3.95 runs
build_error
glibcpy 3.10–3.95 runs
installs and imports cleanly · install 4.1s · import 0.402s · 51MB
48MB installed
● package 48MB
Code
Verified usage
Verified import paths — ran on the pinned version, not inferred.
Robyn
✓ from robyn import Robyn
✗ import robyn
Robyn class is the main app class; direct import of robyn module gives you the module object, not the class.
Request
✓ from robyn import Request
✗ from robyn.request import Request
Request is a top-level import; there is no robyn.request submodule.
jsonify
✓ from robyn import jsonify
✗ from robyn.response import jsonify
jsonify is exposed at package level; submodule paths are considered private.
Minimal Robyn web server with one route.
from robyn import Robyn
app = Robyn(__file__)
@app.get("/")
async def hello(request):
return "Hello, world!"
app.start(port=8080)
robyn --version
Errors
Common errors & fixes
RuntimeError: Robyn must be started with app.start() or app.run()
Calling app methods like app.add_route() after app.start() has been called, or not calling start/run at all.
fixEnsure you call `app.start(port=...)` once at the end of your script, and do not add routes after that.
ImportError: cannot import name 'Robyn' from 'robyn'
Outdated Robyn version or wrong import path (e.g., using `from robyn import robyn`).
fixUpgrade robyn: `pip install --upgrade robyn`. Use `from robyn import Robyn`.
AttributeError: 'NoneType' object has no attribute 'send'
Async handler not returning a response, or returning None.
fixEnsure every async route handler returns a string, dict, or Response object.
Upgrade
Version history
0.86.0latest on PyPI · released Jun 16, 2026
Audit
Dependencies
No dependency data recorded yet.