ASGI Toolkit to build web applications
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.8
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.73.2-cp311-cp311-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ec2ae45440664cdef47c250682a32625d6566702d2990531a8a15f544b62f855 |
|
MD5 | 76ae360facf8e0e218b113629a7d9fc6 |
|
BLAKE2b-256 | c4c04d9c274d94fd25280297c4798c86bac3567a5ddfa697885c47aa5aeff987 |
Hashes for asgi_tools-0.73.2-cp311-cp311-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | accff7f94ad20e111b41ef0bd801f66ce1e9ea1e575479ad9344ba24f156d444 |
|
MD5 | 326ac45bcd90b96d5b1468546387d465 |
|
BLAKE2b-256 | d02785193a186319459fa9ca20413b690d0764ec20dad5f513b52f72e3ff237c |
Hashes for asgi_tools-0.73.2-cp311-cp311-musllinux_1_1_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fee0117107075e56f47fa13efa1893471b5f2bd89a11cc852fbabf1436864ad7 |
|
MD5 | b9872e053d4dcb491f195f27b635c564 |
|
BLAKE2b-256 | 66f4333ce8f1e918ba2e8585e9d8e0af65c28ad4ce5c03e7ebbc298d788b604a |
Hashes for asgi_tools-0.73.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a798241e5f0f5771ab97b72572a5b51f8327a2ca89b333dd570b113367c5112a |
|
MD5 | 231656139782ea2d97b0e136b1dd4ea0 |
|
BLAKE2b-256 | 3589e013c8b15d8c7ff13cd1d82f815257131be400be42ad63cf1655b16d62ac |
Hashes for asgi_tools-0.73.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 83fedfc20fe9306a3c50985b851b609774b1b883129b0626f24b6f27a5db7757 |
|
MD5 | 6a73367f6cee917814f8042c616eb554 |
|
BLAKE2b-256 | 66125ba8cd95cea8074e10da42b33db8944e6c8cf775db0ce7977ea5202ef50e |
Hashes for asgi_tools-0.73.2-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 69357633a6d74bf57dc0f85b2fd2cc218f910c8964493953d275d4f895712e57 |
|
MD5 | 56af4721e27c326f2afc22d50452b582 |
|
BLAKE2b-256 | 4665cbd5c9a809cd5136cd1c48f1f0371bc3dd3c9ab565538b5fc83eec032591 |
Hashes for asgi_tools-0.73.2-cp311-cp311-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e8f8c59020a0ca83de181bd8289dc051f3efa30dc0fa3f1b8bd8610198cd22b7 |
|
MD5 | 30bdb147dc2b6439bb822e56d8b64bbc |
|
BLAKE2b-256 | cf82545f9748c333b6d392c72a129b99def07992acca6d4902d9cd19af627855 |
Hashes for asgi_tools-0.73.2-cp310-cp310-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c62fbd7bd92224e2ca5ff469adaf2f324cb1168ac5ad3737829d69cd6f47fe84 |
|
MD5 | 1d2ba7069cb67cba01e5b5096b798cd5 |
|
BLAKE2b-256 | 305d317bcf2d89e0bb39bfbb7b1bd13f986024b3c934e790c908ed71baf0f365 |
Hashes for asgi_tools-0.73.2-cp310-cp310-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 08ebf175972f84c4ba24380e4f2bd57716b962e8406d07d33851ee1d8f87d2a2 |
|
MD5 | 2f0701fb014750456dac2f59e72ec8c6 |
|
BLAKE2b-256 | 00bae906eff9e8e81f469f0c19204e960529a9099471f741f567e053b947e1e6 |
Hashes for asgi_tools-0.73.2-cp310-cp310-musllinux_1_1_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4bbadc31a37661faecaff1cb1cc8454841a7a2317ca1635a9754236dbfbf5133 |
|
MD5 | e1438395e33e8b001368dddcf3f4c85a |
|
BLAKE2b-256 | abf7911cf44117f83a71aff71482f1d8decafc71f36c8d6a9e1cdf7c9ea653be |
Hashes for asgi_tools-0.73.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5d1441c39eac200f9b325bc97ad4a38e3981a69ff3a96bc1c9a30e29b6f58668 |
|
MD5 | 2ffbff7f5f14d25a74d37816c329c24a |
|
BLAKE2b-256 | 8fddb826376ea0c0ee09e9fecdb1c368ccb6cd7a90817f504c8b2f15c7c62b85 |
Hashes for asgi_tools-0.73.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | eb542b2220a75150667c9b2838b4191809ef0a850b1daa4d9930cfc915dd07a4 |
|
MD5 | b8afd1416b10009463e54c9175c0b82d |
|
BLAKE2b-256 | d327a98151608961fdc5d299d1a8085e576e23de9aed90d1f79c2c6282cc1c3d |
Hashes for asgi_tools-0.73.2-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e713f8665bc4844247314a29493897d73da2ea43fa58efe8ddcb6706cad1d1f4 |
|
MD5 | d91128e4da7a646ba52d14c6d62c0c33 |
|
BLAKE2b-256 | bee4ae3b8c292981450ac5961998571383152d467b520060ea0d4bbc09c67760 |
Hashes for asgi_tools-0.73.2-cp310-cp310-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 858e411c5a4a337e93d957f39fec80228acb1e5fb9b58667c36d221fcb4914f2 |
|
MD5 | dda00bf507cad42ee4b8d3b002ecb416 |
|
BLAKE2b-256 | 3fafdb1ac10314dd72c8a43dbaad5f4be5f4506d1e8bb815ea3928d2d047f282 |
Hashes for asgi_tools-0.73.2-cp39-cp39-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a93b8ee0d9fa2f37778549ca6707d4a3285ba0e7f09f90b9ff6d27e5b10ee487 |
|
MD5 | aa4262fff07dcfba9e8da63376965f7d |
|
BLAKE2b-256 | fb3a60f5ba36f995bd97517f12a6822a2e2d43d7ee473a745d3b3147ed7a4093 |
Hashes for asgi_tools-0.73.2-cp39-cp39-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1f61a2ea72676a0716202d1f9c85489d9d8503a710a9f342320d5ee1300e1237 |
|
MD5 | e5fcef064d0f9c78d21fedc9fd2f0fcd |
|
BLAKE2b-256 | 2b35e6ad4d0408cd63477c239a53aa5ed9171d5108bb382a456311023a1ccff6 |
Hashes for asgi_tools-0.73.2-cp39-cp39-musllinux_1_1_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a76caa4955fc2c8e3f87de93d29e03dd50b09060ec5e60374feb1d2bb971bbb8 |
|
MD5 | 05d76548863279ca4ef6b039ff45cb83 |
|
BLAKE2b-256 | 400043254249c9c85550c5e5fc8a2213fa73b0579fe5f3a36e61a1c27370da5f |
Hashes for asgi_tools-0.73.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ad302462b5774c849f900b23b60bbb51a712b50f619267ad357af0d0be2aecb3 |
|
MD5 | 4b2d0f1f8539a63e84c157dbcb30adab |
|
BLAKE2b-256 | 943410b7accb002b4a791beece9746caa40481fe5c0dc67727a1ac88bb14df21 |
Hashes for asgi_tools-0.73.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | edff81ec5881393a0735bd83281aa93470281a49d25b92733574a5b699d9c04f |
|
MD5 | d40df6ceaea6046f3e2260741c25c852 |
|
BLAKE2b-256 | d29117b9faa9e43afd5740034654c46b04f263143419f63fc6b6390ffe2e3dd8 |
Hashes for asgi_tools-0.73.2-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 91b1cb570be9b64469067306283e843dcbe819509cab80a035e56ec8c2600f97 |
|
MD5 | 99826d8c4caf50f3aa13784608f8b7c5 |
|
BLAKE2b-256 | f5ce291e6408a2e4238d2f176308fc4bf8b972745813f163189fa21a1e1e0a96 |
Hashes for asgi_tools-0.73.2-cp39-cp39-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 89e7e2ea10477ce813e85794ced6205db3b956150c7fd3c077254d798baf7b7f |
|
MD5 | 0c1c19c630b10b8b0061f4f30540edbc |
|
BLAKE2b-256 | 1ecfee034934f3f68a42fc033eceddd540ecbf1cee42dfc2243ece12dab50222 |
Hashes for asgi_tools-0.73.2-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b252b680f16cb20f68b0fb5d3e2b1d98c77c4acb49db06cdb2f9e81765241dea |
|
MD5 | e1c15d53bfa865f39dcc6804189c0477 |
|
BLAKE2b-256 | 629c5b5cade043c296f55edb02624043220e7a42f3ee2cedb57b81e3a737e526 |
Hashes for asgi_tools-0.73.2-cp38-cp38-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c2d66d57dba8141a195323161ec516ea7fb8da626a64bef0b65f76d91e394ab6 |
|
MD5 | 373f0870b14363695fe553e0f1275cb2 |
|
BLAKE2b-256 | da73c7858b618f034d472a75a653cdcad4565a41814e970f18213af1ae0ba3ad |
Hashes for asgi_tools-0.73.2-cp38-cp38-musllinux_1_1_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c502a49351f4e2eea8619e4687f8797204a5cf996d71801daedbeecfbe1a7143 |
|
MD5 | 3f07e12a44db2bee18e6893c4322755a |
|
BLAKE2b-256 | aea694c157ab3b26d75000c91881813f78069023d1ca941952972f0ed085f4f8 |
Hashes for asgi_tools-0.73.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f2b8c2ce58fde8e627ff812bfe84cea6d166d96a98dff44ea62325f7c4029ff6 |
|
MD5 | b1c4d79b538e4b38a85a1d041798b1ee |
|
BLAKE2b-256 | 3e546d9c5b3e7a69c354e800b57e42e9ee5f223142951221118d5d1103c0989a |
Hashes for asgi_tools-0.73.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 49c9129170ff796554c23a06d91fb9361fe66c2bfde722d25245bf4fac879311 |
|
MD5 | eb546ce8ef4b821da80c7771962f0971 |
|
BLAKE2b-256 | 3d15b04d61ff8df89698f26fe7f637f12a498066d8ce10d008801f2068ea4631 |
Hashes for asgi_tools-0.73.2-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 34219c7734254193468ce6e21e5b1483e5aa82aef7da261c63de2d135e292ef8 |
|
MD5 | 780938ba40c862bec8d4eb3f0b32bb55 |
|
BLAKE2b-256 | fcc73bc35f4579463d50a58383b10b7135a9df8dc835c63109bf541be63a1495 |
Hashes for asgi_tools-0.73.2-cp38-cp38-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4da32113cd54dff0267c3d4effa1c73c8f6da0a020b911cc7bda2e7961b5d6a7 |
|
MD5 | 446d97b864ca2f8c9477d43b75450aab |
|
BLAKE2b-256 | 7542610b5502f7095b819f3cb88f32be7295cf1774af2cfee38a1a4172726fb2 |