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.72.2-cp311-cp311-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 353863e7d3d649621d4ab05395ec1dc43441fcc31cdaa0f6460bc1a51f242ac6 |
|
MD5 | 3ced601aa01f83ecbc65c44b6e956e91 |
|
BLAKE2b-256 | 372eea0745292975b31fb1e2fd719ca144c226fd82dbc07c17e4863be0acaeff |
Hashes for asgi_tools-0.72.2-cp311-cp311-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0dedf441076974bce3a622b5b2dbdabc7a62286c83dee58888998d884e9c53dc |
|
MD5 | 6dfba8915c55de8e9c163389cda2157e |
|
BLAKE2b-256 | f8809f241f87f65737aca13f0c29ddb13318213fcf4cb1534c9157cd75444bad |
Hashes for asgi_tools-0.72.2-cp311-cp311-musllinux_1_1_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2cf06e89d4a932172d148f723e59961dd9cef63d931da4be33edae3471cc7b01 |
|
MD5 | 6fc2dc72d59d5400db4961eb9c3b373f |
|
BLAKE2b-256 | ce074be7f1800ad0b368af22acfdf30bff624e2f02a9823cd1386f313cec92ce |
Hashes for asgi_tools-0.72.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | bd2d56e04bb0ba1b4791780e570439dd63a7721b494c5e1ba1d6fe04f25db6f7 |
|
MD5 | 6515e87a061e0cb9360e1c6743881545 |
|
BLAKE2b-256 | eaec72849937ba44d1a910afe34a3c7d50f9203b5a92106b919ef7c55b3011c8 |
Hashes for asgi_tools-0.72.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ce2839c01c875cf3abb3e56e4be6779eb60d98655de8f4ab4b4757e8c5b67f15 |
|
MD5 | faf556076f90ac876eba3a0ead7bc512 |
|
BLAKE2b-256 | 7948a483f6f66ff74d2ec43628845bcdfc1e1db5c1fcef6073b9968a01ffec11 |
Hashes for asgi_tools-0.72.2-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a92553eceaa35061528525c7e6661b0661bae62ebf6737beba87b05989e8493a |
|
MD5 | f866bd8591c34331cab607c170d0d6be |
|
BLAKE2b-256 | 7a542b948330366573c6994336f1d9f347611abc1c4034f138dece2c003d724e |
Hashes for asgi_tools-0.72.2-cp311-cp311-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8123ce4f4b9795b969a85d5e8c1b11d9b8e17a5dd0ee184a484a1cc4ee84f31f |
|
MD5 | ff63d517f30df703432fbebfc474108a |
|
BLAKE2b-256 | d11bc805781da2a386d5fcca590ff5454068ec03a28d43366f31c9265b8a7c7e |
Hashes for asgi_tools-0.72.2-cp310-cp310-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3bfc6c983c7074fcf6acb420a0b703ce095f35e95fd08170ae882309f9a81ba1 |
|
MD5 | 19ec094437a73f1428f5a6a866fbd4a7 |
|
BLAKE2b-256 | 46ee6626c7abae7f375d10c35f03c2e95f21ce104154bb2256e85316a2247630 |
Hashes for asgi_tools-0.72.2-cp310-cp310-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 765edf34b9426d885e4ea3e65399ab22d620546fd52f1ce4de2adcb1b913f211 |
|
MD5 | 8c914560a2992864f512f98d986513c9 |
|
BLAKE2b-256 | a01b048723c830566b0c44154d98950bf12c891294867ede77ab1d2dcd852b8e |
Hashes for asgi_tools-0.72.2-cp310-cp310-musllinux_1_1_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7a5ab851cc57f797f5ccd7f16d330e84684147c81a48b5ff63482ed9b3f03dc3 |
|
MD5 | 33e7209b8717d987814fb2855762f816 |
|
BLAKE2b-256 | 23d957c4380175e0ef0a9fd7234aa80c99dfb5abd2fbd2d9b3b4c12f384175a7 |
Hashes for asgi_tools-0.72.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e1ce642b19f3ca7419add496462f4cff964907177ae72e3680f30612748b285b |
|
MD5 | 22b580ab58b45777ce9f1fa62670f754 |
|
BLAKE2b-256 | 288e83ad256a4ff338f1640c55c150ee1b89b28edf4bb8d7da894fd382bdea87 |
Hashes for asgi_tools-0.72.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 708758f9a5dca9524b2eff3bd0ef9ce9aad21dd84bbfae1f2d2bb91a39363827 |
|
MD5 | 0f8fa6433e4126205d79aa15b3c81d8c |
|
BLAKE2b-256 | f0d17ba5b33e436505a3100f9fa73d3af37fd40deffe97ba932475a7207e88f4 |
Hashes for asgi_tools-0.72.2-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2f0325eafd57423672e7b0fbb4001c401695f3c9ceb695845062c35d214eee1e |
|
MD5 | 95124d4878a863a95b079477592c1863 |
|
BLAKE2b-256 | c761963eed5ad678b150db59ff8d5f2d618322999bb1032ed2c1b8e50d75a41c |
Hashes for asgi_tools-0.72.2-cp310-cp310-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9d77e04882cd4a4b5712576e84ddf57e396e113a9914fba3515427da66981487 |
|
MD5 | 2dded28a28288672959205ff30dbeb34 |
|
BLAKE2b-256 | c41be62acfdaf7e1898b8bdb07c0c27fbfe986e8d8974438ac593b42b3c3f053 |
Hashes for asgi_tools-0.72.2-cp39-cp39-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7032067908f22d4eecd70deb01cc57ccb6d3e925a1156ad3295b708352749f64 |
|
MD5 | 783d50691daf46196d5232f846461465 |
|
BLAKE2b-256 | dea9d5a35f00119e5090513d564dc74f02e2cc7a3f23761144e166bb7f3145de |
Hashes for asgi_tools-0.72.2-cp39-cp39-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 76bb5e6a1ab4d2af46a675fe922e7d4fbe9511cb20b5850571e66a3842e9e48b |
|
MD5 | a3527be423a3c49a6531288442c29314 |
|
BLAKE2b-256 | 6223941b4dafcba842082a2b621aa25f15b50f83e93f94ab0990ddc8aab2bed2 |
Hashes for asgi_tools-0.72.2-cp39-cp39-musllinux_1_1_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b72650d1ec2795e7d9626607c7bb5f0b682371746b853a30dc9e5b78889fd6b8 |
|
MD5 | 528512be9d90a7dde4fec5000aaca568 |
|
BLAKE2b-256 | f2d3244f24da080b9f9350f5279840afcf4e5d57961353f369aab53a59b0f408 |
Hashes for asgi_tools-0.72.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 57f0217c62920e230836bb13be5e4b07d9049daabc029ba8ec8f8db2c5fc8942 |
|
MD5 | dd928df3c2e20ee5932040633a9e16d2 |
|
BLAKE2b-256 | 88e593566b2c3e6ae7635a6c64da823ba4d7d67f486899883b7a7a91870bf0a1 |
Hashes for asgi_tools-0.72.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 995fc753617aed20ed7e629b61e7ef8077133b0faed0dcec648d5bcbd197519f |
|
MD5 | 670eee6b33a95dbdb94d6324365632e9 |
|
BLAKE2b-256 | a110a876806baaa2fa0541e9b8b68e8f75cad56abf4508cb5fabc4bcc36a63e9 |
Hashes for asgi_tools-0.72.2-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1f4aa09d34ae1db68b58111972342ae3c1fe6d620d7c4e774102a15597628b49 |
|
MD5 | f0272507b9556515c59a35209e585b8e |
|
BLAKE2b-256 | 875d70a03271b8623617383dc998dc18e7d0a249595b38a4d7d120db9b1317cb |
Hashes for asgi_tools-0.72.2-cp39-cp39-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6a4e59323f110b46991b7e88318c730282fc8afb41f8c525179b8ec9ebbeab6f |
|
MD5 | cebc28b919a7021d5f1d8ad21b817f17 |
|
BLAKE2b-256 | 66d518bd87e1eafa2204bf1084865dd54694359204c2f526a6f662372f50ecf8 |
Hashes for asgi_tools-0.72.2-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3363032e7a4a8a1608ff4d8b2f43acefaa40456ba3b565bfb176ec4bbbbcb926 |
|
MD5 | 0ae955ada9dcc8a082eadfe25e405888 |
|
BLAKE2b-256 | 48b382565eed4add8e558bb99c65bd559aa836fdaab154180acc2ccdfd6eb8ae |
Hashes for asgi_tools-0.72.2-cp38-cp38-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 40b7af1ac94d2b50010e800d2e421f31e52fdf5c04aeb45a70e9a7dce6e948a6 |
|
MD5 | 97c0e078d6e63f3f4c7bc8dc1f425e83 |
|
BLAKE2b-256 | 4031139d5b802e1ea2e5d02871963f51cf8276d1475c7805d94b1eae3228ced3 |
Hashes for asgi_tools-0.72.2-cp38-cp38-musllinux_1_1_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ec9b88bd5a7b08a2f36d7d0d308e62b8f00e3f4d2e9087d929f597e6e42904be |
|
MD5 | ab9543cd6307427bc6bac61314c217be |
|
BLAKE2b-256 | baaa743da6e8dbab5e19ba740503cca4b2f87ccc460ac9d9b340c5a655e98d74 |
Hashes for asgi_tools-0.72.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 287ecece2190e3c1ccd446f1f50168801cbd5b35ec07cf54ee3b3ea7ee9df796 |
|
MD5 | ac674698a1a31da1242b85379f2ba4f6 |
|
BLAKE2b-256 | dea658b8d4202cd2d786039ce7c515e8f37e34a4e9946554e4a726311c77196a |
Hashes for asgi_tools-0.72.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3d27b85697693bd3c30db0d8e3a635e315674cf6d527d950285337c24af7456e |
|
MD5 | a708cac3c69616fcbef00065b2959bc0 |
|
BLAKE2b-256 | f625541339054bacb0677058ad27d592fb231523e616734ec6e3f737c377a63d |
Hashes for asgi_tools-0.72.2-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 42d092469e6f35a2ead589a7f556b09b2a540c9a04b7d9b506980f681560b069 |
|
MD5 | d6820a7bf6236d3be5e242a92d66f47f |
|
BLAKE2b-256 | 2e443cc4639b69bfd5dfcd088059bfa4cddb2ac2fb712c13e2832a33a59a89f6 |
Hashes for asgi_tools-0.72.2-cp38-cp38-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 581b99031768cd2f581f462c19e7a5fc0037e2e05d4b7ac94c9d5f5868edb26f |
|
MD5 | aa12fd876ec050bf1e0e5b72d634ae9c |
|
BLAKE2b-256 | aa5d13ae2a5260396d4343c0b263223bcb5040f082b7ff1a82756a9d9e62f2d7 |
Hashes for asgi_tools-0.72.2-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fbd50d90bf983a3752f85a7891a194513af1dd759d19b0f1b6eaa827221231cf |
|
MD5 | 2e0e95db798920d6ec00f581741e29e6 |
|
BLAKE2b-256 | b9f9a3ee0ba7e0b1439b71490e1a9054e9addfdca70a7e54d85018acb10f604d |
Hashes for asgi_tools-0.72.2-cp37-cp37m-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e891f20a1b6e61680480c3a90736a87cffd07bb705e7a855d7776b670acbb360 |
|
MD5 | 0165eafb1ea4cf0f4f8b397803c4cf86 |
|
BLAKE2b-256 | e0b93315aa84367cba212ccf9b9168c08b5713852771aae556b53c3822ed7623 |
Hashes for asgi_tools-0.72.2-cp37-cp37m-musllinux_1_1_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e02344ba4d9de3d190dd7b0d3abfbefe2fff5bc3464ee0282a9aa329c6d32f6b |
|
MD5 | f66d892cf73b6b27716388a4713af71a |
|
BLAKE2b-256 | fef2d0fd557a5d9ecf7634d6dcd6cf501fd67d1f74363fddba9644b92d54469d |
Hashes for asgi_tools-0.72.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c1cfe873a158534c3a1a2b984020ebcd63096b8a28700a0f2c56fe0d74172eb9 |
|
MD5 | f2312a79f0a017b576064111e2f7ff76 |
|
BLAKE2b-256 | 74108e55a2ae9135beb2d704fc5aaeec0ce9bc13e131c4f0afb9631bb517d267 |
Hashes for asgi_tools-0.72.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c2f869280b4124d7397f35010ab6d7ae6938006fb1ecd74b02caa2edae771983 |
|
MD5 | 7c0119f4a9bd89a398f0a891b4842bb1 |
|
BLAKE2b-256 | 7f1f2d69610a3aeb7626e3de2f07cb7f6cf387b65d979418f07004ed5d610e86 |
Hashes for asgi_tools-0.72.2-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8f22558d29282193d42baed7d4aa42a4f72ca73f9c86b0df428cb3050e5b2396 |
|
MD5 | 9e7d421553a968eddd9057f7178c30ba |
|
BLAKE2b-256 | 2aafbc1f9f07807ec0d5ffda21b4ac51cb8d49ea0358dcc14ff6b8ef0cdcda1e |