{"id":24579893,"url":"https://github.com/droidzed/quickspirit-async","last_synced_at":"2025-07-05T17:33:51.468Z","repository":{"id":273721314,"uuid":"835296470","full_name":"DroidZed/QuickSpirit-Async","owner":"DroidZed","description":"Fast HTTP Requests has never been fun before !","archived":false,"fork":false,"pushed_at":"2025-03-04T23:43:30.000Z","size":1655,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-19T22:44:02.658Z","etag":null,"topics":["aiofiles","fast","httpx","library","package","python","python3"],"latest_commit_sha":null,"homepage":"https://pypi.org/project/quickspirit/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/DroidZed.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-07-29T14:44:53.000Z","updated_at":"2025-03-04T23:43:33.000Z","dependencies_parsed_at":null,"dependency_job_id":"de16e715-8189-4680-84fb-40879a57a9a1","html_url":"https://github.com/DroidZed/QuickSpirit-Async","commit_stats":null,"previous_names":["droidzed/quickspirit-async"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DroidZed%2FQuickSpirit-Async","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DroidZed%2FQuickSpirit-Async/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DroidZed%2FQuickSpirit-Async/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DroidZed%2FQuickSpirit-Async/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/DroidZed","download_url":"https://codeload.github.com/DroidZed/QuickSpirit-Async/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250530872,"owners_count":21445882,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aiofiles","fast","httpx","library","package","python","python3"],"created_at":"2025-01-24T01:11:54.216Z","updated_at":"2025-04-23T23:27:08.977Z","avatar_url":"https://github.com/DroidZed.png","language":"Python","readme":"# Quick Spirit 🐬\n\nAn easy to use HTTP client with a fast downloader.\n\nThis library was made with the famous [HTTPX](https://www.python-httpx.org/) library!\n\nI originally intended to make a small module to refactor my networking layer in my apps using httpx, and ended up creating a library !\n\n----\n\n## Install\n\n```sh\n# PIP:\n\npip install quickspirit\n\n# Poetry:\n\npoetry add quickspirit\n\n# UV:\n\nuv add quickspirit\n```\n\n## Usage:\n\nThe library's internal mechanism returns a bytes data repersenting the bytes coming in from the network. Since we don't know the shape of the data, I delegated the responsibility to you to figure out how to parse it to your liking.\n\nA sample code would look like this:\n\n```py\nfrom quickspirit import HttpAsyncClient\nfrom asyncio import run\nfrom json import joads\nfrom typing import Any\n\nasync def main():\n    result = await HttpAsyncClient().get(\"https://some distant url returning json hopefully\")\n\n    if result.Error:\n        raise result.Error\n\n\n    data: dict[str, Any] = loads(result.Data)\n\n    # do whatever you need now that you have the data...\n\n\nif __name__ == \"__main__\":\n    run(main())\n\n```\n\nA complete example can be found in the [`example`](https://github.com/DroidZed/QuickSpirit-Async/tree/main/example) directory.\n\n## Testing:\n\nClone with git:\n\n```bash\ngit clone https://github.com/DroidZed/QuickSpirit-Async \u0026\u0026 cd QuickSpirit-Async\n```\n\nCreate a virtual env and install the dependencies in it:\n\n```sh\npython3 -m venv .venv \u0026\u0026 .venv/Scripts/activate\n\n# I built the project using poetry, so you may want to have that inside of your venv ! No need to install it in your global python install. \npoetry install --no-root\n\n```\n\nRun the tests with pytest:\n\n```sh\n# Here I'm using uv to run the tests, but the command should be the same for other package manager:\n\npytest -vs .\n```\n\n## Licensing\n\nThe project is under the GPT-3.0 License, see the [`License`](https://github.com/DroidZed/QuickSpirit-Async/blob/main/LICENSE) file for details.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdroidzed%2Fquickspirit-async","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdroidzed%2Fquickspirit-async","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdroidzed%2Fquickspirit-async/lists"}