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.75.2-cp311-cp311-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fda79cd69498c0dd721deb1b37673c0b214ab9289c08d015cdb6bd3c0591e289 |
|
MD5 | 1f5164c396ac3dafbe36c30d592c5175 |
|
BLAKE2b-256 | 78a18c2d47a5ae41cf366ac7f810ac2da57a8f80af3ed7afab26f69bc83987ad |
Hashes for asgi_tools-0.75.2-cp311-cp311-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6a63ef550c6597c1ac163c81a9c7a06cae649ab63b5eb2bc50cf5c5e60d51834 |
|
MD5 | 2e7621f5cfbe9d38dc2dc803540b5c2c |
|
BLAKE2b-256 | dd6eae6f645a560fdadc07441b8c340cfc49786bc87cb90340c0d8ecc9a255d5 |
Hashes for asgi_tools-0.75.2-cp311-cp311-musllinux_1_1_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ef8d0728dc55a482c8d3124e6085f569d00ef4cd781647cf6a373ecd10858d66 |
|
MD5 | f71aab5636709661c550a2f1b2d1bede |
|
BLAKE2b-256 | d3f55b37f4ae80a47a5c0581cb0d38ced4d0d56df8cbcdb7a9e498cba5da99b0 |
Hashes for asgi_tools-0.75.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7580fb13c1402032203257ab35f0e5a44536c2d17dd29532974634278f8ce53b |
|
MD5 | d2d3dc1bee6057c37fee05a7203ac540 |
|
BLAKE2b-256 | 92a2090c95e22b53bfd14fcdc63d5e66de726cb2e4cdcb1fa2d58c1ab6e41db4 |
Hashes for asgi_tools-0.75.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 075ad56b0f7648032fce4d16eda56b8ffe0ede0f670b02ebe0ccdde0ff4570ae |
|
MD5 | 1bb880d98cd8359cdbeb9dc80f07d73a |
|
BLAKE2b-256 | fc75331965fcdf19c55169d6c7b1ef0888e71904ea46447c438c523cb0512c68 |
Hashes for asgi_tools-0.75.2-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 15f234d2ea12061e1850759239f298cdf1d54577d48ba68be7d2953a1474a9ae |
|
MD5 | af275ae2e26d27e124abb0cad68854b7 |
|
BLAKE2b-256 | a80b3755e577b853305d174cc34f329b393d0209870076df00739f090903ee4a |
Hashes for asgi_tools-0.75.2-cp311-cp311-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | cbacc2d2aaa45ce4115f62e3d3a7c7d06d77fb4a19454be01a54363fc4fc13fc |
|
MD5 | 5d6fa88d19171fde784c7cd2be230daa |
|
BLAKE2b-256 | 5e4d50d3e64104dbe77fc5bbf1c7ed5087a6749ccbe7b22c03f415cbf35eb516 |
Hashes for asgi_tools-0.75.2-cp310-cp310-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a81d7fe4435e70c4f420eb16c588a60394051b4c2b95db25a751eaea5dafccf5 |
|
MD5 | 293bc5b257cb7d256babe5e6b49aff7f |
|
BLAKE2b-256 | 5c4cd3849c5e86d1eebeb004b10aa221c42cd733e46bdbcfca0b0511f5879ff3 |
Hashes for asgi_tools-0.75.2-cp310-cp310-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0420cd332a6064a780ae956e4357f3c245ba3a0fe2d42a34d5702709353d5879 |
|
MD5 | 09ab5ca5d8f6cd18042fe1373d79753c |
|
BLAKE2b-256 | 38d079ff88919979406fcdcb6a718eac61c571c49062ab0de051420428670f74 |
Hashes for asgi_tools-0.75.2-cp310-cp310-musllinux_1_1_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a926de8396e27ae1ae28f38b414c7e17a1dbd893a7794c6c5165497e50f22f5d |
|
MD5 | 544571b59f70e262a4db019ed0610425 |
|
BLAKE2b-256 | affa9408df180bb5a45dd1a48e343db91df8c0b20abd944c43edeaa12184430a |
Hashes for asgi_tools-0.75.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 20b49f655ec7c470c4b043f6eac161f9adb8d03fe6d25345478fb098c5d02c3a |
|
MD5 | dbbbd4b423ecdb3a70e9542013732192 |
|
BLAKE2b-256 | f8ad24bd3dbe9d4a1f1a9c48d01872efe92b7016d2eb4f86f5fe4778455e0a23 |
Hashes for asgi_tools-0.75.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 278852b8695c1e2ff2f76803e499d90faa4694e6b8392df339b48f9c84a1987e |
|
MD5 | 07e6c7b9f0db355679881553e1c259c9 |
|
BLAKE2b-256 | c7d62016a7bad6ac4ec528f13365c8ff7f9113dcf46074ccba381385d4163f81 |
Hashes for asgi_tools-0.75.2-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1314fa9b05a3dfd692c0f6fcb9c2c9d1633cd910138cef3a441d4caaa6b18f37 |
|
MD5 | 2f57944c2740642853e8e2ae73d4a756 |
|
BLAKE2b-256 | d614bc575c61617c89470a12e6caefda04a1ee52f4473f1b77a8f63d4cd4beee |
Hashes for asgi_tools-0.75.2-cp310-cp310-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2ed6ea19446b829bc0de2409ca14d0b6f1fcca40f4cbe2177cbce77d45682e23 |
|
MD5 | 88e0b703de70755780054244e6b3ae83 |
|
BLAKE2b-256 | ab0c48257b2df2b945ed554ee42689ca0a373a4c101b79c2014e91062844f3ab |
Hashes for asgi_tools-0.75.2-cp39-cp39-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 763ef9371bcd4033aca6959585a52c5a540e86eae38816f2624293d69ab2c859 |
|
MD5 | 8524f353e7c139a0e433cbc958882594 |
|
BLAKE2b-256 | 96a4792be46cdb883567cd6c55df260d6472b15f7a1cd803fdb3c7a558728fbc |
Hashes for asgi_tools-0.75.2-cp39-cp39-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d826461933d19c4d6c6732831b32189ee8f0ad261e55f5bcc589d62004eedb69 |
|
MD5 | fd3054e473c2982d1830adb1528d15d1 |
|
BLAKE2b-256 | e2b6fd08d85d7f17de6951e1dd4b4a377f5b3d5f95caf163f6fd17da06e80d80 |
Hashes for asgi_tools-0.75.2-cp39-cp39-musllinux_1_1_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ee648bec9624778cfdb1f00edee0d31f3af5480b22da88001d5689230734b1d2 |
|
MD5 | e3d02ebbf8cb4b6fff305175629d98cf |
|
BLAKE2b-256 | 6f29e6f877e47b65d2916d689802c8328112ed4f56d7a4e603dad5fb80c09367 |
Hashes for asgi_tools-0.75.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 01d13d0fd4cfc5714fc58bf8e0743c78a145da7607d8d5c43df66dd3b4b34ee3 |
|
MD5 | f4ff0d9663341ab137ca4df06c4b3791 |
|
BLAKE2b-256 | a6fe8c01fe6e3768e230f4e69382695af9dec495ff18544f8436d193a9a96683 |
Hashes for asgi_tools-0.75.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 67f8102448d2147629a13122c83928c556c79db40edd2705c57f2599d0cc29a3 |
|
MD5 | 9a4eaabea2f5a51f9a73cc32d460e69e |
|
BLAKE2b-256 | 8ac1cc6fbd17d7873e6abec19b0c5d332a68c9bd39c0bc1c62e1ffb06a170699 |
Hashes for asgi_tools-0.75.2-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 66fc2b2fc408ff32d779dccdd59d70288cd71238664b7a7d19cad8a18fa6cbaf |
|
MD5 | e03e59dbb6f06021bcbf8195498b3e18 |
|
BLAKE2b-256 | 36c78af79e4221bb61756ee7b87f829af25bcbf6e6ca5635b480ca6598f3dfdc |
Hashes for asgi_tools-0.75.2-cp39-cp39-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3ed59530df48dffb60da51868e05904dde63a00863b7a648b1b0363dae0b4330 |
|
MD5 | 483cbdd9808a98a7096cbe4570d36c87 |
|
BLAKE2b-256 | 5980a76a1f4a3d42e37256888342dbc2eed180b0bab135aaa85a00bbbb9a5e14 |
Hashes for asgi_tools-0.75.2-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6b31acd437f567de7394e69d5174f8977b8346e8f0ac465fbf1f8e371768864e |
|
MD5 | a18e2d6fde2d25f4f3eeb029b0f01d7e |
|
BLAKE2b-256 | e99318720934968ca7676b881db5104a053836bde143af31db4b54986ef46bbc |
Hashes for asgi_tools-0.75.2-cp38-cp38-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 17f56dfab21cbee270369a38ad9ea4bd93afee6b274c487aa51dea14e4509bf8 |
|
MD5 | 2a192a0ab01d3eaff6272557ddb7a9be |
|
BLAKE2b-256 | f5b6c94749044480b7cf8f6109bd1ca516da3b5ae1f82f2ffad159032dab56d7 |
Hashes for asgi_tools-0.75.2-cp38-cp38-musllinux_1_1_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5e05da39e987dff3d7865ad5bf7a414323f5b28f5be3c7b530dfa1825ab4d3bb |
|
MD5 | 5fe0f2dcf29459973401b343f9ef575f |
|
BLAKE2b-256 | d5570f73719edfe76f8f57bd9dbe9ad7c4df04fbdae6065d337422b75486cb30 |
Hashes for asgi_tools-0.75.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d123684b88f90ff8231a3a21aa30900744076de742d37aabd2347cd8210dcf8b |
|
MD5 | d24caa4eeb56a712e883424d54870df6 |
|
BLAKE2b-256 | 9d955d49842d4e2c81dfcc7a4ad8fc0c101d7c5cbee6bcf403a6781663a829cf |
Hashes for asgi_tools-0.75.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ee9c3f9b176ed6c632f9b8a195f7c5058fcdef9dd7f19414b34ded8f9a2a1873 |
|
MD5 | 4b7338f7c7e37745642623fc49aacadc |
|
BLAKE2b-256 | cd062c6b98c87a8bc1c858c6a6e505ded697941a0e8b9b49a52a3f44deee4a52 |
Hashes for asgi_tools-0.75.2-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 619662fea367c8d5930105deb8a6c2b34a5998db3f4525ad8451d3e419683c40 |
|
MD5 | 6c6bc03ce7ab8f8b462ca79a51262077 |
|
BLAKE2b-256 | d6adcecccc476b019b04e6589682124764678f05d928c060b1314f434d3656d6 |
Hashes for asgi_tools-0.75.2-cp38-cp38-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4ccfbf109908c8359934ad936d277eb2d63452236ad77247008e72a8a8150043 |
|
MD5 | a8463e73448c03fd6a19cc5608f7fe4c |
|
BLAKE2b-256 | d9924d98a147d1c85f60bde220c889a47ac8dd5ef5c055ccc3f66e544819ddc2 |