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.76.0-cp311-cp311-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 592d176990006c83ea60d3b1cd15f97e83c37476e90704846eeb296272bdd318 |
|
MD5 | f56f9be72e26b7db573813d3d0f289c9 |
|
BLAKE2b-256 | 70811240d225b319fc63f3da7fdfb52de9fabe6660fbad29ed11e5cdcfc4b937 |
Hashes for asgi_tools-0.76.0-cp311-cp311-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c32b0f4faf0a6021cc897c1a1284334b8370c87015a869d2507e25e56b8cc69b |
|
MD5 | 94ba2cde8c86f6c707f2df66e1611e07 |
|
BLAKE2b-256 | b01f7b788be2d176c152d5f4122608407802e2d8bf3d81b775735480f5309cdf |
Hashes for asgi_tools-0.76.0-cp311-cp311-musllinux_1_1_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 24a4736e9d7acfc560d04d60ef707f88bde5260cf4bbb8a14244c8b81f629896 |
|
MD5 | 6e7d60e14fb601cdcde027dc9710551f |
|
BLAKE2b-256 | 0b195b5c508ddc56c22fdc9c2005165e0f3b8643477d4d92eb988b6ba83a1d0a |
Hashes for asgi_tools-0.76.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e08b9b381876df9881780b2f0b2c021d70e1fe366f22ad46fc219e9e557b4b98 |
|
MD5 | 999a8bc5e615da34a01c01330fcf0063 |
|
BLAKE2b-256 | 3fe7f1e2f108e6f97d8f757eb8dabbb9758925a8241b0e74c9bcdc0b58045794 |
Hashes for asgi_tools-0.76.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 49b00c37bf9539d8852cb8e5c5ed0e91eedfb930155bd159cb4a8f896a9066ad |
|
MD5 | 788f9811bcd7e13b9b6d373a17af23ef |
|
BLAKE2b-256 | 9bbf4f29ba3398c226347b8639fa34325307e3f92478384da3d761ac6ff87073 |
Hashes for asgi_tools-0.76.0-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0fa294c6e93761db6337cf485c2a20ab1bf874dba7c47592602d98c22d545dfb |
|
MD5 | a68eb4c90fbd6e2dd8d84c2d11e038e6 |
|
BLAKE2b-256 | c8099338692e5c57dc584f467c32503fc9161062ffb0471803e6143cb9726cd9 |
Hashes for asgi_tools-0.76.0-cp311-cp311-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ddfbf889536c893d070a07b296454d54d7c6ed95424d4bae54b7c079a24bc540 |
|
MD5 | 9244d673f629662e9f0f2177a90db7c0 |
|
BLAKE2b-256 | 04571184e8b662a696aef7db50479e6b81eea878e7ff8c32ea17be265bae4f20 |
Hashes for asgi_tools-0.76.0-cp310-cp310-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 61c216b6053a62ed871c95c92df416f97fd7425453ad742515b61ade1d7ac962 |
|
MD5 | 448d974fdbda6ff9ad7a045819e48029 |
|
BLAKE2b-256 | 0662b295f317d385308a2627b7c435029df45b85af9f267ef358a8e2585d9e2a |
Hashes for asgi_tools-0.76.0-cp310-cp310-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 49ba2a4281bc2eec984e967583383e35d4b3d5481123c9ba4bf78d35712c3ff5 |
|
MD5 | b40a8fff4726a90afe84c4a5d3c32980 |
|
BLAKE2b-256 | b6129368ea0f302b78aab55b5c0c3bd74d58f092cfa1b88a392de810733e31fd |
Hashes for asgi_tools-0.76.0-cp310-cp310-musllinux_1_1_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b082efecda027949841db7a5e2a724f04bcc538acde9d8bf87c0eca60d95f310 |
|
MD5 | 9ada4b513c3deb06acfc986c66a28f32 |
|
BLAKE2b-256 | 3bbe3cdeb364884a4a3c2399f9a33fcdd2798f235fde8eeae9a7f76ea7f8d1b8 |
Hashes for asgi_tools-0.76.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3941e52a85c11118f84815d351f136c5d2e18123e751e5c9ee6486b7622ffcbd |
|
MD5 | a33c9e959049b4cba97b3f352fefc0a0 |
|
BLAKE2b-256 | c9f575f19b3ed51fb9a794df15da5f5dc49b98db054aadef1ec3aff547fece48 |
Hashes for asgi_tools-0.76.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c3e3cba07f89ac41bb7dfb1bcb9fed7127a02146924c12602d6141aecb8ba9fe |
|
MD5 | 57c49bb9aae784cca7d8ad8cca51f176 |
|
BLAKE2b-256 | bb43b5947bbcb6bc1a5bfc401f8b7189efc574696b46b0831d5f2640f68aa420 |
Hashes for asgi_tools-0.76.0-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5feb459a1d03bf0d278cba971206a7243a55a122575945c230fa276b33fd08ae |
|
MD5 | f8d02d9a458478ae86dd71b06a1b83a9 |
|
BLAKE2b-256 | 3523f76eee482dc32cf356e87f2392ced72f9ea291336b0890418ceb06a78f71 |
Hashes for asgi_tools-0.76.0-cp310-cp310-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fcf736deb7bf1b99e6d81894c99fd00e35f1c2851adf1db6eb7d0911dfbbb121 |
|
MD5 | f28a9a501554fd0470619d3a72e5c67f |
|
BLAKE2b-256 | 5c73e64224806a7f8760e049ff1054de042bf2ca74e90a1f1c95b00c0c816868 |
Hashes for asgi_tools-0.76.0-cp39-cp39-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 454d0808b8b1b5814c95c3e5773988b3dd08976325241e2a904d9f846bae9d47 |
|
MD5 | 2e0b8fbcc8031a49b0743c1b85b632f6 |
|
BLAKE2b-256 | 9d2c3034e959c31a14f986d2832fa19a5126ff5e3412246a8706dc12ab58cc77 |
Hashes for asgi_tools-0.76.0-cp39-cp39-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4cb0f30adb0c2208d5ba3700ad7a388b039f363fddfaca32fb221686c4540cbc |
|
MD5 | 4a0d882057e4764cbf23dba034929aca |
|
BLAKE2b-256 | c713797df26262b4d508b6b52eed0e1e535d44c2a0cb7f344ab192009411b973 |
Hashes for asgi_tools-0.76.0-cp39-cp39-musllinux_1_1_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 469f32a1a5b17ad2380e51e2b3ba06c0bcf510de7a6b97b3b9be3ec4e327811e |
|
MD5 | 27b7b9c6cbd33cb5818f42014960fcdc |
|
BLAKE2b-256 | cbcf0d4361bc1b8266c31697f8caee7e6dad13b80ca54fbd6d72ef960d70a962 |
Hashes for asgi_tools-0.76.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a03f2c0c7772a2c1d900d8b66bbfc92fdf9f3c9314b3cad11dc5c2046703e6d0 |
|
MD5 | a93dba85b459fdb306cd2312e34ce0d3 |
|
BLAKE2b-256 | 53a8f4bd9d82df74de544dab5fca114d52ab23e32bb0f99856f8bea0f4fefaf5 |
Hashes for asgi_tools-0.76.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 213fc906c90203fdf08a5157f6e8db0ad969e809fcf0cc4c627e86386bf6cbfa |
|
MD5 | 298dbd2ad0638c25f82bd8458454afec |
|
BLAKE2b-256 | f98e371905c174a6b6ca0d1b7e7e76abcc675c23c09825d864fc71b650c2dd36 |
Hashes for asgi_tools-0.76.0-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1df1191143c66120c410a306f1ca887ca191e1fcc66f93b5f92a9c220c869856 |
|
MD5 | d261f7f6b3680bfa6a0e40613e847776 |
|
BLAKE2b-256 | 24110e80cc1cd59dee8c4ffbd0b7f73b2fba0f9c59e0fd76c2c5d5d08445c03d |
Hashes for asgi_tools-0.76.0-cp39-cp39-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0d7cac6c9202f63f332e92775a327356517efd61fcc682269c68b3c145eae4dd |
|
MD5 | a967f42610ef5ad0fa909c7ebc2b6bc2 |
|
BLAKE2b-256 | b8e2c16533376d8563363614624684ebfab3ffe81a53b0e45de04729e37a4cf3 |
Hashes for asgi_tools-0.76.0-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1c954b09a32c7db621ec826ebd83cf1cd04a1533289b89679d188936b1757c4e |
|
MD5 | e5d72f85ca55554432ad0efa894d0c29 |
|
BLAKE2b-256 | 472d45df60ddc67aea369f592f3cd58dd331e88de3c45e62fe5b6b2860e9ef91 |
Hashes for asgi_tools-0.76.0-cp38-cp38-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 40fe59b5d6d6c1b61f66819b985bd0a98bb9fabe4b3963d7c2bfebb7114da911 |
|
MD5 | 83d7f541d764b82d4c22f577f1fec344 |
|
BLAKE2b-256 | 2a9faf043767037a1cf43a74647e6bf1a98044bf3b845c6126eb63f8e316903a |
Hashes for asgi_tools-0.76.0-cp38-cp38-musllinux_1_1_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 85c45041b680aaeebac6ca571c65386d8c3a66b84a2f54f08cdff6a097f89cb2 |
|
MD5 | f7e152cebbfa01f1f19240bd92ec4bca |
|
BLAKE2b-256 | 1a41e411bab5523aa5fab73ba2094e3c48fcd302e8451acc3d4f33b40009b27b |
Hashes for asgi_tools-0.76.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 306077e705bd6d53acae375b2e42e74bc90cb878c5bdd57c6b64382872ccf484 |
|
MD5 | aff84259811c5f06c27c5ea47c9c9192 |
|
BLAKE2b-256 | 8d2c44d529559cbfe1e46e7f7caf7950b8eec64b260da51958c2a1dfa7c074e0 |
Hashes for asgi_tools-0.76.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 877db6b88e08c685659aa4b59cb002f2c366e8e7eb2f84cacf88032b53fc23cd |
|
MD5 | 1374e96454f29a8edbec48b61a04a108 |
|
BLAKE2b-256 | 865addadb4e85d06f01f95c4ce92a9d254933c8d2dfd2b2aecb4a1bbd8fb0521 |
Hashes for asgi_tools-0.76.0-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0592ee764c71df9a0b1ef4479376ff7bf591d9dead9564b5bf4624351894bf1d |
|
MD5 | 864c31f1bd56a2ecd86ee17eb0cdd57a |
|
BLAKE2b-256 | ef0d0f1713c8adeb7dec57a355dc57aef38818886b45036f70b488ca83bf3af9 |
Hashes for asgi_tools-0.76.0-cp38-cp38-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 113b0d84105410a78ac50dd5a8a076c234c4156a5eb0f1a4893ec8ac306e9b97 |
|
MD5 | 486f09a19d1556aba6ea86ea6531a165 |
|
BLAKE2b-256 | 956075ba1d4f22e84ad74c643c1e8731a9c3f7ab73072209916618b115161441 |