A simple asynchronous Python web framework built on aiohttp.
Project description
Mokei
Mokei is a simple asynchronous Python web framework built on aiohttp.
Aiohttp contains a great async web server, with web framework built in, but can be complex when compared to other web frameworks.
Mokei makes setting up your routes as simple as using Flask or FastAPI. It also includes super easy websocket routes with support for text and binary messages, as well as SocketIO-style event handlers.
Quick Start
from mokei import Mokei
app = Mokei()
@app.get('/')
async def hello():
return 'Hello, World!'
if __name__ == '__main__':
app.run()
Return JSON data
When the return type from the handler is a dict
, the response is automatically converted to application/json
@app.get('/status')
async def status():
return {
'status': 'OK',
}
Adding Websocket support
Adding a websocket route is as simple as adding a normal get route.
Note that you may send websocket messages to a route or to a single websocket (compare websocket.send_text and data.send_text below)
app = Mokei()
data = app.websocketroute('/data')
@data.onconnect
async def send_welcome_text(websocket):
await websocket.send_text('Welcome!')
@data.ontext
async def relay_text(websocket, text):
# log incoming text and relay to all other websockets
logger.info('Received text %s', text)
await data.send_text(text, exclude=websocket)
SocketIO-style events are also supported. See js/mokei.js
for a Javascript handler for Mokei WebSockets.
app = Mokei()
data = app.websocketroute('/data')
@data.on('ping')
async def send_pong(websocket, data):
update_something(websocket)
await websocket.send_event('pong', {'timestamp': time.time()})
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
File details
Details for the file mokei-0.2.5.tar.gz
.
File metadata
- Download URL: mokei-0.2.5.tar.gz
- Upload date:
- Size: 10.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c79fd11eb90b866e7c66e5e46d21a36b7affd8876fb3820ef54fcfac064c235b |
|
MD5 | 2be24c48db6204d367115e57eb804080 |
|
BLAKE2b-256 | ba57f1fe206267a8f52404ea9fc0d3a21e325a8c9d3487939a9a84a0df654cc8 |
File details
Details for the file mokei-0.2.5-py3-none-any.whl
.
File metadata
- Download URL: mokei-0.2.5-py3-none-any.whl
- Upload date:
- Size: 13.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4a4377e579eec02a1520253858ac1288522f7438b182bff2ea0cbd28cf3d2ada |
|
MD5 | ef3ab6ad446509dbf8442de016cd64c1 |
|
BLAKE2b-256 | a602480dd07cdf0041af6241c282c1a3e6191d4d80068a92361dd4c68e148714 |