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.70.10-cp311-cp311-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e0ba08d3e305961817777da7a1277aa4ccc6115c142d9c216334d73bb80f9a80 |
|
MD5 | 56d7966b1a593ba87c58c9a98aefebb9 |
|
BLAKE2b-256 | 5a957ba0e18174cb92b68b1afbb706614fb75c331ab3af07e8c871aa37f58769 |
Hashes for asgi_tools-0.70.10-cp311-cp311-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c647adebd4a7533c048b37cbcb74d586bde6e6dc79f82d7ac24343a469b76770 |
|
MD5 | abd8d4558d75d9f4dde00d4c5dd291b4 |
|
BLAKE2b-256 | 8d1558092830b87fcede72df95059ede77616107e7c13093070155c8d7479107 |
Hashes for asgi_tools-0.70.10-cp311-cp311-musllinux_1_1_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ceeade42ea8efc0663b6e80bd67e301f73b3ff1a2409d5e4aaa0977170081e92 |
|
MD5 | ef2a18509347ba1040ebfe1dff2afb1e |
|
BLAKE2b-256 | 823e49c5ec31cd1e684bd8a930c718bbd1148b0ca6f7089dcfbdfec3937f7479 |
Hashes for asgi_tools-0.70.10-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d28ef96457f0176e29c502bb99817ce794c97a75d3205cb2bb6f40d78b3c6267 |
|
MD5 | a12baf94873aaff022bd6ace69341331 |
|
BLAKE2b-256 | ef57b95f58b7277dbc7f122d5bcadd9fa4a405e114be70bc2dafb5df87d671be |
Hashes for asgi_tools-0.70.10-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b2acd0247c564b2f3be7fc617e567980a20a626e57c3f874c55782a4fd5d04f3 |
|
MD5 | 8ab922666e33400c29115adddc002bfc |
|
BLAKE2b-256 | 03babff38881bbb534687a22583fcd2a127ba17e33188addc7e32d6fdd76cd4b |
Hashes for asgi_tools-0.70.10-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9ba71203e90c959faaf36f9d4916e1014e4cd1484b1046771e9ed1620055ca6c |
|
MD5 | 11ff38bbb5de7e3a83e22a271fab07ab |
|
BLAKE2b-256 | bf387000641b082947e56ff3443ed2b35fee3f518ae4183723691fc504b1b1c5 |
Hashes for asgi_tools-0.70.10-cp311-cp311-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e1846cfeecac808c927f41bf70cdefd9c5d2fc9e9497e038be872e6392494f04 |
|
MD5 | 0a546a5064063e766be7bc917424c621 |
|
BLAKE2b-256 | ee9e6a7ee0b276bdbb7516bf5c4723da8492057c679617ee818925e94cf11ceb |
Hashes for asgi_tools-0.70.10-cp310-cp310-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f26302fa74b0bc004436779218b89139bf24b819eed392cba44954f73f2d42cb |
|
MD5 | eaedbc09e1c3ec23ee250a028611a7e1 |
|
BLAKE2b-256 | 53d2bb8aa7f82aabd0c46d9d757d098ecd9a2eb643c3318ff3efc26c5b0a2fbe |
Hashes for asgi_tools-0.70.10-cp310-cp310-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 234e18aba92af1fb1d0fc257391b167fa925e579ec6a878d4309bfbc6c932984 |
|
MD5 | 12901203383a4366987a02d6843fb40f |
|
BLAKE2b-256 | 25daf4c4a62c960c08e9504b6a85392190a74fb1a30faba3f43c4bb8ef4217b9 |
Hashes for asgi_tools-0.70.10-cp310-cp310-musllinux_1_1_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3305b49279b76ea941a5356c55f661c0b2ab7b086f23e73d11c979bf6e7f6678 |
|
MD5 | 46806effe6ea6fbc506611181ca8c679 |
|
BLAKE2b-256 | fafd9ac2d3dc9e28c2bc1c4fc72c2105293b71f93f7571a6a10c3ea7c179b25e |
Hashes for asgi_tools-0.70.10-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a8b2f0181de17fa9a3724b68aa225d6cb8ba6a6dbe010f2e75e2ed86db735a4e |
|
MD5 | 3ad4ea70b0d0742ade9792212e9f5ceb |
|
BLAKE2b-256 | dc595e1503bff3358314bf7eaf0f2c2389927e9f1ac90acf82299684ee818bda |
Hashes for asgi_tools-0.70.10-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 59263f23cdb4dc2206faaad02bb1e2daf7ee3a75055a016f1959e163b4dd42c3 |
|
MD5 | b9b696627a1c82499db0a424cfdd5025 |
|
BLAKE2b-256 | a0af296cc65da302c09af267b006ce1071b5f4dfeba5fa5a28b33622c684208c |
Hashes for asgi_tools-0.70.10-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f98b7024f50bd78623a06365a928ae113cbc6ba3361ad27def7d1124312b10e1 |
|
MD5 | 72e6db39961225912e91dada71c88c67 |
|
BLAKE2b-256 | cd8acb4416f6c1ee2b73d5fdba79e086ade2ebe62a9c1fa113b64c97f1f82067 |
Hashes for asgi_tools-0.70.10-cp310-cp310-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2aa18fc0fcf7531840c4e1e29271560535c7c417588e66c9761ac61bac010702 |
|
MD5 | 9236c693f850633cd8efd843c1634a7b |
|
BLAKE2b-256 | ccb95b3e1be30476e992607fb87ffea7750eda6559eccf327265eca99c9ad514 |
Hashes for asgi_tools-0.70.10-cp39-cp39-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3876867f3a0125d060a1a6cc9216621c11ecd8d4643d7295615e409b98772ac2 |
|
MD5 | dda3d23bf7eaf2b721b1f5273aa068cf |
|
BLAKE2b-256 | a3e67dbb82abb5663c0560fc5c4eeb09e1cf579e033988d1d4c79ae4f8957e94 |
Hashes for asgi_tools-0.70.10-cp39-cp39-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 936fe989d2239f2a604d148b61a9535b41c7d32a8e57447abe99ced8786f74c1 |
|
MD5 | a1590e2c468ac588e14ac34afc7d08ef |
|
BLAKE2b-256 | 800ec3baa1d88daf99dfc36394ca32b2f1be58e39de209de52c36e0a4abfd0d0 |
Hashes for asgi_tools-0.70.10-cp39-cp39-musllinux_1_1_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | be3c6f494624ffccdab85c2e80ab03334e9c6d2fc01569f5b372ee5e4f5173bb |
|
MD5 | 6c79b553c95d49599911ead7fbc21b95 |
|
BLAKE2b-256 | 4a36afb0d8be6dd5ee1cab76c2d3210f7aa2b3bf17c4b129d9a99b861bf4eec1 |
Hashes for asgi_tools-0.70.10-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1341afb85fe85eb71b8052db30015664395bbbda1b2bb675545cadf12e3ec824 |
|
MD5 | 1c512873ef0bb773ece19b94145021dd |
|
BLAKE2b-256 | 273494b26aeb1c3bab1f79e291bb07cef0f87d1a291c67ef1e36acb1cd8a54af |
Hashes for asgi_tools-0.70.10-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 93c83e912c3c23e15ccb6d69f0f8be03768b5af408141d4d06a8bcbd15753ac8 |
|
MD5 | 069e29673965120dfb346532b576d33c |
|
BLAKE2b-256 | 799a4c067faf349537082e4da7f28064ab050e8dc51f96e0313e15e492dbace5 |
Hashes for asgi_tools-0.70.10-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a3e32bd0ec02ed97dcf164f01706b2294af16862f494b4df1a65374f06bfac3b |
|
MD5 | 02ea619197d5a176cab98fcbe8ca34b7 |
|
BLAKE2b-256 | c6733a73a0b3f759cbbc113833dc817bfb4b8448dd8fe6ed40f0461f62019504 |
Hashes for asgi_tools-0.70.10-cp39-cp39-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 183c21371c20b42cd1224b16e306925fe610fd87841843a36dddfba3ac24d723 |
|
MD5 | 2eadd515fed4085fc20b14fa7fef9286 |
|
BLAKE2b-256 | d5f0b38c6e1ede60e6167d99dcb5e022858ab94112c9ef05f362cf0332f9e819 |
Hashes for asgi_tools-0.70.10-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fde0d567c6966ca911f8204f0046e052ef924fb8211c29e80f0a256197f4e08e |
|
MD5 | 73ff6b2e03ee028f605c518546abcbe8 |
|
BLAKE2b-256 | 76489cf9938d8618ce7008edf3a29d7683ddb0148131672d5d625973d51a983d |
Hashes for asgi_tools-0.70.10-cp38-cp38-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 295b8a48807f888d1c28bf6b1fef45066d66196285dbb3f54cf1c46825bfcc75 |
|
MD5 | a750b43e6a952402f83b07338898bcaa |
|
BLAKE2b-256 | 3ba52df8cc268b927a82b13df8585a3c8941743a86201675544ff0d74819e854 |
Hashes for asgi_tools-0.70.10-cp38-cp38-musllinux_1_1_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a3870b4a5415e34a6a7c4947de605171e70a6dffabc670637f6331759ecbfbfe |
|
MD5 | 96005c2f16148bd1da8327900c1a7a84 |
|
BLAKE2b-256 | decb7053986e67a1430e997613d86a34fd98deb4d55a69d46c87143d1f969552 |
Hashes for asgi_tools-0.70.10-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 22ff56b80df266d9d9d1fa5696109ab2b88a7cb133860965194a91e2283b99eb |
|
MD5 | 907c76dd892203f893cd21c127835c47 |
|
BLAKE2b-256 | ecbcc6070eadbd4ddbd983b19426586afef29a89eb78fa698de7a7b18d0f514d |
Hashes for asgi_tools-0.70.10-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d132956ad5bf50de5b0d6450a3dd6c9bd4739ea99fa3f178a2487c1748bf2abd |
|
MD5 | c53f99083e4c03a3d2d591ceedbce78a |
|
BLAKE2b-256 | 514934cfeccbbea4e4175399cc921d628b621e05c0f744e50bcbac37b682c3f5 |
Hashes for asgi_tools-0.70.10-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8c63255a8836e16b958b4e0c69b833735602855088957aec79c8edbcee68d048 |
|
MD5 | 811dd8d3378daaf4c6a461e9f1b690be |
|
BLAKE2b-256 | 5da1a7b7dd4781b46930263e9a0cef9adc4439511960c72660454a95d6ff583d |
Hashes for asgi_tools-0.70.10-cp38-cp38-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6d8e819fc33551bd0906c73435aba790466f311ec8434342b09480d9112860a8 |
|
MD5 | 3a92ae07993738c3b6885ef6c5558993 |
|
BLAKE2b-256 | c2d52460819cf6614aace9a2795fd2b5556063db2981fe53f9218f39a244e9a4 |
Hashes for asgi_tools-0.70.10-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9cef11b1b6374ef611ccf3473cb40e762864c25e77c7535248e0bbca55734d1e |
|
MD5 | 65c82c86dcc5e4bbcc26d989ecde3d20 |
|
BLAKE2b-256 | b86fed3af65ef716c4b602f21d157992259f8ced22d004aaae4bcbde7545048e |
Hashes for asgi_tools-0.70.10-cp37-cp37m-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d299a732f16b260bc0f90f2e1ad7c02d1079bda7ed796d8e309190f2e44038fa |
|
MD5 | 5c061b42d8c791309e01c6297ac0f753 |
|
BLAKE2b-256 | a2faa3210a36175f81f89d7c764a656328fb5c401c1a91378c125382c5dcfafd |
Hashes for asgi_tools-0.70.10-cp37-cp37m-musllinux_1_1_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8a645c98c182aa0e59a73aa813a4c297f5530a3656bf5a2738dc66427b0dab63 |
|
MD5 | 4fb2cde5d6dc9624404ef4e420b4a1bb |
|
BLAKE2b-256 | cb6d8b51490374835c1c771c5444b9ce0af6b52a61e973814d6e58ac1e2e435f |
Hashes for asgi_tools-0.70.10-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 88565ab5a80c9560ba83890ae0050558943eb4dcc287f4a944417705bc6f4d16 |
|
MD5 | 65c76e3eb2a3cda98e97ae2c6783de61 |
|
BLAKE2b-256 | f0ddc78b5a621a3a0abbc38229e27a96fbf3d90802b77e657794c68aa2931a43 |
Hashes for asgi_tools-0.70.10-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f584d6e389e911b85c1170888d8ef536fc612bef298f7064d785155a2d52be9c |
|
MD5 | f52b9521b96037c163941ae0faf34301 |
|
BLAKE2b-256 | 035f5332501e55f64cc23c737c64399ece52f80ca0479dda4696e7c269c94af7 |
Hashes for asgi_tools-0.70.10-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2b4da1eef78a512824b0b362e56eab5ae985fafb53b035f1aabacae6e2f80916 |
|
MD5 | 181285217ed8678be11f74524ea03b73 |
|
BLAKE2b-256 | c051c929180b0dc9678627e2941571fd31170d5f26956cb261a7ca749fa4809e |