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.0-cp310-cp310-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0920329d601bb5f64fe9cdaf32d734b30c3b92c13588599c6c081ec12ec8e0fe |
|
MD5 | 1575dc4e5117fc0a9aa7580917a659f6 |
|
BLAKE2b-256 | 5cf3c9a07a199961327ff59ef1506bd44d60d76f3b3c16741021afc64fcd2eb2 |
Hashes for asgi_tools-0.63.0-cp310-cp310-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3ecfdb9b443b050eeb6f5f323eeecf814d4b9871240e58a8ba04c39e71b3fb1a |
|
MD5 | f845b31c0eb6137deea1619051855454 |
|
BLAKE2b-256 | 0fcbb8f4fca1987ec41f5c0853d076125acf3ff2385725ca583c80cc438781ad |
Hashes for asgi_tools-0.63.0-cp310-cp310-musllinux_1_1_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | bb012bb4d855bb0e694e1f4117f376fcfc5c751d5affe55cbadf1b12bd8fa7c2 |
|
MD5 | ab316729662248a1ac59ebb3478d6b36 |
|
BLAKE2b-256 | 3e5a168e940ef70b193c9aaebffde3bd112cef10ea861ed38a5816b0320eb74a |
Hashes for asgi_tools-0.63.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ac8b3d0c0332c924ef440092737f37b5c9071691589943a7d3061e1274e2e101 |
|
MD5 | 7ea71b1a36adcf046798c448daa99f2c |
|
BLAKE2b-256 | 306128810812076bb552e27864ea1c05411b676f757d441fa8771a4d55f64fe4 |
Hashes for asgi_tools-0.63.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7189a3d1b17b0e932fdcb70596748b12b622edcbac3dc99c5c507fbacc2984d7 |
|
MD5 | 557ae337db09ab41dd644b548c5fe900 |
|
BLAKE2b-256 | fc1f587ea4f2592f3974ef553d4e93e0e0c05b4b6a66cfd49fc6ff8eb6c4cf1b |
Hashes for asgi_tools-0.63.0-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9a996315021f48a404a0eea6ba3e1996a8dbf8734ae75d952621341503398df5 |
|
MD5 | c58c569f0a2a71501c80247fb1ccd51f |
|
BLAKE2b-256 | 55f139edce9815da6f001b2f898ecb8abced3efce3c3875dd5ee42e8cac06669 |
Hashes for asgi_tools-0.63.0-cp310-cp310-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e07d87dc5a8c560e909f216554e29dcb60e38d48f8b6e5f670884b71fd66efa5 |
|
MD5 | 35252fb3d7cc98cfd755283d868551ce |
|
BLAKE2b-256 | 7fecfde961d2a3c62a89d604626b35c1df3daf1d442de5d78191aa863aa895de |
Hashes for asgi_tools-0.63.0-cp39-cp39-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c2e973c2f2a88b897952b358327f9a30ff5356d7da466497a7004735a5f67da6 |
|
MD5 | dd975592e6b19bf79c3af32b899cff84 |
|
BLAKE2b-256 | c2d93a2bf70e056c94a512f4c4ea00567a6de9ec14c11a037c713a890872d579 |
Hashes for asgi_tools-0.63.0-cp39-cp39-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4bf4d0a4be4bba3d184f8c01e0cc10cb3967f2047907c5252942623f4e1428db |
|
MD5 | 7a763859d6df1ec9654b9decb2a9dc31 |
|
BLAKE2b-256 | 8237053df04667bcf7a06497a0bfc06a3cceb2b1d7ab32f27086698d61122f60 |
Hashes for asgi_tools-0.63.0-cp39-cp39-musllinux_1_1_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d28f8ba6d9c94ff2aa4168f700f341eb6ff67a47d6c2591892697b7540725d31 |
|
MD5 | f0331c4689d15c4f2442b88c069e5afc |
|
BLAKE2b-256 | f72c94c59c876fd28de291c7ced22923c77f57e174ea13ffd5a2108bec8b2ded |
Hashes for asgi_tools-0.63.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 18685c0b3e55f438f61517f364c89de5cda4935b2795724cfd62e9d8b140a716 |
|
MD5 | c73fd3a2c7880b279c99221fc687b1d8 |
|
BLAKE2b-256 | 927b3abb1e8048db79a16b2d5b8ca7c87b1ba279b71aea6c1a69b12f43866ca8 |
Hashes for asgi_tools-0.63.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 26592819fdf87b116568c8b98ab252a252e11b16e6052efb78019b3187e0c526 |
|
MD5 | 5f65dff8ff55850a0de5d8e600adf43a |
|
BLAKE2b-256 | 635871f0a3a95dbd2e166991d380e62853e3c6243754df22324f1fafb7ea9be4 |
Hashes for asgi_tools-0.63.0-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5573d04aca0edd11404bc67c2f82c582479e05e40c7a04c16a2d0e50a77c6e56 |
|
MD5 | 88a6ff9d2c252cd872c1e60d5f3347b9 |
|
BLAKE2b-256 | c28da0c714bbfed6529b3dc8708b8069fcbc426e2148d853db8cd6aa376766d5 |
Hashes for asgi_tools-0.63.0-cp39-cp39-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ac9b90cbc4786878646f7fdd604344e40bf8091151519b66a7afefa8ff308e3f |
|
MD5 | dbf56511a5a0ee5c273f76c7d04a6837 |
|
BLAKE2b-256 | 3096ecc1a34143dc6c4ab60572cd158d370ff79e2a1a0a2c347edc80fc00b308 |
Hashes for asgi_tools-0.63.0-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0a763287acde86dd6ea6aefc398f9567c0fc1017436627c5aa80eb38dad48480 |
|
MD5 | aee38159d48de0586ccc67c3bb1d57e3 |
|
BLAKE2b-256 | 2a7e6939b407289f7ff7bf298d365be989bc413116101e47d1ba105a205d2a7d |
Hashes for asgi_tools-0.63.0-cp38-cp38-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ec24198825e42ed5867c3c917cce623668178438c3e92da69b914fd23a63d314 |
|
MD5 | d80677beac9cd99093bdefd898d6fa85 |
|
BLAKE2b-256 | 204d78c24eb4751d2c54169234f85371ea350ff6701473c2e7336662474fac3b |
Hashes for asgi_tools-0.63.0-cp38-cp38-musllinux_1_1_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 71380ab656399b0c08abd70d5a5e3237b4d3954494f53293445afeca8f918d62 |
|
MD5 | cee6bb6c0f0b7eac73bc3c1912695164 |
|
BLAKE2b-256 | 96e1c5ef8b5d08743fec10b5b7664b54ad7bd76ee06889e53dd05c9f0e7a8b10 |
Hashes for asgi_tools-0.63.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 05853d72437a5fd31fbac6ed666814a6c2ece353cbf5a39d4bfedfc785a19dc9 |
|
MD5 | 000fa2ed8dc2e080aad25ee0a8ec61e2 |
|
BLAKE2b-256 | 554bebaccba574a3b2495a7ad4d2df3237339ddff9451245b5d60ead92332d70 |
Hashes for asgi_tools-0.63.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c45b2eb872c7320a2e34620e8ca192da20bfaef23926f7d70a6dba26096d523e |
|
MD5 | 673943fd03b7aef7ab26ed9af4b086d2 |
|
BLAKE2b-256 | 0723826f6f7a587bd83b6b5ba31ff0eed79e412bfc4cd26b3b86e27e09f204e9 |
Hashes for asgi_tools-0.63.0-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e64b3a0335d3f748806bb287d735ec6b65a21b213231715168ae0ec55a1cfe57 |
|
MD5 | f13cfac521d85ac7c5a15382acf34d0c |
|
BLAKE2b-256 | 607aec1b7c9f9a95b2662ac06bbbe171b63833992a15db8e18fad7ec62f11cbc |
Hashes for asgi_tools-0.63.0-cp38-cp38-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ca8bb3927fedee253d66db4c1764d9fab4839c313da156e0e352017693073d9f |
|
MD5 | b06a647b5a1c4e98cfaaa41be234be0a |
|
BLAKE2b-256 | 14f4787d0e8796edbda83cd8b21113566f838d5039f5c09d2a548046e7c5d62d |
Hashes for asgi_tools-0.63.0-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d478d7b8641426f164577d2470a847682808bd9141798d1ce96dce4ad25a1424 |
|
MD5 | 0f39743e6176b6ac5536509816b6e17c |
|
BLAKE2b-256 | 21cd92ff917bfc3aec7aa77643bbf4bb88147cf0c270a4cfdf2e913ff468f316 |
Hashes for asgi_tools-0.63.0-cp37-cp37m-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 18cb7b89ee6f7cdd317de7fbf35d53a502dcf156103ecf25e58489c20998a504 |
|
MD5 | 5e28887a39076c7c61511ebc1dea897c |
|
BLAKE2b-256 | c6f892eaaac073eb626da8dd94f337b8e247861e07c63a1fd9ea8349c93a31be |
Hashes for asgi_tools-0.63.0-cp37-cp37m-musllinux_1_1_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | aa3ec621ecce089a9aa86d6959ea5d38a07e1e2dff10b2aae8193e8c5746d043 |
|
MD5 | 8fcde59e6055fdf8134ba5cba08701c6 |
|
BLAKE2b-256 | e03556b52263b00b40e49d818e73b04689255546e213e15fa17a1b92a5b8e46f |
Hashes for asgi_tools-0.63.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 62db4ab4ed2b788be252daa439a1c756cf3419eab32a3d026d6cb4467c615d70 |
|
MD5 | 0529293ecf336552df07d8748e5a5f9d |
|
BLAKE2b-256 | 80f4952101b1373657b809ffb49df395f00362dfcb66a61847f17e30586ff244 |
Hashes for asgi_tools-0.63.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 234ae29032d628d543b8c16f2ebed7c6afa37209f15ffa88158a112592123d5a |
|
MD5 | e124e889966688634b42f917f3a7953d |
|
BLAKE2b-256 | 59222d4fbebcb14ce17b81027449ef043bf73441123df0483cc01a189dec478f |
Hashes for asgi_tools-0.63.0-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b4cca3f5bc2bdbd342e5cfda0c4572018945101a6cdef9d5744730eaf7367c7a |
|
MD5 | a513b583940b39ca46f65c32a3861d66 |
|
BLAKE2b-256 | ce995d020b9a32e7f7c0ae17b1077fa6b14496006872dad56bb909167d9a74f6 |