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.65.2-cp311-cp311-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b054e790b8fb5c978a2ea1f632771033e35dff350cc6a3ee95bd4e46a73335d1 |
|
MD5 | b87b78a6bd4ecd8476a7bd79757fc885 |
|
BLAKE2b-256 | ae2a5b62eb0988dce8ff5ee944bbd1baf42f4c0812d7619b5aca16371eb226dd |
Hashes for asgi_tools-0.65.2-cp311-cp311-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2f43a363d28df8a0f1783eb0fbcf26dc76afe13c5ca554e0e4a07c48af70c103 |
|
MD5 | f616fcd0da188f203f5bd113865903bd |
|
BLAKE2b-256 | 8c0872cd0eeda800de65e3119dc5e2e29410b1f088d43b0254fea44d4f505842 |
Hashes for asgi_tools-0.65.2-cp311-cp311-musllinux_1_1_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 27c7e91207cd085f63ffe3966f159b6caf1aaa73e0fdeeb20a83aface7440646 |
|
MD5 | 33609784ea4781b854e4d853a82f7a23 |
|
BLAKE2b-256 | 3e3b9770d2885b903d3f6aa388a906d89a7d58f488aae73c8fb490aedf0d3bcc |
Hashes for asgi_tools-0.65.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d068b51385811fd89a601bc11d7006425345d0c61b6a631ce163be5c24412e7c |
|
MD5 | 1ef6ab4ab97845af9ce5b40a5e3d78a6 |
|
BLAKE2b-256 | ba3fe249e3e31e12fe9ea4ea3b52ea537ec02e87aa7705f305406fe1f8c4e9f5 |
Hashes for asgi_tools-0.65.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 29e5e56b2d7a538a3fdf1d07ee0f9865db274abc1522f712f14439af1e27bb53 |
|
MD5 | 7d50149cd2aea2c6047b1f5386ca687e |
|
BLAKE2b-256 | f8610b25fb193c5c31084ac40021604d5087b35688db8c34ddcecfdb3b14a800 |
Hashes for asgi_tools-0.65.2-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | cbed8ea6eb943d8a7e0fedb9eb70c83d3fc049cc96aad703e71ae24b22a67805 |
|
MD5 | 9996f9c174b9238b3dcc2063e73babb2 |
|
BLAKE2b-256 | b6386b7144ce87656300c31f11219f9a284474a6ef0f9e9a9853bc60df6c1012 |
Hashes for asgi_tools-0.65.2-cp311-cp311-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8103d11d96dd7d39a1be4b0c7bd016e514432596412d2c6c78d584410e0f851a |
|
MD5 | d23adf2a07ed1d5a681b06c8185636b0 |
|
BLAKE2b-256 | dbf92168cfffb7c6293a221d5c46c36712d77db6b72fab6210c418dd4fd6f0a7 |
Hashes for asgi_tools-0.65.2-cp310-cp310-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d7194208950f16d2771ecf903dc4e003c586608dc78010a60dc343d57be1b3f4 |
|
MD5 | a466d8fa4a3f60307440259897d97e28 |
|
BLAKE2b-256 | d41400b0f15fef8f9f9f8ec37a8cf4117cc378788271e0b8681b88621a286ac6 |
Hashes for asgi_tools-0.65.2-cp310-cp310-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 176bfb55cba52031216926955aa141586fe1ed1eebe700ceb4bb72c58320559f |
|
MD5 | 4f28993e56175b5e352051e7c5f0c9e9 |
|
BLAKE2b-256 | 28dd6d667c3780bea40adafa1a16c44f633066f42733c2fb8b4815ef0981e966 |
Hashes for asgi_tools-0.65.2-cp310-cp310-musllinux_1_1_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 60afbe0829919386dd6aac5092fb8ffcdf056aa680e75b44a9cf954c223c4037 |
|
MD5 | f2600374aae21d20cc34cd473409cd1b |
|
BLAKE2b-256 | 022288ee802716ee14021c2d93be975fe16a521e894dc83f9d1e89ba4c492fec |
Hashes for asgi_tools-0.65.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 83b367c07fd11aa9df1dba6b0fea0f31251feb558daf6fd0eb8e6572653bab46 |
|
MD5 | f82339f49105d32951a0b49bf0f757df |
|
BLAKE2b-256 | 8b39ccc8b54030b87e0f707c85c94ec5e4dee70c00613db9e9dfb2b36bf33a8b |
Hashes for asgi_tools-0.65.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 038279c40152c9a643638884c60dfefb43f72abb8db7d4453d5123aaf5c34514 |
|
MD5 | 70106b9b75d9a45cec7fcc79aaa2aa6b |
|
BLAKE2b-256 | 22ac4a33379216ec9676ec255903e31d582730416bd1392f51b98212082ecf74 |
Hashes for asgi_tools-0.65.2-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 02104c5b503081998ca3a2e163f429cdfa3d52d3200f94664c09e39a39f49b99 |
|
MD5 | aa57963e2269e497ccea8790b80bae9b |
|
BLAKE2b-256 | 8f7c1f6e151ac9270de5225212e4f1bcca4ec539cda1ad513bed3edef2e39146 |
Hashes for asgi_tools-0.65.2-cp310-cp310-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 630cfbf8582100e2698e087aa34e9e1060dce754a733a26017795d732e674a11 |
|
MD5 | 3aa2b57e171aca187022422636e67520 |
|
BLAKE2b-256 | 59614480705f6f7ce0c0e7e110776794a7ac2d7849bf1f0c9dec60fc7167572a |
Hashes for asgi_tools-0.65.2-cp39-cp39-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f6e30c98370d8d6d0db274c485810bb6e52583eb2109e09e4ce37b3ed9ab7685 |
|
MD5 | 8e3836fb9f1de6e0cd620f91874924a0 |
|
BLAKE2b-256 | 17ab6e48527049ec69fe746e8f503c59ca31522fe82883c754fb5da715f24e75 |
Hashes for asgi_tools-0.65.2-cp39-cp39-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3d0e192b0e345ff3f0d97f1dcb0c7350bffcfb3f6459cf235006f4dee7959c07 |
|
MD5 | 1591f2b4111414c1e9f9e3395e59ab60 |
|
BLAKE2b-256 | 1738cf6a4a29459988797381f2db130f577d94a21db261adde41d0fb0133cd08 |
Hashes for asgi_tools-0.65.2-cp39-cp39-musllinux_1_1_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6329a1ffdc632d55e858ea50ee64e7f8d40c97d266e7338db68567e79c74c0ac |
|
MD5 | ee4bb06556c41b96b343231158720e56 |
|
BLAKE2b-256 | 67e461f3e8d193b3d17c52c0f0c3be64639bd7bef6cb4a8fa856ca8b7d74bf0d |
Hashes for asgi_tools-0.65.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d0538d14b7c05c5be9130c5fc9c26f45ded23a4fd32431afef90defaf241d3e2 |
|
MD5 | bb9d15f921e67b794d90e96306e87ac0 |
|
BLAKE2b-256 | b4560ecad3b4abcd59a569a901040d5fcaa878965233d4c3a4d3fe633215bbf8 |
Hashes for asgi_tools-0.65.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f3fe8d822ea6983e017700986cdacca73835f528e944d8056e2e1994e554422b |
|
MD5 | f009e2f02eb74409ed5d7545eaa9ad34 |
|
BLAKE2b-256 | 32dbe9f95f6b2521c035d7aea5c56fb1550882c843c81511d796453f4e7b62a4 |
Hashes for asgi_tools-0.65.2-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0035b0c013a0982981ecb6591b02cd5a293361941a01dd5ea43c1f35adedbac2 |
|
MD5 | 465853aa5ae96665303397cb24f236de |
|
BLAKE2b-256 | 459d3fc907e85dda1334fe12e4a0c25c6d61723ea56a3c4eb4763f09e8af73a2 |
Hashes for asgi_tools-0.65.2-cp39-cp39-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5ce2660a0ac09059dc7c6fdf40edffa5881c94ad43bb4128142ee5555a933612 |
|
MD5 | 23d0dc845db08e9c51ba139c086e5a19 |
|
BLAKE2b-256 | f7f6dd24471e815488d9fa5aff7cdf1c06433996ca4da2864fefa3fc3025becb |
Hashes for asgi_tools-0.65.2-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7a2a0840555b8d300a5baa9fc371f9de31088000d423237d068e4717187b34c5 |
|
MD5 | 61b6a1d6b9066b9e5172b671c6a57058 |
|
BLAKE2b-256 | 8ea4ec391faea66d6cf634a95bcb9ebc74ce6a948cd20b6effd7945bf26bdba2 |
Hashes for asgi_tools-0.65.2-cp38-cp38-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ca312d3ff932e7a3441cea390571d49501d3fe3ce52dfb018fdb5760408a055c |
|
MD5 | 83c9b06d103acb8dd4e211428ebb6ffa |
|
BLAKE2b-256 | d0438ddab51cc64266b527d44bae4283efc806fe099f44e00e7eb11b8d8cd4af |
Hashes for asgi_tools-0.65.2-cp38-cp38-musllinux_1_1_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | dda0fd90ef52f7c38e3f724a998c7d42a72dde6f548828c0bd54dd498e54a915 |
|
MD5 | 02187640a6b6d4f3ecbc465ab948d05b |
|
BLAKE2b-256 | 617fd1ed46c20964025a498599dbb7b681ec33f79e78214b49e3fd24826698fb |
Hashes for asgi_tools-0.65.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 614759fe073a392f76ad11254d26b097ce4d67e4b72a009f5848ae7f67c2bc2d |
|
MD5 | ad677fed7674519277387be6ebf89374 |
|
BLAKE2b-256 | 64f7c5359fdaf17e3e0087b680598c7557baea3e83b2989a8592bc46b6d43600 |
Hashes for asgi_tools-0.65.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 67e85a0d04bd75f7050053fa0c42f4585573eea049ffaadd074ccf268bf644d0 |
|
MD5 | d4c36a5609ac5a15ae995353f5a72f91 |
|
BLAKE2b-256 | b01ed83e9e32a754972bcc5de50f4f7d4ac7ebc9d5e9b8f31e1d12a13e1017da |
Hashes for asgi_tools-0.65.2-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1c202b4f305eb3136a7ed9c5f68186eed2a43a77c59e27964a7c9d8bc1265a62 |
|
MD5 | 248bd3da268b474f3aedc1f673df4568 |
|
BLAKE2b-256 | 5c7d9bc37320f8a1dddb4b7f37207e43e4c02ddf87d96c23df378e4bb21e0e76 |
Hashes for asgi_tools-0.65.2-cp38-cp38-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9ddfc2f95dd8c6da3d88d16a135642df3dc4d92beca2fd88f430fa5ba55078fd |
|
MD5 | 8ca6338659cfc2a462a0d28dc9a9efcd |
|
BLAKE2b-256 | aa7270fbfd80f70d7ba1f268c5611472199524bd42729a5ca9680b0a216c2355 |
Hashes for asgi_tools-0.65.2-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5dbafba96cec7f4e622116db55479d80988a8ae0182a9b156ba8957ee2b85751 |
|
MD5 | f240c4f1eab7d2d18a7564ce6d3c901a |
|
BLAKE2b-256 | 2538e76d005a0ebeca2b1759826556af11c39098b34e2f084d68e1e9dd3468ee |
Hashes for asgi_tools-0.65.2-cp37-cp37m-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c785f34889ded4b40c95893c8ec1fe6f22c4f9104a271ce9502a00b00bd00171 |
|
MD5 | 411a2dd38b836d90755256b167875d78 |
|
BLAKE2b-256 | bd8ef3d9c1a2f59d7e4135384f5e754ddc6e5dbe6b6ac6ed939c58bdc19d5ad2 |
Hashes for asgi_tools-0.65.2-cp37-cp37m-musllinux_1_1_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c1d96e25c55215e908fa0f2dec1ffb43b725b0f07878ac1eed6623c2a5448883 |
|
MD5 | 05ef9d22beb442f69099bfe15ac1cd45 |
|
BLAKE2b-256 | b1212eeb527978e905011a6d3a491fde58f45eef32c5e307f36e0d016f1d3efa |
Hashes for asgi_tools-0.65.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b5d3541018416e588dc3184de6d3f8542b02fc49a8e705724b642cfe4ad92a04 |
|
MD5 | 814419ace0b830ca3c11c6224a05c4cc |
|
BLAKE2b-256 | 1cd935722aaba09c90cb8f40a80a8941cb709d551ce5265d90d46e80c3d30cbe |
Hashes for asgi_tools-0.65.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5135cc0d93f897f1a0393ae3da2d048dadc5fb7ecfd5a012572293a5abecc9db |
|
MD5 | 143738db9c5c62b5fcd8ef90a368ff06 |
|
BLAKE2b-256 | 39717b06db1e35ab2bd9b789df414525cf53fe67e25a3667e07e745a1c87c5fe |
Hashes for asgi_tools-0.65.2-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e5e133f2f6a67e39c1fb47e5fec2a37c214228462a6e50b9cf36f5835c4a7376 |
|
MD5 | 957de5825cb589d68238b140a395dd10 |
|
BLAKE2b-256 | c5455b540663e8cd748434381804aec7e055f31ec6c240e5a3bd4f15ee50ef4f |