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.64.2-cp310-cp310-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | cee8246572fdce6323c567bd327cdd5ea62bbd9061351b2bf709b9dee9d87c6c |
|
MD5 | f82722f2f3cb160ff2e8726e6fef3491 |
|
BLAKE2b-256 | 83321f93ad5f511f476e6862e576e0dd7897cdfc733bb060089746d60ca98ae3 |
Hashes for asgi_tools-0.64.2-cp310-cp310-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3d45cf52be8930c988990f666d30df69cc81a0e1e6d5d2d923b1cad0e4013844 |
|
MD5 | f62de5869b9ecd6c5fdd9a7f2081cddf |
|
BLAKE2b-256 | 03015c7bfa5f1fe5b3b55ca4b57745ff1b4e34162cb5f1c2fda38c27f8f901cb |
Hashes for asgi_tools-0.64.2-cp310-cp310-musllinux_1_1_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | abc3ae1fc9a8954a965130e240f0e3a4ac75e7d8f3684d41e3eac32158fa781d |
|
MD5 | 098ec9b0099b5f6df7b6ccb01c468b99 |
|
BLAKE2b-256 | d0ae0a71a5d43a639d03dd09dd13923a58f95b1550f16135077f1bc89e5b9797 |
Hashes for asgi_tools-0.64.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | cbab8b7084d1abd0e4b113c2fb7a6fe65993c4f41325ebb4cc9b1c3cc54ad314 |
|
MD5 | 33d3b12dc9bc26b3d0b4664535c3755a |
|
BLAKE2b-256 | a502f5e855f369ee502551b1ab122000151da66ae953f219974333d6e9ec8b5a |
Hashes for asgi_tools-0.64.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | df21ebc6a830f8a46469a0f6feee567dddf9d9e4cfdcaca2fcc43f6028268537 |
|
MD5 | 3654ef4d06643efb04e002c874c17d2d |
|
BLAKE2b-256 | eace5d5b78fd19e3b1387b85aa34997a95c47287760f48f39d99e00baa43bb62 |
Hashes for asgi_tools-0.64.2-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2c5bf3bc7499eed1dabd0ea73a1e1fb24f1758d76a3d34d5da3d771bdddfb646 |
|
MD5 | 673f91e3d5a4d9a75986b8d89d6aacb0 |
|
BLAKE2b-256 | 749255fdcd94af09666ff3a97371ae7789ca107845f58b5681906da079ae21d3 |
Hashes for asgi_tools-0.64.2-cp310-cp310-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0e1b6f4e7451ea992de738d3bf9afe35b483495c669dde48255dd8353abdc730 |
|
MD5 | c72632e384d9060cf82414b4458046f2 |
|
BLAKE2b-256 | 1d9ca9a08678842b1eebb880379c28fc8d312674f62e531e305b9a96c5a8a50c |
Hashes for asgi_tools-0.64.2-cp39-cp39-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1de2e806c9a11ea8e6fd03c2e7d494899eccab499bbb3cfaf209c32f1d4cba16 |
|
MD5 | b05ef2c7a898d6a67dbf97ba322fa9c4 |
|
BLAKE2b-256 | abec67e718ea5f3e1ee65e91315a7fc24fd2286f6b20e414e1cd185a37e6ee2b |
Hashes for asgi_tools-0.64.2-cp39-cp39-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 96fa5b3b88e87e1593c74ef953f6e076c1152e2b5f472f29a90e64d955163ee8 |
|
MD5 | c2c293340e5e1e99184563650a2136b3 |
|
BLAKE2b-256 | 5cc32793fb0b6e0e2011692bb8da4d82ee920c7c97457f3eed4018795874aacb |
Hashes for asgi_tools-0.64.2-cp39-cp39-musllinux_1_1_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b02d0781f2ae9b2f4489879b7479a03644baf134e14cd259216006e76e819253 |
|
MD5 | c5e921f7925410237747a8e2f30655cd |
|
BLAKE2b-256 | c14190e925a38e6a1245b258bedfe7a2a3c2f138f8e153c8ac778847ce429a73 |
Hashes for asgi_tools-0.64.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | cb059ed8a791c98efa3363a219d0b147c7e0d14c02b99662e7d0c4ffff30c27b |
|
MD5 | 7d8920884717cabf62627dd092cc2a3f |
|
BLAKE2b-256 | 2b5efe30716d9ebcea960f8f973649384f9f2def4777d9705ace5b7cf349ac78 |
Hashes for asgi_tools-0.64.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3f7e1a9134fec49457507cd1f28628bf5c673efd90142b85eb91b5ac64a115b0 |
|
MD5 | 432978901c3c1671e5d471e6f8f0b4d4 |
|
BLAKE2b-256 | f3c9a91106142267a18eb771137e64a06c724105d1865f38588be1364f665440 |
Hashes for asgi_tools-0.64.2-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5d20144b9770200071e6e4cef08751d4cd23baff409c98ad517287a4989f6883 |
|
MD5 | 8429ac745064a3f7834b07b0a49d9958 |
|
BLAKE2b-256 | afe44c6df554f6bb9b15ec268f38df4362b6a1837d6dc1d7f1e3aa5d29ba2404 |
Hashes for asgi_tools-0.64.2-cp39-cp39-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4ff60d0899aa8b0992d128859709aa09f28fd0d49b2c44741ef77a33c4c43af6 |
|
MD5 | 01387b6b1cd98bad089f0778fb3d4e67 |
|
BLAKE2b-256 | 74b59c2ad08e9cc17e666b277a346b41a7dec97b4441973f79f49cb8cdf5ebf5 |
Hashes for asgi_tools-0.64.2-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d65a82866f8724c493af479f5828c1136ab723ba8e84bcc10b0bc5322d78a794 |
|
MD5 | 772051247cad522eed72b60231819bc8 |
|
BLAKE2b-256 | 1563a0a4b55def4183ca6400b036eb433393039d82f81cc81717799b876a675d |
Hashes for asgi_tools-0.64.2-cp38-cp38-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d668452508b8383676311b70127ec601fa6b8a15a69665d50682d0a4d382ec69 |
|
MD5 | c2b779fe1b425194e27f52a6955f161d |
|
BLAKE2b-256 | 600b5c234c563803e4aaef7d0fb8613c4eb24446a5b925fffc2ab6677ebf55aa |
Hashes for asgi_tools-0.64.2-cp38-cp38-musllinux_1_1_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6742605351cac8662b73569b1033d05280517110e1a2ec5f9b08312e5d06d615 |
|
MD5 | daa1649ca3129b6775f23647385d50d8 |
|
BLAKE2b-256 | 436bee61b9b88ede72a7ebcee333882b034da146f858f8e7ee8d1636e74576b9 |
Hashes for asgi_tools-0.64.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3ffbfc2e27d593722e448ae4b1ef8e1b39ec350e4d8f50f6301799acf48074cb |
|
MD5 | 96d2abed31a9f409aa163ea776fa337b |
|
BLAKE2b-256 | fcfade6a269a7f00d7c12ceaec28127ed3a9423a8e31ed5c8b6922fe4f03dda1 |
Hashes for asgi_tools-0.64.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b3d6d3ca577ed9176a3141c53d8f7926f21a0841a3f3bb5381b82e2e428cfd60 |
|
MD5 | 040b6eb65fdeff352e3d77dd2fb4eef8 |
|
BLAKE2b-256 | e2a408e272cc8e7a14a45b2b25e597b50ce4d4784f0d24cc04c0b87660ac4330 |
Hashes for asgi_tools-0.64.2-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e074d7cffd517e92d9ca8d36cc9f46d1798955aeaf1d5f985540cf1d69cb1268 |
|
MD5 | 36f6bafdb2315654f9cf491a6660ec0c |
|
BLAKE2b-256 | 3e3df67520b7f8853e4dc43a39a338f969a56947fbda48013881faaab76a07a4 |
Hashes for asgi_tools-0.64.2-cp38-cp38-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fb92036d02c9cc75690a594752b0c703125b06bf029ffa591f6e9de395b167a4 |
|
MD5 | 9200a882a4d66fc943622d277ea11314 |
|
BLAKE2b-256 | a9fe9ed370c821015c68ad89c412bfd5e8ef88f5f33fcc048f5119770d3b0bdd |
Hashes for asgi_tools-0.64.2-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 73162e652d58f0638abba49b1377d2d7efc43527e4ecf935e7693e5d4995914b |
|
MD5 | bad945c17e5182c5f48c0cf7f210eb59 |
|
BLAKE2b-256 | 7dc237396991a662cc20d58e0ce171337daf09e03899d8c0e1538333f27ee377 |
Hashes for asgi_tools-0.64.2-cp37-cp37m-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b6bda29c03c6485b824dae8946cb9365a803b0580af05a59b1e7eb340e0cca9b |
|
MD5 | 6b562d9ce54672419c64b471e2750150 |
|
BLAKE2b-256 | 38b66ff60d7f8726603071b2b091a2d2a31d2c798e1aca0cce9d09fefe1b78c2 |
Hashes for asgi_tools-0.64.2-cp37-cp37m-musllinux_1_1_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c6c3ce0bfe4efce7f4314df720a11b64458a40f449125a29311c990bcf930d99 |
|
MD5 | fea2cd7333766be14427a8ae8e659184 |
|
BLAKE2b-256 | 6374614643612fdfcb05bd941fb93ef001822e99d0165e4314891cf050750d0a |
Hashes for asgi_tools-0.64.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a6dddb45b7b9874d20b766fe0c8c2c267c078f972cba9ccd6f68b7a1c440fd00 |
|
MD5 | 16e8c51f844cde2bd00a4a2a3debb0a7 |
|
BLAKE2b-256 | 1288fd8ec3ff1e220d7267a91c3b533a9cae2089cc2dad7486b391b608ba1182 |
Hashes for asgi_tools-0.64.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0e825252a8656364aff51346852ac6d157fad611202f0df2c85855560da1c7b2 |
|
MD5 | deec5a675a6bc94fab80689f42e31d95 |
|
BLAKE2b-256 | 51c469c4f2b5d4beb2e67abfc9d56f8d0323481cf28efafabb9fa2deb7b16384 |
Hashes for asgi_tools-0.64.2-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 51c51287c0b59e5b3ee9b570660a441a7a0d08c4f385b4b5d51892aebad0dab0 |
|
MD5 | 59910d20231acf5d2fa85781a61dd5eb |
|
BLAKE2b-256 | bfe06913301493da414fd49b3bb7066ea071c8b04165ef50faab2c3d15cd3ba3 |