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.70.5-cp311-cp311-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4ee1e1c99531babefbc3b1315c7543d1e5dd88fd16eaa6d1edbf74fc45665218 |
|
MD5 | aedb5dfc6a901d955624b5a096663051 |
|
BLAKE2b-256 | 27c890197e75e402f8c470fd870e3e47ff917c02c7ff3d64176b7f0be07c5da5 |
Hashes for asgi_tools-0.70.5-cp311-cp311-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 62e9e4ecb6984a072ab6cb9f00c6851f720859034fbc0384f777cac1ddcc75ed |
|
MD5 | 13efe4077de77f9b01c7b820ed5d6d68 |
|
BLAKE2b-256 | 691e238ffebab11c8204d608c49f6962a43588c81a05cca2a85768cf43ccd5da |
Hashes for asgi_tools-0.70.5-cp311-cp311-musllinux_1_1_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8184b5a665c74c4264f92628cbb4958519979ee097cc29fc47b58fc52e404766 |
|
MD5 | 62011794df646d5b127598394e9a20e5 |
|
BLAKE2b-256 | 8bc9d7d8c101b6677ef5a1307ee8f88ea0356ca95680dae9df2f8ae17b1bfc5f |
Hashes for asgi_tools-0.70.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a49aba20c66bb6cf3b910fb9dbd3234f024d4050b1db42bf91124018612aa3b9 |
|
MD5 | 4aaedc4c24c4ab05724fb58a3c856080 |
|
BLAKE2b-256 | 348f758a40c19ec6e3d06d2c7f2bb55314e1b4974aa6f2112657c4e6de86ea6d |
Hashes for asgi_tools-0.70.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a7d47d2b83335edaab12ccb0e25ffa1ae7d6fed35eb2c13a8b5f01ace7839d94 |
|
MD5 | 1e1eca52608fb4495d9cbc488680cdc1 |
|
BLAKE2b-256 | 9838cb1104a64880168508bb911c667c7e0686a86e107b8cec3a57b4a1104d22 |
Hashes for asgi_tools-0.70.5-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ff9859d93c568e3ffe34bdbf93d3570db495cc75e4ad018576531955f8f68e26 |
|
MD5 | 722c1dc8c4b0091c4e64d8b5594cc93b |
|
BLAKE2b-256 | 75b7dd176ea9750661259c59325823690dfa7342f4d4c85bebe6fc88bfcd310b |
Hashes for asgi_tools-0.70.5-cp311-cp311-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8ef70228ae7ed8b205ebeb1d6a17fcacdf97768e38d4dfbd6de8b9d128d3b407 |
|
MD5 | e037c0d3387ccee398253dfe30d492a0 |
|
BLAKE2b-256 | 1365b74d0d767a3d67c5a0d1d8dabd99692a8a2dcb733b72f51679be2dc6af2f |
Hashes for asgi_tools-0.70.5-cp310-cp310-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | cf4331cfab6411945d257738372973504073a1c06701a4dc499e1566465aa6da |
|
MD5 | bc2b541e716fff6af3c5e43a8021bf1b |
|
BLAKE2b-256 | 465fe3d7bc9bb12086123028e3accc47a630d9a41f13b6939f16898e19eeb147 |
Hashes for asgi_tools-0.70.5-cp310-cp310-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | be313769149a68005f600fefb0f43a0c910b07ac1837fe7ed609e50a6e39abf6 |
|
MD5 | 1f3ef731c9ca51031a36495f5004cbb5 |
|
BLAKE2b-256 | acf10e9113d8890587b565696bdc0749aced43c99099e77b16939e7c935fcba8 |
Hashes for asgi_tools-0.70.5-cp310-cp310-musllinux_1_1_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 79f5b249ae98646fd5aedd182bdbe5b84bc5e4087ae5623df473a6c8c5a1a83d |
|
MD5 | 9c33c1c49e9f1900108713d2ffe78923 |
|
BLAKE2b-256 | 85add0796cfcfefd891d518c45f387a5d6ee7012b1f1234c4b9157ac3997b54c |
Hashes for asgi_tools-0.70.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 656675f90255362af0c16b46e3c847a1cb5d8bafe4285f4e5d82bd9e8250acbc |
|
MD5 | 87cccfdc912210fa371991a5c9cb5f68 |
|
BLAKE2b-256 | ee46f2774e1e14ddf21d3071d0802ff7769d35625b82575b55a66ea371b0bb00 |
Hashes for asgi_tools-0.70.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1231dd92cdea57645f27f3b82b4243cb49282b09550cc445c5b0fdd6ea363cc6 |
|
MD5 | 51f96378cdc1ba58e77206673b566a94 |
|
BLAKE2b-256 | 18a7561af5c227a7e52d0e63c7fdde1098cc4e0d79044f6551338d4249e95436 |
Hashes for asgi_tools-0.70.5-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0fa535caa39dcee35767e6d7211e6fe13c5871538e33159d7053793b06b8949b |
|
MD5 | d6aa6983471457c9379c41ea604f6277 |
|
BLAKE2b-256 | 28780431042d11e179733a5a96720f06f7fb5ea974f02b83766fae0040108b51 |
Hashes for asgi_tools-0.70.5-cp310-cp310-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e833599e148ef80cc8098a00fd27a3ad4a9248fd4c31089468a9c4252ab3a550 |
|
MD5 | 20c39098487edab76a9895a7068e4c20 |
|
BLAKE2b-256 | 56b0d26001985e3d637bae3b06d9023c23ee1ca15682eb4a62a8ae37d5f93fea |
Hashes for asgi_tools-0.70.5-cp39-cp39-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 46fc1e610008ca77f19ef49fa07e69687c2795bf2f4cc8c0216bc30196cb3376 |
|
MD5 | 1d62386ea69b79d6579556755c1390c2 |
|
BLAKE2b-256 | 564b120f062c679f6c4848f715e4326133b8e166aeb6490df0a7fa3176352667 |
Hashes for asgi_tools-0.70.5-cp39-cp39-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 334c6bbcf123b043a0971266971a3d6f3ca013878c110c477d640863e3a25519 |
|
MD5 | 9474eb15e0b9de4db67d34cf1588ee85 |
|
BLAKE2b-256 | 62e480fb9478adbef6c54cf864ec111751d7d7963066fca4588da053b87946f3 |
Hashes for asgi_tools-0.70.5-cp39-cp39-musllinux_1_1_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4e44398fd5dfc26c14e48e736169c95399d6d58840f24c8a882c2d1408710966 |
|
MD5 | 888185e5ff58ae6a555329181976db28 |
|
BLAKE2b-256 | a0442c46c8d60f84f029637aee4bab7221524ae789618f45ef0d9f43b2b4f8d6 |
Hashes for asgi_tools-0.70.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b28750d093c7f8f04b3524e938dac50a0156313d71422a813bbc0b649c3374b7 |
|
MD5 | 31ff049d59858e5778a0f6a0999ba97c |
|
BLAKE2b-256 | 29a1c2d4ec05908378fa219b71bcbff739fe2bfb5733194d5421a65cc19e044f |
Hashes for asgi_tools-0.70.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f2a7b9953f3b7344fd3acb7562c8ab9880137fc0103c70fda27dc4059f7d598f |
|
MD5 | eaa7a5e27e9e7bb0df43cd9aa3823a40 |
|
BLAKE2b-256 | c9b610e61e7cfc3fd2788b80f7bd1368c4b243a74e9d8fbbf460c8a460cd27e1 |
Hashes for asgi_tools-0.70.5-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | cb61edc4e628f29f237cb7f93da93abaf677f693e3c2bf0dc5c9b3aaf2c69651 |
|
MD5 | 483189f31bbd0f32e2c28146011d9bb9 |
|
BLAKE2b-256 | f4266d66124fb239a7afee203037aabbed9d9210fca02b373a1f71d6ba8e2162 |
Hashes for asgi_tools-0.70.5-cp39-cp39-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 42e4048ea58383c9af24dc67a74cef01e397ef5c348ad487159c7ea75fbdd700 |
|
MD5 | f9161a814f912502d8066388b2d228ca |
|
BLAKE2b-256 | 2c8ad2b79a801a208c6d9ca012bfbeb839988de816a8e34d0346e16cf492ae82 |
Hashes for asgi_tools-0.70.5-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 317757930177ef1dbc08b20e26466b8281e5cc013b1fce8b702b39ee08040141 |
|
MD5 | 2bc62d257eac55d5903baa8bd8ef6597 |
|
BLAKE2b-256 | e765ec62d44cdc15206065ddb17bd912b65aec55402f6e3ede31c449ae4cd687 |
Hashes for asgi_tools-0.70.5-cp38-cp38-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b9e675fb9e01ebe3a57b5fa8c8a3d447f5d611aa8a16a12e7e607404df90573b |
|
MD5 | 61faf5415c79590f4205f11db942e4f1 |
|
BLAKE2b-256 | f2e3a3eced99c700cc7bc17f24b130dd91c30927adc15a5ec9c2341e7ab66a80 |
Hashes for asgi_tools-0.70.5-cp38-cp38-musllinux_1_1_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d7ff5b4244ac42df8b83de3d51e3cdcdbe13ac44d0b55d549f9b91990b40201a |
|
MD5 | 48363b8f50db464cda07e3c85ef3a1d6 |
|
BLAKE2b-256 | 8d9fe375a111bf3be46e23f90d53392cdbb742d917f4915ea7909588805db2b7 |
Hashes for asgi_tools-0.70.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 455a937bc38ea8eef34f111eea08181779a2cc231c2aded6155e9c06e96d115f |
|
MD5 | 8221f58d625c587fa03537d35ac32709 |
|
BLAKE2b-256 | 84e7606ac66f2fa85d4c6983b2262e7f0690c6afb39ce9a0a03583a47b83724e |
Hashes for asgi_tools-0.70.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 522492f289fbeafb5b521454b816e4283b64c536c7b1001cf631721099ef5104 |
|
MD5 | b0545f697beebd626a1379fa23c64df6 |
|
BLAKE2b-256 | 2b2441ad000fd7277cd788bc6720b671ad5cfb45cd2c6fd7739d5b68f6711f1b |
Hashes for asgi_tools-0.70.5-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 19310dd6eac930f60a9776716f844bd32afb07b5efb947becefa8402f50ed268 |
|
MD5 | 0c023ee9856e08d15ed42c2c11470c10 |
|
BLAKE2b-256 | 297cbf967195061bb8c3ef27b22eed79560abb12f4e271bd2fb7e1640d4d3174 |
Hashes for asgi_tools-0.70.5-cp38-cp38-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | cc5be1e285294909e93e992c35852a60e2d37e5460ddc42d3b84a4479c4b473d |
|
MD5 | f2701e5e13574502fdc8a9e12f939b62 |
|
BLAKE2b-256 | fa41a411fa4ec802245fe349a4e14d61479891e64de66af3cdcd8934801f06a8 |
Hashes for asgi_tools-0.70.5-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e6a3af9b1986b18d88c7c0f92c02e914dc9dc4c96b14d71ed5b3658274e1d242 |
|
MD5 | e939e28f96ddce7ecde01b8de8477090 |
|
BLAKE2b-256 | e096a36a877563bba0a508137d8d48b0602c8409400cb6d025d242f1807d2d81 |
Hashes for asgi_tools-0.70.5-cp37-cp37m-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6b56e424a7b3b8ad4d1512515b17bc7bd6227889c60c0a2d11192e11e37b8c3e |
|
MD5 | 8171b00fd107929ecf4c7e99f3187bbb |
|
BLAKE2b-256 | dac09ecaf8fb71033afea3be706ade2f6204d2ea9b77bc29edfa9a974951d256 |
Hashes for asgi_tools-0.70.5-cp37-cp37m-musllinux_1_1_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6ee129f0b4a8574a22ab5b87673b3c90c36726f97bd65220d895a04ed4f55f9f |
|
MD5 | c41ccfbd9b3b90cc30cfa6221e3ef6ac |
|
BLAKE2b-256 | 179db06e2586ec632904fc0df53b0164b11825059dd424fff32c11dfe1c79e8f |
Hashes for asgi_tools-0.70.5-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 665dd77cc137f90b3894fbb15956186028d0f99cd36b5ce6f8136251355edf0c |
|
MD5 | bedfd398ba9cd8401379c9d67c529f74 |
|
BLAKE2b-256 | 435a871129a1b3ae744635c39035733710a5ba63ce5a1107e29629c80d39e8ca |
Hashes for asgi_tools-0.70.5-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2588befe6d9cc5162d77c64bcf6a04eef4fa06801e0a2c8b7ce0ac0d4af5440d |
|
MD5 | 25df7f27104d41528570c356fce7df8f |
|
BLAKE2b-256 | a48a7863fa8fc6b19ae3cd482f8b93c6a6efbe82f676133e6439a094c12a960e |
Hashes for asgi_tools-0.70.5-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a3b15a33f3983b513587db4b48f2d866908f5106af8875704217ed3e76ba700e |
|
MD5 | d0fe081e9bf41e66ad46beb983e9d81b |
|
BLAKE2b-256 | 7ac3b04b891488147e6d30ddd3f499719ae4823ca7423d89277fc29c438c5382 |