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.73.0-cp311-cp311-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 443b4e63ea9885d121a65798babcf32b21f68ab164ce667071fa49b7f13a7c2d |
|
MD5 | ea9bfba84d28ad6d8132a8559acb550e |
|
BLAKE2b-256 | e7d09e37b179cbec02a1f7fbd22834e068fd65f184f5619051e8053de60d9882 |
Hashes for asgi_tools-0.73.0-cp311-cp311-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a72d91008e2f60984901d8f448559602b9ff9a03e826640adc01735a2fd71a14 |
|
MD5 | 26de785b25de0a78c62a3236c099989e |
|
BLAKE2b-256 | fa721caff1cb6fd081c360807cfbd333e2b77075441f767e269b0e091dbc171b |
Hashes for asgi_tools-0.73.0-cp311-cp311-musllinux_1_1_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4d79f6f37a4f345cd882bc4ce300cf56cbad7dfecc75279c778eb279a40fff89 |
|
MD5 | 95933be55cb5fd28116ee0dff2bbf09c |
|
BLAKE2b-256 | a0670972e3edee104e6ac0871b0432c0986a44aa9b36907eaf9994599aed8a8d |
Hashes for asgi_tools-0.73.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 981fd748eeaa2ae5689e665900950c607b1931cf88729860f065207b36502e9d |
|
MD5 | f7298042866c22968998800910bd0841 |
|
BLAKE2b-256 | 3968b340fb21b335d2c8dbbe55bc3ee817714b103490c32cc0791c4c486edefd |
Hashes for asgi_tools-0.73.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b2ab03f848fa7da9881c10d81949a2ed10325caf2f7d66984df6c43d8929fb50 |
|
MD5 | 33eb440ed11967d1c5d427a0857e4afa |
|
BLAKE2b-256 | 08ce5948e2563cda52a4fc53779b33aa73329a64a1f2f0c8e5d16df81b36c104 |
Hashes for asgi_tools-0.73.0-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0ec456338d0eb29957f1a2c590a94e0e74b884b11f93a966ea12f2456ee69128 |
|
MD5 | cd27e785af32f56f5726d1942fc9774a |
|
BLAKE2b-256 | 6eb9fadf49a8e689e6ce07a9a6cac0c29207ea5e6fee7c9ac116f2489cbf5f0d |
Hashes for asgi_tools-0.73.0-cp311-cp311-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9ab90cfa88b91fbc23548bb70592f018001c86b84a7c3b656cc930acd342c403 |
|
MD5 | 814933fd141154dad5a8950e5e738691 |
|
BLAKE2b-256 | d774eafbb031d9b6f08b15f7a7f0237229dd0e0a1aeee8903b3a7030614de33a |
Hashes for asgi_tools-0.73.0-cp310-cp310-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 976908e92f2c71e36a574bf4b812a8506cf326b2fb3ef0741b2e65fa44d4c3ff |
|
MD5 | 5ccfd94c88ba2573ef770b3f45e58cc9 |
|
BLAKE2b-256 | 71bc57c2823c6155108080a5c5da34003615bfc3bba51f1f332db74cb5e6d32f |
Hashes for asgi_tools-0.73.0-cp310-cp310-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | cbe94b5e0a9dba23bc468085b3a6dbc5294fc9b89a7520ddb632ea91aa67cf65 |
|
MD5 | 6c800d697e9c181f4817ad7e2e3df020 |
|
BLAKE2b-256 | 98cbb03cc5733b87b8acc810627574e1fc2c7c98a4e24a4124a74c71c2d500c4 |
Hashes for asgi_tools-0.73.0-cp310-cp310-musllinux_1_1_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6d7ac89ad0a136f00bb7c4da233b2094ddf30c263fdb99f0eeda4ef2542ed83d |
|
MD5 | 512735456aadd14c0e8054c96bc17730 |
|
BLAKE2b-256 | d73e157dd671de6779fd25e2055f1868d96f3c38ceb4843e9d3b4c6659a56171 |
Hashes for asgi_tools-0.73.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | bac48c4363498731639d8b15bfd2527f668cae41138daf414d17018f61450f78 |
|
MD5 | 5be1cd06cfe90b0212546137854df528 |
|
BLAKE2b-256 | 0c298ad92cfaeec09a2ebac14303aebac587841e41845711e77946e806b1bf06 |
Hashes for asgi_tools-0.73.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d5c3bb04d8f56d028ee71edf3ee2e923b3b9c79003c889f7df274fc2da3fa67d |
|
MD5 | f6b623c6a3eadbee830d97fd806ef4e9 |
|
BLAKE2b-256 | 4852aea02ec139739812fd71cacf3e81e0ed2c378ac8757ca19bdda179434fd1 |
Hashes for asgi_tools-0.73.0-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6fefb66234fc5eb123f90ee929044c663e366fecf83054ccf17922062a1d5a8b |
|
MD5 | 7a36c1a8eb24defb17e35d4df580a0c3 |
|
BLAKE2b-256 | a1ec891c6960e0ecc5f06269517699b606d1a65728b8a7b7300e5bf753e6b36d |
Hashes for asgi_tools-0.73.0-cp310-cp310-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2b39b0fb78fd722acb7ad5b8ced9b17421c328e98145c856d106af915d59f3b7 |
|
MD5 | 06b7708f298a26858536973c1b02f54e |
|
BLAKE2b-256 | a4034498b3ce4b4eb11afc384679fc3f0d8b742859c80ef0ee15ecd49aef3694 |
Hashes for asgi_tools-0.73.0-cp39-cp39-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2141723ea4c1f3ac062a6fdb9d58f07e6e28089f8613056aa38af4b4ab109dbf |
|
MD5 | 09252c3bf93f788dfb359233925f209c |
|
BLAKE2b-256 | e706a377982017780e415009745064ec9f099220f280a9566a5ba00689a3e398 |
Hashes for asgi_tools-0.73.0-cp39-cp39-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 55ca61d66685ebc785e152441e411d38c0f98ecc82d862ddae49842c8cc54bce |
|
MD5 | 14f0480ce341e1b6ac9e49d2109df635 |
|
BLAKE2b-256 | f3bfaecba29609c20f60bf7dee7c7b10566242aca19477d79bd89017ffdbe644 |
Hashes for asgi_tools-0.73.0-cp39-cp39-musllinux_1_1_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f5fd9b07060a6383fd8834e773794a741de375c340bf5d243925d36825b375b9 |
|
MD5 | 8bff1e18bd09445803fed40f8e0538d5 |
|
BLAKE2b-256 | 454d426dca3faee2d7e8d222eaba0d056cf7fd7575f385fe7d0cc88a0e432f0f |
Hashes for asgi_tools-0.73.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | acda39177d52322ee66cd33ab0d01589fcdbb3b37161d06383e2549108f85424 |
|
MD5 | c72e091fb332bc57218e83b8dd6fe1e4 |
|
BLAKE2b-256 | 9d4894d3f0b1a33159a5e66284c93fee5c14f7f0a8c1c070206a51bcb7b1be85 |
Hashes for asgi_tools-0.73.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3182e9ce9ff4e17c43a6b08eab81773996dd3213fb80cddf92e09adf0d6e2e6a |
|
MD5 | c0407134985819f39eb0e9bdf409b58f |
|
BLAKE2b-256 | 4538b9bd266e5007eb3eafc1b6db16de3d108c9081868832afbd8d39e2d9e0e6 |
Hashes for asgi_tools-0.73.0-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ed1a33fa4d0113c117fbdd02a0204c7384059d892ad7a91fc0bda76682738277 |
|
MD5 | 9710d89e53a29a43da06ee272e83b84c |
|
BLAKE2b-256 | 102366b2194663d21bc4c8b2524c29f41f27a7b8ea463a4c92343729d0dbfc13 |
Hashes for asgi_tools-0.73.0-cp39-cp39-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f2161e942cef60b14d2602acd25010a395f4c2f562f0ba77209884898c5cf287 |
|
MD5 | dc6441ef6ea514f928c2e6a59cf22b16 |
|
BLAKE2b-256 | a9121678ba18de781a661d771dc964817b4d99f0e5a4a0c075f1e969e8a96ec4 |
Hashes for asgi_tools-0.73.0-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | eaaf3b068c3c2275f4b15ce524fc59998b210c13775aeb449d9347c7bdb49fa8 |
|
MD5 | 4261eb892e02a41b43da3fdc8c868b9f |
|
BLAKE2b-256 | 8fbe6bb6f64e3a5b489bdbd4b4cae0aae0efa2dcffc96bec2dfa336ac5a62bc4 |
Hashes for asgi_tools-0.73.0-cp38-cp38-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 68cb275126f7e5b9c103abc97fd7c97bfb64db88f16a1e0dcf74b7cb68fefa6e |
|
MD5 | e01ce2e5f777d179eb41405aac44126c |
|
BLAKE2b-256 | ee5a7da3ebfdc871844bd27357f65543ea7e63d6d56499780ff7b39a1bd55335 |
Hashes for asgi_tools-0.73.0-cp38-cp38-musllinux_1_1_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 58c422cd7c41dd5e13019db7baa9a1b98a964b9e67456f8c30e887de4d89536e |
|
MD5 | f7c6abb5e89ae8b72e584de8f80cfd48 |
|
BLAKE2b-256 | 27c7c86874602428ea1953e2e6d167cb9c68bec9c738106bcc821482163e34b4 |
Hashes for asgi_tools-0.73.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5f4b3164aca0eac4424e1e0520bccf864f57e76ba405fad682bd18e987dc6b4b |
|
MD5 | 948fa1515042f4d4620eeec7ee205251 |
|
BLAKE2b-256 | c89c23677d775bb27f1d6026dc2efd4b26099a843833ce5cd2df536ae2538bbe |
Hashes for asgi_tools-0.73.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5b174df306d4009060de619c61617bc64f920b333ec7eb69d167cf067c714d68 |
|
MD5 | c56e805d986fa8e8589feddf6a1b3a9e |
|
BLAKE2b-256 | 1918339f289e9f372fea855e65da79874c4baf022041c0308655ddbc2dde86c7 |
Hashes for asgi_tools-0.73.0-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1e59de29a4f797df781458d36f53fbb9c2982d7b14434597df7de6683c3f0e08 |
|
MD5 | 453c2ba95e9dfb96710bb7993cd5b2ff |
|
BLAKE2b-256 | 84448d2cf738d82eaf9a1bacfb620b497ad81303e94a516174f44db05b5fb39a |
Hashes for asgi_tools-0.73.0-cp38-cp38-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1ebd8138ef0e0a7776b5db2dd27d05ffaa89b630e3811e9a5b04fb0f7f0a9613 |
|
MD5 | 3dac676637728bc733da5b96f15f8520 |
|
BLAKE2b-256 | cb929b60ef5c799bb66d5182dec16e28adeb20a28b6f66a7849e37f89e781832 |