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.63.2-cp310-cp310-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8866e66aab3cd26f1f44bff3afc39482d6b9ac45ea234cce2cb9c7358214fd5f |
|
MD5 | d321e88eb14a35d9d810737d3f91e6c3 |
|
BLAKE2b-256 | 656a171196506d9a18259e1aab895f777aa783496ef203888aceceb61c549358 |
Hashes for asgi_tools-0.63.2-cp310-cp310-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 73bbb82f07fc7b4b9312ab161ab8089c0e5b91ff5e7b1d7508af13b6a083c5a1 |
|
MD5 | 1334742f54f212fb76fa0053d9649a74 |
|
BLAKE2b-256 | 8546127f1c90f76d18065c34c317a3adaf4a498a86002d68a698fe7b4a15a5b3 |
Hashes for asgi_tools-0.63.2-cp310-cp310-musllinux_1_1_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d10924646cae00f1919ca4210c0be64837f3461e6d09f5d4fb91ec47c87b70ee |
|
MD5 | 0aa2e572e15d3e455b411a406380f2a3 |
|
BLAKE2b-256 | caa6dbef427b48f30b18b22e9ca60766624528b9cdf8b5baa0ccd6ed1bdc343c |
Hashes for asgi_tools-0.63.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | aafbbe5a89a7f3016852aef08b8680dc0455f0d0a3c689bd6edf572d9213464c |
|
MD5 | b4740d06d72520cbce408677d376b3ea |
|
BLAKE2b-256 | e1317156c31f98df02de9c6df70679c6950eba62cf514950d78c8665577a08ef |
Hashes for asgi_tools-0.63.2-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c6d03ac8dec2d1798d8f75430317f2fc1e784f9c56254ab18fb424cf21353152 |
|
MD5 | b5069da2b1273835473601d931dbea95 |
|
BLAKE2b-256 | 44fee18076437f9404c835f1866971e6630b162297572b43c7b7149afa65d2e8 |
Hashes for asgi_tools-0.63.2-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7ab6eac58933600ccf37593025af872d51a0797184149d061cb46f82bf1b22ca |
|
MD5 | b9661c5ed5afc247e2adc1be958b89cf |
|
BLAKE2b-256 | 71c22f1db5319223a9f7ea3448e2a443de68d60a2fefb93125f24cb6abbf1c8d |
Hashes for asgi_tools-0.63.2-cp310-cp310-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b693ac495e1c2862db82daa00551f81b3cebdebfe3a91291533386d4a7cb0ef3 |
|
MD5 | 577a2a27c7192660658099f1e4800444 |
|
BLAKE2b-256 | 4ca3980b35a5c4cd66a590a0c100125ee225fbd761be3d64e82450fa5ae0a185 |
Hashes for asgi_tools-0.63.2-cp39-cp39-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0d438c9b5a561620221adebd57d74b6e553342168525924446d47025295eb2da |
|
MD5 | 917fd6e397be91eb592b767ad65e0a42 |
|
BLAKE2b-256 | 2361bf79d345e15f896d178daededc7fe73f1b2e9c9c08464a6753b5ca20cf4d |
Hashes for asgi_tools-0.63.2-cp39-cp39-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b41f6897943aa58a1a012df1680ddc2a20bf483a250400a7b54c22c55fdd0133 |
|
MD5 | 7ba01528ed2de5fd2de31bb3d1863b5e |
|
BLAKE2b-256 | 6a297e9581fe15dfdd2187d590fc5af38ec06dd1b4008676b36a10e6db576e05 |
Hashes for asgi_tools-0.63.2-cp39-cp39-musllinux_1_1_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6f9c55574442c02e5213ea35309e46e17b050c633e654e8312575439357f784a |
|
MD5 | 852a8509d1b80f2201b37f4b3ade1d32 |
|
BLAKE2b-256 | 2b62075ee18a2f889b0b513045ad24e28881db121b7860746f184c2e18729df8 |
Hashes for asgi_tools-0.63.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e9d965a399e338429377b454915908fad60687644503e677e54a1c300a4f4765 |
|
MD5 | f90a4a5cc9ea572e47bf887109cb3f97 |
|
BLAKE2b-256 | 5506539e765cc0a488df7ac0bfe7494be9a9239473fce30e43cb61a2a7c27057 |
Hashes for asgi_tools-0.63.2-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ef0bab5c4a421c9f5b517052edf425204c6f623198ca03ecfed3cd384b879b7d |
|
MD5 | 87864b2fece2ad646f0975875aa76d29 |
|
BLAKE2b-256 | f1c36a36f8aa970ca653fed9556addb64fd4a9660121ccb7ffddfc31ceb9bf26 |
Hashes for asgi_tools-0.63.2-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 95fa1d13a6615f06c0e46e3b7862113c41dc583f8a0b7adca31dbd8653f7aabd |
|
MD5 | c52990eebbb1752e26c5d7b8bdc9b6e0 |
|
BLAKE2b-256 | 996d33ec6e958c909ef08056e06e4df84bd2dd1741af231e327f99881a49e485 |
Hashes for asgi_tools-0.63.2-cp39-cp39-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 99fbd64f78944a7cd285dcb54efaf8288cdb93dca5eba0e02a78cd3e588c37db |
|
MD5 | 93cc23b34ae44c2c61d9cd52a5832502 |
|
BLAKE2b-256 | 9d4263d478fd8c8c55c6e60736e142755eb7e756e69d73ae2777343b3a301fe2 |
Hashes for asgi_tools-0.63.2-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a84dec99423b39aa1ac2b0f5a34505e46a166e9f89469413defa7ef436431c1e |
|
MD5 | e5c6dc0d063f39f8874eedb23f12b6bd |
|
BLAKE2b-256 | f6206ce1e41cc1c0ea0e7859cc1bc04fe17ac207b3074c0de95455ea2d1bb11d |
Hashes for asgi_tools-0.63.2-cp38-cp38-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 190e021da382fc9e688bb80201b45ff0c752ba61faf15f94903f7dac582e671e |
|
MD5 | cc22baf3c5379378d785778cf51a8b57 |
|
BLAKE2b-256 | 0134cc3eb8a46aa32e91614bda462630fb23342a628e61111acfea488cfab973 |
Hashes for asgi_tools-0.63.2-cp38-cp38-musllinux_1_1_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e68e8a78ffb520b67d2523338c29a389f489aece09893d9206565e56f97f0f53 |
|
MD5 | cdb8bcb4b0d1ce53938f7e5a9347ad1d |
|
BLAKE2b-256 | c96e3d57e3df0b1622b9338ae0838cf9be6d38040b326fab2b7eff63585b0fb3 |
Hashes for asgi_tools-0.63.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3385932486c9da82196d9a5add31e653b84b10ea61119d95a25d3dee5f746e60 |
|
MD5 | ac8ca18b3cc39300cafdc8676b9bbd58 |
|
BLAKE2b-256 | 738b204e946c73e195cbfd99828aeec57418fccfcc11a091cdc81e83854b69dc |
Hashes for asgi_tools-0.63.2-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0deb68948361e847ee68c5f02c4a517a53112eb7dea42107eb66301c8b576089 |
|
MD5 | bdcc523c31256749f471b73dec76d572 |
|
BLAKE2b-256 | aedf38c72a8736714c5cf234f8c65ca92133b46b6d55833a678cc5c650353f20 |
Hashes for asgi_tools-0.63.2-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 447351a2682ba37603ce1e47eb8098e6e30261bcfccbccfa4fd46ee96a635624 |
|
MD5 | f7c2b45a97b2787699f944a87f534cf4 |
|
BLAKE2b-256 | 3b4e8a107cb9810def67ec8525ada17980b58a8c1cc50d240ced229ff2b8282e |
Hashes for asgi_tools-0.63.2-cp38-cp38-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5af0b711b7b3901f262bae19f4cfbed684f878be02f17a3a8ce8488fb28b0636 |
|
MD5 | f005eb48d8d723c937d57892d2f4c89d |
|
BLAKE2b-256 | b62913ba6303f0101e164388f9538b73a2d982f5de7883f267773a66b4673a46 |
Hashes for asgi_tools-0.63.2-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 081a79989139526d419c42a1272a9e8e9dabf2765e198b2e359698c8151e0bd3 |
|
MD5 | 49b769f9ae05f954fdfa8b886fee1372 |
|
BLAKE2b-256 | 3aa3352244b02a80b08bd67e9fd73c6873f86ce0804b099a6e4e0a398bc0a31e |
Hashes for asgi_tools-0.63.2-cp37-cp37m-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 564c5ae63c75c310d1b3ef1da05469e355536d408f349019df577fc40c68e065 |
|
MD5 | 35e0718a26c2c34df54cf90d7bbc7f73 |
|
BLAKE2b-256 | fd730de2da3d101237e75f4a2ebefcdf645ab270feb9db59e26a5c119a5c1e45 |
Hashes for asgi_tools-0.63.2-cp37-cp37m-musllinux_1_1_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9d7ca847c1b6b4b94dd90df7f182cd6d218e7762db6b069053f98ee918907563 |
|
MD5 | 5406b36d6edd89d26f6c2ae1fcbae962 |
|
BLAKE2b-256 | a9088a293a58c21aa93e461a7586ce16e695888a0ed54d0f9cdac8cce926805f |
Hashes for asgi_tools-0.63.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8774e9e7939310f0f4a3fb70a6784bc3dfc99c8f5c9563b788e3789265e7f274 |
|
MD5 | 19457ddb53073f5586c5e99b442c509b |
|
BLAKE2b-256 | e9b3c571582f633478a8dd44deea7d96e7cba1f244349e5bdc8ae0704427c9cc |
Hashes for asgi_tools-0.63.2-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 24b1c4090311d46e97ec746ab7105eb6a1969eeae7ee2dded34947b649b356cd |
|
MD5 | 0af75cbbdf3138050d507fb1f90f8545 |
|
BLAKE2b-256 | dad2be39a641c5962d17feac7c4a63b7994e27ff30c8d2a10440b9b39cfdfb3e |
Hashes for asgi_tools-0.63.2-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6c920fe8f9ff917597f3f77b4d598da63b94f05c16e013934c66a013c88cac4b |
|
MD5 | c79abecc5a3cf54083556da3f271abcf |
|
BLAKE2b-256 | b2bc7adc1a3782b01a847045193f03fd39ebf107cf4aba7b831cc52866acab6a |