Is a toolkit to build ASGI applications faster
Project description
asgi-tools – Is a really lightweight ASGI Toolkit to build ASGI applications faster.
Documentation is here: https://klen.github.io/asgi-tools
ASGI-Tools is designed to be used as an ASGI Toolkit to quickly build really lightweight ASGI applications/middlewares/tools.
For instance these middlewares were built with the library:
Features:
Supports all most popular async python libraries: Asyncio, Trio and Curio
Request – Parse ASGI scope, get url, headers, cookies, read a request’s data/json/form-data
Response – Send HTTP (text, html, json, stream, sse, file, http errors) responses
ResponseWebsocket – Work with websockets
RequestMiddleware – Parse a scope and insert the parsed request into the scope
ResponseMiddleware – Parse responses and convert them into ASGI messages
RouterMiddleware – Route HTTP requests
LifespanMiddleware – Process a lifespan cycle
StaticFilesMiddleware – Serve static files from URL prefixes
asgi_tools.tests.TestClient – A test client with websockets support to test asgi applications
App – A simple foundation for ASGI apps
Requirements
python >= 3.7
ASGI-Tools belongs to the category of ASGI web frameworks, so it requires an ASGI HTTP server to run, such as uvicorn, daphne, or hypercorn.
Installation
asgi-tools should be installed using pip:
pip install asgi-tools
A Quick Example
You can use any of ASGI-Tools components independently.
Dispite this ASGI-Tools contains App helper to quickly build ASGI applications. For instance:
Save this to app.py.
from asgi_tools import App
app = App()
@app.route('/')
async def hello(request):
return "Hello World!"
Run it with uvicorn
$ uvicorn app:app
Bug tracker
If you have any suggestions, bug reports or annoyances please report them to the issue tracker at https://github.com/klen/asgi-tools/issues
Contributing
Development of the project happens at: https://github.com/klen/asgi-tools
License
Licensed under a MIT license.
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 Distributions
Hashes for asgi_tools-0.62.2-cp310-cp310-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | eea7c4d127630621646fa01fa9ebbb23f51570eef9deeff4c17851d5c9b2910c |
|
MD5 | b8704578b6c1e524e0cb5816b4eb95ef |
|
BLAKE2b-256 | a824739ebf4161c6c5c406afd7b0ee87a026283f8f9bfdab9366399933e2a47b |
Hashes for asgi_tools-0.62.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 926c053cda1cbba9febec5bb884b13fe8347bb970a96e7541cdb05d792bbcc32 |
|
MD5 | 9b1d393c9a9ea6820c6343aeb77b0b63 |
|
BLAKE2b-256 | 515e842c2317561ffa0c96c4ae7bc0211c95b1446373c60f54a3b74758c2c7fa |
Hashes for asgi_tools-0.62.2-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b1d872bfdcfd03eed518a154f34a495941d5fbef106aa6dd5b4271546a3427da |
|
MD5 | 2ed5c3650b39962260889c64cf5049cb |
|
BLAKE2b-256 | 1ca6e433750993475fa7fdff53be28eb13a8b1810c1fb58340371556dde49774 |
Hashes for asgi_tools-0.62.2-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0013c0f149dd72584222f25ec4604831239a116332d00dc40c1040130284f0ff |
|
MD5 | b728d6faf83fedbfad86ed7ffdeba8d5 |
|
BLAKE2b-256 | 159cc21fc898568eeadf858ddbea0abaa60c178a6f8a83123ae384cc986eb81d |
Hashes for asgi_tools-0.62.2-cp310-cp310-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 961a2427fcda6db082b93bd6e18ab4cb87587c1ebb3437d2d1751db8610126b2 |
|
MD5 | 19fbb0134d2eca558f66a271d5e79252 |
|
BLAKE2b-256 | 668abb1ba133da11a12f8cab970db62d7bdc4ea55cee82cdad80b48cacaff868 |
Hashes for asgi_tools-0.62.2-cp39-cp39-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | af368a7c851a017dd5a9bb6012ae816ba88b66c5c2780ac995a7d73c63880859 |
|
MD5 | 4afb81f7e4e99a5a5812bd84b2deed4f |
|
BLAKE2b-256 | 4814b28a73c33a635905a0e16fa3be9fd4c587ef2ccd919ea7220305fcbb2c90 |
Hashes for asgi_tools-0.62.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9bd2d72e6666568b1855cc8568b749e8583f48f07e55eaf92a3a71a7fdd814d7 |
|
MD5 | 29bf954e9e75358fb432c396fedd9aee |
|
BLAKE2b-256 | 5afa99cc4c5b79ca8b5ac3d2571c754825f578b617927e382350b8882ea45418 |
Hashes for asgi_tools-0.62.2-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d8e623026f9d6668c71b2fef0481d21438b06d83e7de99cc685b1ae2841cc100 |
|
MD5 | dc1e95e0771142fc9bdba564644cf8bb |
|
BLAKE2b-256 | ca3981c5e56174e3ea5258b3fab71eb48e403b43bde013bd4e666c427213bf99 |
Hashes for asgi_tools-0.62.2-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ddc02e0fe7787c580867f43255c00bdd503bdf8a11056ca3975c14ae0e0398d1 |
|
MD5 | 4f7abb6b5c4c282e8a409e15cba59c72 |
|
BLAKE2b-256 | 1f698e0655adc21dae68329c797e583dbb4358dc61c6e48b55a7ecfe7c0cf4aa |
Hashes for asgi_tools-0.62.2-cp39-cp39-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f00296592186ae4051215a94394e620bfe4e15371962017aa292bee98184a2d2 |
|
MD5 | f4875f8fd92fc5ca988488152404b3f5 |
|
BLAKE2b-256 | 07c8eed99463937baba319da665cb91222c0fb9fd0fab1818676621ee8fc04c9 |
Hashes for asgi_tools-0.62.2-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | eb1c0597ef3e92091bcc51257a17eb13660d62925fa4c42cf34585f47ccc61c6 |
|
MD5 | 7c278d3dad86db8d17065b472aab763f |
|
BLAKE2b-256 | da13e19478393bf26142f480ec5f3744d3eb8dd5b224ad89d1e3383a8d51cabf |
Hashes for asgi_tools-0.62.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 28b23c95b36e52f3c9274b2357020124b43137536b2cefd9bccc10f18139c0f1 |
|
MD5 | ca77852d10ce90078f824620457d090a |
|
BLAKE2b-256 | 672db076b98017d008db32a48e27ec7a9402c0b5892a0522177e3f4cbaf637dd |
Hashes for asgi_tools-0.62.2-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 65e086c1e375988f6c4e516afad446830807e0281b96a87921281ec18dcdfd3a |
|
MD5 | 59ba5f0118bc1dfcf1d5b47d0234226a |
|
BLAKE2b-256 | 1578f8586f74c2fc25a8a98022c853e0aecb4b416e8e9381e78ee6c1c1aaa62b |
Hashes for asgi_tools-0.62.2-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2788acef6c7a9fff4813bef1e4d7b98720b7ea0f68845e13b99bc674b6dc3e1a |
|
MD5 | 817a6f128e98cfddd7ed5c42c01437c7 |
|
BLAKE2b-256 | 0e9539a5849a363febdde6c23193da447fbc977d24cbd00b89c5bdd5218e8906 |
Hashes for asgi_tools-0.62.2-cp38-cp38-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c7149d61678cc228c17aa00de673d0ec6f7956b7cd02e49b29f5fd26c9ec6fa5 |
|
MD5 | c06792e7d6f86e80501c1d1e294990a3 |
|
BLAKE2b-256 | 4572628955958dd4dc564c0dcc27306a25d5cedd0bdf3ccdbf8288a434a830a7 |
Hashes for asgi_tools-0.62.2-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e7455b72fcd537186a18608dcfc41a0fea145a0502e0e5241cf1f5355e7c5e84 |
|
MD5 | 73fa4559080ae68103f5b1673e944b1e |
|
BLAKE2b-256 | a92c348fb3933cd4b216e9ef3a328c2010ec03fc1edd65f6ee948d571f391831 |
Hashes for asgi_tools-0.62.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0575cbd8ee6447a454061026e53c5237b633e291ca52341f9be77e2b9fc82c7d |
|
MD5 | 1449c618a4535cafc50b14c05a5f72e8 |
|
BLAKE2b-256 | b57b04cde431146b00cb33c5f0da556ca160e2c867f7c659eeca25698bcba296 |
Hashes for asgi_tools-0.62.2-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 31d5e6c68a462f0a99a00577bfb82b5fc7bfde6096549ab0e5a108db962077d9 |
|
MD5 | fb43382fe66b102ee84c3df8bc3ae278 |
|
BLAKE2b-256 | 8a37a9db89110786a0516de05dbb1372a351aa6787d027e841e2e7f5c630f12f |
Hashes for asgi_tools-0.62.2-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 00e62d88b00ab494b9121102fad16599a703c3b6a629dbd80edc85b3162167d3 |
|
MD5 | 78c43e802898d8f1ebfe674f4445cf83 |
|
BLAKE2b-256 | 4f0305812123562a282cf44687711bcb96c5a39fba16c16296b1c9afe8ee2221 |