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.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.71.0-cp311-cp311-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1b2a44cb0cb37a5b8392f9c254a39b6008088661a79db752ea0f124c005357a3 |
|
MD5 | f6171cc474b0be3ce998822f051dda58 |
|
BLAKE2b-256 | 10a852714bad7fb4ac33c99a05397bc4b56c0982748704ed22748304dc11ff73 |
Hashes for asgi_tools-0.71.0-cp311-cp311-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c2522ef8965f0a5a17da473adc57ddca4d991f1a3567d0e5197b77e831218b66 |
|
MD5 | 2bd730b1d19e90cb58cf623dda4d5333 |
|
BLAKE2b-256 | 4b04ef9d47d6bbf90816b675c2e6d0a3347ca9e86edb5db46526e79f4f20ec59 |
Hashes for asgi_tools-0.71.0-cp311-cp311-musllinux_1_1_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b4fcabd8eaecdb87e2d8b8c20ee18020772c7fcf947b8cd88e65617dac73b033 |
|
MD5 | de93411c533cbc35b513d2ccf8b10ab0 |
|
BLAKE2b-256 | 6dca0a64e337d6ce2431496367a75f7ac663e46a45d2550129fc5794265e7f6f |
Hashes for asgi_tools-0.71.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4186bf5cd7c3a68ac4343e0b76ba5e235384ed5535e22df172d0965d34f97e76 |
|
MD5 | 81be195a57197a753074ae2196b66b01 |
|
BLAKE2b-256 | 9d2625377e7caf4457b38204e3472fbd81b1fe3f9fa95150bc8fd3d59e74ef0d |
Hashes for asgi_tools-0.71.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | aa8c04358a77084200ec3c1e8f45c8570f1857528cd9862520129cc170753887 |
|
MD5 | 5819f7449b9515564d2e0216497bddaf |
|
BLAKE2b-256 | 838a55f6f57f1b1300072b2ea3e447bfcd677eb882a0c0acd80d21904c48d314 |
Hashes for asgi_tools-0.71.0-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2ce5324cab7fc8068d018ea769840fb777c86a9dc9c5bc6a9021c94216662572 |
|
MD5 | 190620b79435a47ce72fa131311f0209 |
|
BLAKE2b-256 | 85e89c9115e40ba3fcffbb143979a97ff5e1712776b715ea972cd4d5b6201d05 |
Hashes for asgi_tools-0.71.0-cp311-cp311-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 28859922310bbedf2baa5593f61adb2bf41088630743993a78d228bb3a54e537 |
|
MD5 | 4ff14c43a41817a457db55fe57b20522 |
|
BLAKE2b-256 | c5b36f5fd4bade482d2e3d8e21ab0a9c24e31164bf206944b7265b898c4ee5e7 |
Hashes for asgi_tools-0.71.0-cp310-cp310-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | df91043d54b5241db3876e8ce4eb012973c8514d110360256e3794a5d254bb77 |
|
MD5 | 8916c5f44aadb8c4f12a3412202bc89e |
|
BLAKE2b-256 | 40ec050dad618bcb2a3fa45c71ba8c0b2fa3b79637a2a80ceb972e9173853392 |
Hashes for asgi_tools-0.71.0-cp310-cp310-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 55ab32f96c5107681361f8f8e4e095f295885af4c24eb48624c0f6b634d45a9a |
|
MD5 | 31124a3b9f0cf1d3b100b9dd90484f17 |
|
BLAKE2b-256 | 99b0ffefeeb0c779fa7840029fdbb6aabc7479518ee468138fd309d0d1565621 |
Hashes for asgi_tools-0.71.0-cp310-cp310-musllinux_1_1_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3b1240d122d51eb52baadc9a82fa50a8c8ff2bece0631ef76cdf6b35d919c773 |
|
MD5 | db51c89cd4bb214e9a89ea757f676b1b |
|
BLAKE2b-256 | 15813688cf3103fa2c21a1e5863d4d3b7a66b7c06f894a5230d2be233c6330a0 |
Hashes for asgi_tools-0.71.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0be533579abe5851d4388cc4caa96b6604cec73f1eb9d2578b644d9de3af07eb |
|
MD5 | c04e86bf2de579fbf982e053d081ce5d |
|
BLAKE2b-256 | 303093f16819ecca49494eebbfa1e99102fd689c8fe157505e72438c14432a24 |
Hashes for asgi_tools-0.71.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a166ed869ebb45d95d338cc260d8f88796f62e5f15c3862eb5b0fcde411acf68 |
|
MD5 | 53d03b9f8183a346a86c05e9247ba09d |
|
BLAKE2b-256 | 254704bb348e0ec1de67c407062e61f297b5e3d7e24a87dd46f9c5509a094a59 |
Hashes for asgi_tools-0.71.0-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ed598bcdff57f49f1282399ea04f84a4967180f160e70ec65978dfd921778dbe |
|
MD5 | ea16e4e6c2d61d139f82f769613f323e |
|
BLAKE2b-256 | d47ddefbd1ef636f7976348dc1c88160be410d7b75e1472677835e8e40f2dc00 |
Hashes for asgi_tools-0.71.0-cp310-cp310-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 57d0315ff7ba32f9829dade0e570dcefdf007cd0f0099bdb5357bff0ba76432a |
|
MD5 | b917e9298bd9c1629512f77b47f7a0aa |
|
BLAKE2b-256 | 21a5cc81910a1e6fa72b477dc5cbd14934632c7fca3a5363111135c9e7218271 |
Hashes for asgi_tools-0.71.0-cp39-cp39-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 87d0d9509a693233552884ed8242d69f2368351baead3765e8a1114fe8b5b9a4 |
|
MD5 | ac5cc865462cb0d53f319262456d334f |
|
BLAKE2b-256 | 980d23f9ebe05fe4ee99f5b30cf6e13b99b050e11833e97128d3001372831ad8 |
Hashes for asgi_tools-0.71.0-cp39-cp39-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1458e731a453eb902cecf8b836b5199ba4334f3ed2c3e00d9dce137be67dbd5d |
|
MD5 | 38655fe8df6ec7579c9ca3c6486529cf |
|
BLAKE2b-256 | 3044025653148e727e7591be5590134006f882c03926f7c4931893a1e2f5cf5f |
Hashes for asgi_tools-0.71.0-cp39-cp39-musllinux_1_1_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 375a833d379ec3a9f6f41ade5d1f2db03afb96ea00401a48b4710aee597cc939 |
|
MD5 | 1b5eaaa1d134c9ef10cf3f62667d73a7 |
|
BLAKE2b-256 | 66bc298ec933d6e61e59a604130537e03770dadbbf912da541e009a5bcbb22b9 |
Hashes for asgi_tools-0.71.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3762fbe304dd81f639604b8315168cb2b5ec6414bf1b7d51cc7bc505c5244f8f |
|
MD5 | fb8f105d10ab28b1ee8af1936754e41c |
|
BLAKE2b-256 | 1565b3bb73b8e1e6c7d1533d1abe6277ae493bd6b92f8e4545ccfbd56b2564bf |
Hashes for asgi_tools-0.71.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2f4e6698ff5c0227367f1c3adc834c9295a50cf5b082eefedf6609282c9d20f8 |
|
MD5 | 65f5d20254d0d3f76180a5511ccbfcfd |
|
BLAKE2b-256 | d75c1b004e5a1dbd252b47897455bd532ec9529610aa2d6c1d27ecc96989a729 |
Hashes for asgi_tools-0.71.0-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8067484c25027850ed7b9ea85ff0a398aa07f8cb4c9280f2889cc1cab370ab82 |
|
MD5 | bb874d048110aa3d2a56c3e670b6931f |
|
BLAKE2b-256 | e15cfcaf7cef5b36f54ebdd74b10a94c9458885192bdbfef38e16c8916711296 |
Hashes for asgi_tools-0.71.0-cp39-cp39-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | dd4a1b402c1d56747258465e466e49d928b23a0c23faff6b00a55b5071d153b5 |
|
MD5 | 5de599b9684c91e5fd8bbc0f10b91adb |
|
BLAKE2b-256 | 2d777f92fd929665836ed8dd0f38d3dd4afe8a91649f9e49bcd6876be39ab76d |
Hashes for asgi_tools-0.71.0-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9ec71e7ac33c17731e5615d77fe6bb837e60b57bce233e80d646cf415329459d |
|
MD5 | 8be1d3ccec9eb0e5ceb8cf937d14c109 |
|
BLAKE2b-256 | 1b84b09ee5ae3b7b5deedaa766af6d06d0d83efd6c6718bed08be861b3a72e96 |
Hashes for asgi_tools-0.71.0-cp38-cp38-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | cffc5b7162b06912302a9b30b43667164bab8edb9900a2beeaeb10b7d32c5f8a |
|
MD5 | d9c2f82964511dd31c8d4bdbea939614 |
|
BLAKE2b-256 | fa5d22c8a42ff0fe351399802901ded0cc03580df2927f999088af7464dbf65f |
Hashes for asgi_tools-0.71.0-cp38-cp38-musllinux_1_1_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b22ff5a93495407cf571732af7a568086c77f8a0d37d4c8dc8cfa2821f903c48 |
|
MD5 | 13e2e7d1f8038ae4523996439c7bdc07 |
|
BLAKE2b-256 | 86daafddf123cb450fefccd9fd91d4e0ef3ba1792ffd2aeb9701dcd4f020ccbc |
Hashes for asgi_tools-0.71.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | de3e90e647020c1e47f8657153f3b7285cdd1f78006ac945f1060c11ff341715 |
|
MD5 | cffdd9067fcb1bad63434635ac71b35d |
|
BLAKE2b-256 | c93a24f780cd16717683937ddb3e7fed0fd3d35c33bbeba085d6c2371f69ae02 |
Hashes for asgi_tools-0.71.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d785b76ac8bd820d68b8f436e4822c1e8b85961735f9bfee631cf79484d95382 |
|
MD5 | ae6cde61423768ef822526fc0b8cb129 |
|
BLAKE2b-256 | 49b570d1ba28150f3e605c5bfbd6e058140f04230d388db1115bbb52c86af848 |
Hashes for asgi_tools-0.71.0-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1790f778c0746a3cb2fed75cb36af2f90ee2abc3ef4e0c93a4a4550ff5533c8f |
|
MD5 | 8efd49232450d9241e24908e362b1554 |
|
BLAKE2b-256 | 8681ee12b321b3e0adcde4b6d38c11f2c5b58edd8441b9eb69092c2f6d6f6977 |
Hashes for asgi_tools-0.71.0-cp38-cp38-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5659491d5d1c9c78598306966d3bb642180c0d38f98b3558bcd3f0d68cde3bf1 |
|
MD5 | 86bd20a13efe4276dcda23f2041ed6ec |
|
BLAKE2b-256 | 981a6a4fddd9ccf1b83fd5877fee10f0e4eb07582c9307074e5cac1bfd30076e |
Hashes for asgi_tools-0.71.0-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 51db6eeae8f2fb467bf42d6eeffe11d74b2d0b41f11cb59b4e3ee04175e2336b |
|
MD5 | 4d43752bae75db8abd405610dc3ce585 |
|
BLAKE2b-256 | d29f88989adec83b7ca0c745617633504ab48c500ceac102c4655bb755090961 |
Hashes for asgi_tools-0.71.0-cp37-cp37m-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 317645b20fa032ee82885c2af0f1011b4ce1ffc39feddc7b99e3cf24116c5b78 |
|
MD5 | f12b8e565eb3268aac89b0cb99179172 |
|
BLAKE2b-256 | 942c24281415f9d89e317ca053800e743785b7f2908655017e87e3a33dfb3f45 |
Hashes for asgi_tools-0.71.0-cp37-cp37m-musllinux_1_1_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f3a5b155053cf21a09fc55a7e73b4a6bd490bfa6585a15497707a1e2db779827 |
|
MD5 | 1cb6f215fc0504cc1fba4bdf89c1d8e3 |
|
BLAKE2b-256 | 8e9e5fe751eb4fb9c39fd1fb9fe97c6c8bbf12ec2a1b50b104d77b0aa01dc0f8 |
Hashes for asgi_tools-0.71.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | bba51de83bcdc0f04651516ed9d6846482ea694b8f7183e39573b9efab7d9482 |
|
MD5 | 985586c7983bebf0eb226bfde24827f7 |
|
BLAKE2b-256 | 8754eac568efdfef98a2964cdada587c7e49c56659d4285fa6404dac727f798c |
Hashes for asgi_tools-0.71.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c5099bc6d19f24fc4589a4bd16e502aa7655bc47eca194542acd3f5e948c5353 |
|
MD5 | 80420532b2d7cc4d32eb908d5a734027 |
|
BLAKE2b-256 | 5e1c46ba6cd82d4a0cc405b87a561c85848d51be8a47c61f8656fc3716421698 |
Hashes for asgi_tools-0.71.0-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ef026bd61d4009fb7490b7a377b557879d256c5bd142f5b655f84b522af268d5 |
|
MD5 | ed83e2afcc23db59958cd34cc7d500a1 |
|
BLAKE2b-256 | 1a6653f9bc9a56b6bfd431b0f8829ca7a98f1cc77a41bd5d7febe5676a62559f |