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.70.0-cp311-cp311-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 096e4a1e1d790fbfae9b8652cee5b95024cdf770e750f8248cfdf5b6e1932375 |
|
MD5 | 28c18d123ffeb7366375424263af3aa6 |
|
BLAKE2b-256 | 2d4f927ba9666408b7e435102c2dc641c401de1a684502fdd9d32fded2df8c45 |
Hashes for asgi_tools-0.70.0-cp311-cp311-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1b0dd20f6b2dbad87fa42c5fc664192867c5aff15576d4bebd24ff6840b9dc91 |
|
MD5 | 61327408a5084d795188fff54e1b8ea6 |
|
BLAKE2b-256 | 44fca6245ad9c29f8c7961afe20ea1f2a989e7f0ff893ca1971e9ad98ab23d9d |
Hashes for asgi_tools-0.70.0-cp311-cp311-musllinux_1_1_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f6ed6284de050b61bfa930364c2f61b7a90e1bfd5b67dc5a008d7678897b3d42 |
|
MD5 | 61c6d4e7169c00d45b5fba4056157488 |
|
BLAKE2b-256 | 03d6f8113f00f1f8f6283da3ff0e2b394f5ccca25d6e4b88d3a0c27c2ca48f0b |
Hashes for asgi_tools-0.70.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8a505b00d8c506dd5a91225e7562bfbe6b26a27c00a41c188a9fa47f96760ce8 |
|
MD5 | 965dbffbdec141529d83ce8b614a96c3 |
|
BLAKE2b-256 | 9f7d37868dba56e4e2be96cb84aee1a796367fdc3fa406aeeb6d1c22068e512e |
Hashes for asgi_tools-0.70.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ce4964b75f3a4dd616e0ccefbbe69df1802efb560629b7c56498d1dbc256b2d6 |
|
MD5 | 93fef50f52729941a5c0cfb077d901dc |
|
BLAKE2b-256 | 3c36516cf009336efbd8f4d7c5b3ee8bbef4551cf8f96b697836c975099b7760 |
Hashes for asgi_tools-0.70.0-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 56bcac369cabf27604586aa0da49fccd6f3477866131e6b2bfec713318c81638 |
|
MD5 | 79ba735a7065bd0a47a429dc130e0201 |
|
BLAKE2b-256 | d8ba0a5bed6af048d5cf10972964b0bce486e846e7e14794637648aebc6222c1 |
Hashes for asgi_tools-0.70.0-cp311-cp311-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 15d47b36146120b29e324f085f51fb007f98ff2c6a3580c1b127a072ea27f85c |
|
MD5 | f616da69cde73d7df4aaff49b48f99d0 |
|
BLAKE2b-256 | c2e1179d3e67487034768201602e326c618c4a1f570588a0429877bab2daf0ee |
Hashes for asgi_tools-0.70.0-cp310-cp310-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9c109deddd7cd6bb767f73226c466f79a4f605e5ec4dcff6cda315c46470443e |
|
MD5 | 685ce591af6bf8730162e9b2404be5b0 |
|
BLAKE2b-256 | 9547df3bf9ad3d6004d7c939a4782b353688e367ca2369b11ba5a178226a91b6 |
Hashes for asgi_tools-0.70.0-cp310-cp310-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e93452559e72ec33c1c47f82fe49d6f940e23412fdc806f67c3815c03d564bda |
|
MD5 | 747d54509706b09a45b93266674cd46b |
|
BLAKE2b-256 | 4661c3e7fc19a85c05fc8c60970bbfd368846c2cce45de03cbac30e9ae5988f6 |
Hashes for asgi_tools-0.70.0-cp310-cp310-musllinux_1_1_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 049c69949636a2f1e793b697e435a22cf80ff3d1b7a43150dd32840b13350f44 |
|
MD5 | 4fa4ff3283208ce90f9739c8b735d274 |
|
BLAKE2b-256 | d76122267a95724c115e4da3abb87a088cb697aea4b8be05d4f3a2bba908ae85 |
Hashes for asgi_tools-0.70.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8028f1166011623594a8071710241b39f0594a9426305effff1ff35e598e538b |
|
MD5 | 1fa1b617bf9ba0c51d2a3fd77b3ca2b7 |
|
BLAKE2b-256 | 43dded1873227c6efd51f3f8004404e43c45f8c3a26490f5c59f1d691c681650 |
Hashes for asgi_tools-0.70.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8d9f0bb43a3feaa7d1898f4ae6bac8fd876f7bce78f6750a28def712eab9f215 |
|
MD5 | 2493b6825559b102628860a001cf06ae |
|
BLAKE2b-256 | cdef77002bc49d3485243d6ed18e6f20e1eaaa30823994f3cf97b5ebbcd26f66 |
Hashes for asgi_tools-0.70.0-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a0de6770a7d27d7dd33159d7049a6dc73300d69bc24c6645553e3812e5469a3d |
|
MD5 | 7f7c7cb3a2c0712352def14595bc93c4 |
|
BLAKE2b-256 | f1f379ba0ee652fe49e2c617a742772ccab3de75c7f3783b58a7cafceebba82f |
Hashes for asgi_tools-0.70.0-cp310-cp310-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 65c151b1468a7f54ae87c9366e8da5fdb436788a668de8d3f0f51363e2805ab8 |
|
MD5 | ecdb4e11ef94e5d974af72999e985457 |
|
BLAKE2b-256 | 81c8eb273800c45033e17da734d182e4eb44e01823d64f4a31626aae417a467d |
Hashes for asgi_tools-0.70.0-cp39-cp39-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1dfd373ce0da6643331c98afb58b1d28cd01bc5020bfe2f92e1a2c62a1ab5408 |
|
MD5 | 3f80c6b72662bed06d7a56997252f95d |
|
BLAKE2b-256 | a8eb0111ab210e59fa118ba4b31cfb4e290850ba6f6427992902e1a7c2b76006 |
Hashes for asgi_tools-0.70.0-cp39-cp39-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1c7cf0ed272d44132b68634386ce1b219bf98c431bf2fe40f1e1c0ca6defc24d |
|
MD5 | 7a7ba1d0ef31b2bfca6a6246c57c686c |
|
BLAKE2b-256 | e3cf9bf6bede8805b4bb80df52bcc69e6a51da08a794573529ef0cb4210c1770 |
Hashes for asgi_tools-0.70.0-cp39-cp39-musllinux_1_1_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d0b38ffac1d328fb280e3d745e87f402d95e707e048d1b95dffa96b6555377e8 |
|
MD5 | 27d7333b72b49ecd334724c72d2662a6 |
|
BLAKE2b-256 | 48b102ded8166e410552e84b2b830ba2fc4a6e757d546bf23aacefa46ea5c5fa |
Hashes for asgi_tools-0.70.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ad6e141dfb89ed59cb475d32ecbb60bd6eca158d66e56376b7c33ffeeed79297 |
|
MD5 | 876a908f67677d4ee00977897ca127eb |
|
BLAKE2b-256 | 2ccdd8c512870077b54787d725c27f266f732b97f270be8a894c1938f289a8b2 |
Hashes for asgi_tools-0.70.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | bc80a2d568dca0ef77f2858f270e92569fa98a05fd98f780cd479d512c285899 |
|
MD5 | 9e5861e9c7a7a867ef27608dc8d3f0fe |
|
BLAKE2b-256 | bb3c472bfa9ab5e7ee25e028e3cc4d912b75bf300323b774448867dcbf06d93c |
Hashes for asgi_tools-0.70.0-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7b237d6831d27a2a2c93168aee0701b07217d32fa55a3a9ccf24fe8735584573 |
|
MD5 | a2cbc10b3fd0fa6f304d30057dde97aa |
|
BLAKE2b-256 | 3856bc1a53635736b100b6bd6b26709f8c6a99989e846363f7b3041a41d48046 |
Hashes for asgi_tools-0.70.0-cp39-cp39-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 47821a319100c358a22be41087f2222bd78a67052efba29aba23dff85d5930bf |
|
MD5 | dbca76e92ac14b0ef5d1855c1ee649ca |
|
BLAKE2b-256 | 9fdd910b901aa3e7037d42d4f4cc22ae6a2b56f7ce4025ce8a4aaa4c73c57578 |
Hashes for asgi_tools-0.70.0-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4540882d99700346fe7d49edbf1a94792b745617ab932df2947086d81e0699aa |
|
MD5 | 2ee801582cefe9b34f2e4277922f2355 |
|
BLAKE2b-256 | 06807d27f8434b5df1126ec70dbe83a089f9e29d22a19ccf16a74af5a7284eef |
Hashes for asgi_tools-0.70.0-cp38-cp38-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4a35b2fa894a6a1e135134afe85010040127114200edbe0997e41c147e465e3b |
|
MD5 | ba0d894c6face36bc58a4d50bdbf34aa |
|
BLAKE2b-256 | 8a4e64d6d8772dbd6ea16f06ab81c6bdeec89a923d0868978dcda2ba450569a4 |
Hashes for asgi_tools-0.70.0-cp38-cp38-musllinux_1_1_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 657a0006822c53e3764341d7e125275cf647ed7e5f2cab527cbe8a3b0646c018 |
|
MD5 | 574773a4b552b83042ee3b9b64ca766f |
|
BLAKE2b-256 | 48c74f234ff18dcc25a68e78070e6a6c35913fb55d0c5f373ef702368d4415ac |
Hashes for asgi_tools-0.70.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c19c18a9c034ed6673e834ab65749f887ad1e1574cab4a8628c62a0f6f051f58 |
|
MD5 | 170f6367ad0ef92ae19de968f92b2262 |
|
BLAKE2b-256 | 4b748fc5bfe6d5016d794109f7840ac9a59b2dee21b27804fd3fc30136f7068b |
Hashes for asgi_tools-0.70.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9969c664eb7998bd269e81267f0054d1ec56e93c4bc71c70b17f9af2daf38241 |
|
MD5 | 026d6c9a7382708b813e4874c2f5be6d |
|
BLAKE2b-256 | 8dd99c8f2c10b5ed48b2cd6869688c0260c60888795e5a83db7b73ae5315e226 |
Hashes for asgi_tools-0.70.0-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 039c74ca680b704b18b6b547e18bfb5fc28a62e1fbe23f6d2553afb63f8cbbc9 |
|
MD5 | efc27a16731127633abae141f0598557 |
|
BLAKE2b-256 | 67f62b0dbf312258bf880d3404d1c713c1e22be57c93ff70dac00dba3ba58267 |
Hashes for asgi_tools-0.70.0-cp38-cp38-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 53320d590e7cb63be01771045ffe92ec718e2a02202475f6ac1e21f71c4870e7 |
|
MD5 | 25147d17d832329b25fd934ee8437fa7 |
|
BLAKE2b-256 | 0c452008dc5891e4cac46d163ba3ae185483c705480dead35b597085ff629d15 |
Hashes for asgi_tools-0.70.0-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b3ff5b59811185bc4ac49335bba46161ec69e71f8f50da06afff5f59e140d1a0 |
|
MD5 | 9981f469b21db2b10f74c82a85591529 |
|
BLAKE2b-256 | 8733c664558d82055d4cc4c78f77be62010b7fd52ff646943450f3af80f3fe69 |
Hashes for asgi_tools-0.70.0-cp37-cp37m-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | bfd543a8d39ce5bfada2d0879052678290f46f05d1fdbb0ff73ff443e54fcada |
|
MD5 | a79d09a20b67e2cc8b251ab871a54e8e |
|
BLAKE2b-256 | b364cb49dc1fb05b935c3884865f4e1c98b50b9ba44baf6ee8b792c2731a606d |
Hashes for asgi_tools-0.70.0-cp37-cp37m-musllinux_1_1_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ba563c35dd17296d387cc56d6128680aefb969d48c11c972ffde376c9a5e6df7 |
|
MD5 | 683cbcb11c3c7ff209678505207534f9 |
|
BLAKE2b-256 | 3f08f304a22ab1c3888aeb3dee4cab2c9cb4fbd4eb2afc625c4ec07fd6a42175 |
Hashes for asgi_tools-0.70.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9305c1602af70e92f8df5952d9bd2db4fac426274d1ba0465aae6eca7f1839cb |
|
MD5 | aa5972c8d1dd277df75aa496757a505d |
|
BLAKE2b-256 | 82eb53cb5a7d6631d8f459a88c190d8696d68e282cd9db03148ef2c6331be62d |
Hashes for asgi_tools-0.70.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e99617fe39684ee9c96c74d988100609ca0df74d21ec4b7e27515d3b6e99ca32 |
|
MD5 | a3018d0ec1b5b5ad3b1af690dc14ef48 |
|
BLAKE2b-256 | cbb5fc2e16df69dbe9e9d0d0f97685bafd80ca1c7f2d19cf4453379f1f34a6ac |
Hashes for asgi_tools-0.70.0-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 777c0474cd152b67fd2c5e79f754fd32cda9de2b0bda4380b2604d1e32616b97 |
|
MD5 | b87f8536ada8d8b5b04025c8d4220383 |
|
BLAKE2b-256 | 55eca6b35a4aae7d7f1d1057693ed7c41c105c824ececaff909c83f282d5bdaf |