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.74.1-cp311-cp311-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0fda33af61d1d71d2bfdc16b6cde026c95d39433e45a7dc683cab1c514433a03 |
|
MD5 | 71fc43065d863fac9002dfa904321d4d |
|
BLAKE2b-256 | 2b730da1438854ccfd8cdc73c9987c134cc1e15ce4a5f125bc1f7037bb3f1b50 |
Hashes for asgi_tools-0.74.1-cp311-cp311-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 09332232531170315e777b876e16f66760fcc79551f8bef68208065ae439c6bd |
|
MD5 | 7df11bb867bda9433b86d70eba1b5bb5 |
|
BLAKE2b-256 | 299f0455ae130576585ae9478ebe3426d1568546f66f2bc65fe2d381c6f612d8 |
Hashes for asgi_tools-0.74.1-cp311-cp311-musllinux_1_1_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 449e979610017052ec4e517b74abc1f468e00bc1331c5c0921e23a2bd17ec30b |
|
MD5 | f8a93757d4a70cc8d5c0376fdeb71d4a |
|
BLAKE2b-256 | e7a8cbd0f6adb867c413dd2c3b7561508aeb33d3fba3ad57b1080f3cb7fe29f7 |
Hashes for asgi_tools-0.74.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c1bc8a2b2933b5c595df89fd5ba3a2c8290bb8038852cfe9de391893d6057b4c |
|
MD5 | 539dbb23516cf6ec7dcd1a608b40943a |
|
BLAKE2b-256 | d6c197df6fad8bad700e66a57cac7cb466142eb12128d042d3289fe38e5be030 |
Hashes for asgi_tools-0.74.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a58bd3bd952ae3a94448ef7fa52caa6ef34527e7a464aacd0b6a0623d69d6f0c |
|
MD5 | e451f11b2ab1bb1b193f9a74b03b4b06 |
|
BLAKE2b-256 | 9bee7cf40a81bf360e32ecd746ddc19bdb922c422859fec9c2f928b4382ca886 |
Hashes for asgi_tools-0.74.1-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 193b77264751a7ab60ef81e4ac5688b56a0f02c4c8ea715a3bcf18b32106d6d2 |
|
MD5 | 75fabc6e826c80df8b8b89a384456eb3 |
|
BLAKE2b-256 | b95f7efb855b213d0317220b4b978f2610a90dd6db7e513748e1e7ff69ba5cce |
Hashes for asgi_tools-0.74.1-cp311-cp311-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8473afd26aceef2b4729ccbf7d5e3767a9694328174e5d2294c5a0e030c9deea |
|
MD5 | 2c700c79459211f532f41fec201c2bcb |
|
BLAKE2b-256 | 03440dfd2cf2898c7b4b4d1bdbd214a3b6a5886c295f52681395cfac1042da25 |
Hashes for asgi_tools-0.74.1-cp310-cp310-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 254e0b3d62dbd152a2e378f1e234ef8a734083290bfd4ea33efba59e0dd1b192 |
|
MD5 | 0006cb1973badfe1a45f9d70e032b045 |
|
BLAKE2b-256 | c4fb5b8a41979e244b23dabf45e3335dd7b3b3c54a0657c032193d30f94a6a5b |
Hashes for asgi_tools-0.74.1-cp310-cp310-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7f3bbbefdf10b9a6a36ecfb1ea168d55ba1f7f4db56fd757a9c676f100a4269e |
|
MD5 | 7bc022d8acd847da839b8716367ef0fc |
|
BLAKE2b-256 | 018ca9efee181bd4f67f6686b850e7b642e211670da46040d3da8a2948a11d9b |
Hashes for asgi_tools-0.74.1-cp310-cp310-musllinux_1_1_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 635de77eac66b07483c85deb4c5a650f04b08ac4c5acaa2d6ec0338db32f1146 |
|
MD5 | 29f3e7bc6aae50e4e69d16372369bfcc |
|
BLAKE2b-256 | b4e4f4876d2f20bea1355a84db07a95c0ebc626e62b6e33924d922ab08fe8b4d |
Hashes for asgi_tools-0.74.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7ee35362cb7d7eb69d8bbdbb5c40fd058f9643c4c49de701aa6f20cb1f18d736 |
|
MD5 | b018a146265e307e5fcdb5bcb8e03ce8 |
|
BLAKE2b-256 | 845e73a01b31766897bdc3f1602349690e164e5edf4e489b698a7be8e3344bfe |
Hashes for asgi_tools-0.74.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b9d0ba2c51feba52d8deb2f0048a76a6797d86c02c8d26939a20ec622a308369 |
|
MD5 | 486d00dc0e4f4c96fa77927d6f3ea54d |
|
BLAKE2b-256 | f99371fc4e35dae18105e53cc9ab7c4c95e80b60ec27d7664b4e0b4ef4ef6b2e |
Hashes for asgi_tools-0.74.1-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 24d94bfcdf2ef8a7a4cde6667b1725f9f08b0a3e6c4a21f41ecf98a0a4c3e36d |
|
MD5 | ff2e279c165ff0edd9058351e9215725 |
|
BLAKE2b-256 | b139be48097862f5d7e60b52533b5c3aae334e425f6dd8863d32b8658ebb35c1 |
Hashes for asgi_tools-0.74.1-cp310-cp310-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d5456912f0468d318d8cea855b3fb388e7280c77dac71f4f8997ea86b53f80a4 |
|
MD5 | 10ebf0c227714730586dc7249ff134e5 |
|
BLAKE2b-256 | bceed1b4a6688dbb83e26ffa0dc3de6fbdef4f5d478a589e50908214ae56378c |
Hashes for asgi_tools-0.74.1-cp39-cp39-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4c29072d71fc69e13c30a86374309b5255e6cece00869d7817e5829712e2bc48 |
|
MD5 | 54c30ed28d51549350eadd6887abde89 |
|
BLAKE2b-256 | 472e483fb5e6cffc4d37b86311edf5e1315aa7718f4760ddd31c1238901774ac |
Hashes for asgi_tools-0.74.1-cp39-cp39-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4cb102f16e235f5e2cb78a0be0ccae6fd298b7096f839f4b17024b51383747a1 |
|
MD5 | 0fff144507af75651bd7a23ded45bfe0 |
|
BLAKE2b-256 | df1dd4bbe302f96be782e60b46775f5b854f2c7e6be88e8cab2aceea3c425af7 |
Hashes for asgi_tools-0.74.1-cp39-cp39-musllinux_1_1_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9adb690bc194d36aac131972e581d5b959cad2392d2ed9c451694ef052f7f5e9 |
|
MD5 | 72f13083e15cd6df541d63ef5c07b5a8 |
|
BLAKE2b-256 | afbb178ec7eed8ba765cbc8c31c04620de09dac2dcf0e3db6dac4b5b35c3de8c |
Hashes for asgi_tools-0.74.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ad8dbc5d11a8ca20bc2cb62acce317e9abaab5ea85d4e759a3f5df806bfd4730 |
|
MD5 | 1930a24b1f4246040044d4f7f5746049 |
|
BLAKE2b-256 | e23984faf67a1ab388b9c0241536171ab81b33ef8fad1d808b8878f65869c91d |
Hashes for asgi_tools-0.74.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e88a9e992be2ae78beb1a238662f26ec499aff2d31380665f728d4618ddbea11 |
|
MD5 | f4ae621a702077020408e49e9a6151fb |
|
BLAKE2b-256 | d797a1156deb9d73f67671ae3a07942f65357124c4762fe913679a3e23479773 |
Hashes for asgi_tools-0.74.1-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 74ab9be7bc6e6b1d3af75cdec143cb5e23a266d88515385ddba2d0541f3b7360 |
|
MD5 | 7dffd0c1f5037a689fea9927bedfe104 |
|
BLAKE2b-256 | a89fdc26c7dbbb9ce9949b483d06c939752a1532a5af0b0665fe3710c9099c4d |
Hashes for asgi_tools-0.74.1-cp39-cp39-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 96024ccca10cf1ad4144028a3154526b4a5bdefe1a0529e515aaae5908c6759a |
|
MD5 | c70cf0f9d0090a1867e002256b923bb0 |
|
BLAKE2b-256 | 48bc166f73ee1f428edffbe2b0b9d0509eb1cc2fff2342a0b12366ba3f3d5914 |
Hashes for asgi_tools-0.74.1-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f55ed5430735e16dbc76a46dda2e81ffb13a9ee052902c1a19033ca5fe3234dd |
|
MD5 | a8fd93158c4fa2aea492afa142556500 |
|
BLAKE2b-256 | 6c1cbaaa96c11ead4776b5a66186d8379962888e4ab068f89cea00bb976f3a9f |
Hashes for asgi_tools-0.74.1-cp38-cp38-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0c5b1e761d6b4cf9ae5b5d8a7ba29134d5f9a8fb917c37396ba634875ea71123 |
|
MD5 | f55ce7630c747b5bce9d0e3135ae0287 |
|
BLAKE2b-256 | ee1c6fdec13ff49f05791fd78a1f61c735b0c74cc597c8086a61cc8449081f61 |
Hashes for asgi_tools-0.74.1-cp38-cp38-musllinux_1_1_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f8977637ac4ab21b47666778551b194e0d7201a4967b0ed756a93272df303358 |
|
MD5 | e88236b1fde5a0d3d45ec090cd2aa25e |
|
BLAKE2b-256 | bcf6977dd81f901acd1fd2a8a614f7ef4e6c370c7a19711acc20abed365c576e |
Hashes for asgi_tools-0.74.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b99cebee45f3fcafc43808a558a92573fc62551c088e535effe3adf6a7eea1ec |
|
MD5 | 6f98be742a98e9ee810cd7c860154ba1 |
|
BLAKE2b-256 | 0ada45bb3ba7482249ae3799b813ee7aefa3d78cf075960a46f2062bdeaaddda |
Hashes for asgi_tools-0.74.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c4989b123565c8d8be7c6549f34ac43cdadd69101e4677417c2f1187b186b244 |
|
MD5 | 2cfbb3f5b7d26b6aecf600e10ab0bc0c |
|
BLAKE2b-256 | 4f1e6c67245aca2d0f21135c055a4a217818a5eb21293b599f872a788fd59eef |
Hashes for asgi_tools-0.74.1-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d1241edafb9747cea63c449eee66ffc5cd22c659582665f07160f8d686a10baa |
|
MD5 | b10c494dbc7b71d87333c6f00ef42ae7 |
|
BLAKE2b-256 | aeefe56a9c09ec60e57ac018269f772aaeb2b794a3901ce43de355e8c9b97a2c |
Hashes for asgi_tools-0.74.1-cp38-cp38-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a57f9fee2b754b07b66eb8e8fb3c3dbae08c69fe7f960732bf885be4c522b656 |
|
MD5 | 897d9dc12e77be31a700038ec63df52c |
|
BLAKE2b-256 | d39dba6e1959267692e179fa4801f848fb4b28d472b0ce7c61211e2c67193f63 |