{"id":23159079,"url":"https://github.com/aekasitt/alcedo","last_synced_at":"2025-08-22T08:12:00.051Z","repository":{"id":229223783,"uuid":"776140340","full_name":"aekasitt/alcedo","owner":"aekasitt","description":"Oxidized and Optimistic HTTP Client for Python","archived":false,"fork":false,"pushed_at":"2024-04-10T08:15:46.000Z","size":2308,"stargazers_count":4,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-08-18T01:33:48.428Z","etag":null,"topics":["aiohttp","http","http-client","httpx","hyper","hyperium","json","oxidized","python","python3","requests","reqwest","serde"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/aekasitt.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,"zenodo":null}},"created_at":"2024-03-22T19:01:44.000Z","updated_at":"2024-05-26T13:35:54.000Z","dependencies_parsed_at":"2025-08-18T01:31:13.225Z","dependency_job_id":"3e1efb77-0728-4794-a8bd-f9d29ff83fe7","html_url":"https://github.com/aekasitt/alcedo","commit_stats":null,"previous_names":["aekasitt/alcedo"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/aekasitt/alcedo","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aekasitt%2Falcedo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aekasitt%2Falcedo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aekasitt%2Falcedo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aekasitt%2Falcedo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/aekasitt","download_url":"https://codeload.github.com/aekasitt/alcedo/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aekasitt%2Falcedo/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":271606595,"owners_count":24788979,"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","status":"online","status_checked_at":"2025-08-22T02:00:08.480Z","response_time":65,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["aiohttp","http","http-client","httpx","hyper","hyperium","json","oxidized","python","python3","requests","reqwest","serde"],"created_at":"2024-12-17T22:28:57.989Z","updated_at":"2025-08-22T08:12:00.019Z","avatar_url":"https://github.com/aekasitt.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Alcedo\n\n[![Package vesion](https://img.shields.io/pypi/v/alcedo)](https://pypi.org/project/alcedo)\n[![Format](https://img.shields.io/pypi/format/alcedo)](https://pypi.org/project/alcedo)\n[![Python version](https://img.shields.io/pypi/pyversions/alcedo)](https://pypi.org/project/alcedo)\n[![License](https://img.shields.io/pypi/l/alcedo)](https://pypi.org/project/alcedo)\n[![Code size](https://img.shields.io/github/languages/code-size/aekasitt/alcedo)](.)\n[![Top](https://img.shields.io/github/languages/top/aekasitt/alcedo)](.)\n[![Languages](https://img.shields.io/github/languages/count/aekasitt/alcedo)](.)\n[![Repository size](https://img.shields.io/github/repo-size/aekasitt/alcedo)](.)\n[![Last commit](https://img.shields.io/github/last-commit/aekasitt/alcedo/master)](.)\n\n![Alcedo banner](https://github.com/aekasitt/alcedo/blob/master/static/alcedo-banner.svg)\n\nThis project aims to be the feature-incomplete version of [httpx](https://github.com/encode/httpx)\nand written in Rust.\n\nWill this be a drop-in replacement for any of the leading packages like...\n\n- 🐍 _aiohttp_ ?\n  [![GitHub](https://img.shields.io/badge/GitHub-2B3137?logo=github\u0026logoColor=white)](https://github.com/aio-libs/aiohttp)\n  [![PyPI](https://img.shields.io/badge/-PyPI:%20aiohttp-3775A9?logo=pypi\u0026logoColor=white)](https://pypi.org/project/aiohttp)\n  [![Docs](https://img.shields.io/readthedocs/aiohttp?logo=readthedocs)](https://docs.aiohttp.org/en/stable/)\n- 🐍 _httpx_ ?\n  [![GitHub](https://img.shields.io/badge/GitHub-2B3137?logo=github\u0026logoColor=white)](https://github.com/encode/httpx)\n  [![PyPI](https://img.shields.io/badge/-PyPI:%20httpx-3775A9?logo=pypi\u0026logoColor=white)](https://pypi.org/project/httpx)\n  [![Docs](https://img.shields.io/badge/MkDocs-526CFE?logo=materialformkdocs\u0026logoColor=white)](https://www.python-httpx.org/)\n- 🐍 _requests_ ?\n  [![GitHub](https://img.shields.io/badge/GitHub-2B3137?logo=github\u0026logoColor=white)](https://github.com/psf/requests)\n  [![PyPI](https://img.shields.io/badge/-PyPI:%20requests-3775A9?logo=pypi\u0026logoColor=white)](https://pypi.org/project/requests)\n  [![Docs](https://img.shields.io/readthedocs/requests?logo=readthedocs)](https://requests.readthedocs.io/en/latest/)\n\n### Probably not.\n\nBut it aims to bring to Python the speed and feature-richness of Rust packages\nlike...\n\n- 🦀 **hyper**\n  [![GitHub](https://img.shields.io/badge/GitHub-2B3137?logo=github\u0026logoColor=white)](https://github.com/hyperium/hyper)\n  [![Crates](https://img.shields.io/badge/-%F0%9F%93%A6%20Crates:%20hyper-264323)](https://crates.io/crates/hyper)\n  [![Docs](https://img.shields.io/badge/Docs--rs-353535?logo=docs.rs)](https://docs.rs/hyper/latest/hyper/)\n- 🦀 **reqwest**\n  [![GitHub](https://img.shields.io/badge/GitHub-2B3137?logo=github\u0026logoColor=white)](https://github.com/seanmonstar/reqwest)\n  [![Crates](https://img.shields.io/badge/-%F0%9F%93%A6%20Crates:%20reqwest-264323)](https://crates.io/crates/reqwest)\n  [![Docs](https://img.shields.io/badge/Docs--rs-353535?logo=docs.rs)](https://docs.rs/reqwest/latest/reqwest/)\n- 🦀 **serde**\n  [![GitHub](https://img.shields.io/badge/GitHub-2B3137?logo=github\u0026logoColor=white)](https://github.com/serde-rs/serde)\n  [![Crates](https://img.shields.io/badge/-%F0%9F%93%A6%20Crates:%20serde-264323)](https://crates.io/creates/serde)\n  [![Docs](https://img.shields.io/badge/Docs--rs-353535?logo=docs.rs)](https://docs.rs/serde/latest/serde/)\n\n## Getting started\n\nTBD;\n\n## Example usage\n\n```py\nprint(\"Hello, World!\")\n```\n\n## Do you even bench bro?\n\n[Benchmarks](./benchmarks.md)\n\n## Roadmap\n\n- Write (actual) asynchronous tests for `aiohttp` benchmarks.\n- Create asynchronous implementation for `alcedo.Client`.\n- Write asynchronous tests.\n- Write malformed-json test servers.\n- Create implementation where POST body can be attached.\n- Create implementation where DELETE requests can be made.\n- Write asynchronous tests for `httpx` and `requests`\n\n## Contributions\n\nTo contribute to the project, fork the repository and clone to your local device and development\ndependencies including four extra libraries not included in final builds as such:\n\n- **maturin** Build and publish crates with pyo3, rust-cpython and cffi bindings as well as rust binaries as python packages\n  [![GitHub](https://img.shields.io/badge/GitHub-2B3137?logo=github\u0026logoColor=white)](https://github.com/PyO3/maturin)\n  [![PyPI](https://img.shields.io/badge/-PyPI:%20maturin-3775A9?logo=pypi\u0026logoColor=white)](https://pypi.org/project/maturin)\n  [![Docs](https://img.shields.io/badge/user-guide-brightgreen?logo=readthedocs)](https://maturin.rs)\n- **mypy** Optional static typing for Python\n  [![GitHub](https://img.shields.io/badge/GitHub-2B3137?logo=github\u0026logoColor=white)](https://github.com/python/mypy)\n  [![PyPI](https://img.shields.io/badge/-PyPI:%20mypy-3775A9?logo=pypi\u0026logoColor=white)](https://pypi.org/project/mypy)\n  [![Docs](https://img.shields.io/readthedocs/mypy?logo=readthedocs)](https://mypy.readthedocs.io/en/stable/) \n- **pytest** The pytest framework makes it easy to write small tests, yet scales to support complex functional testing\n  [![GitHub](https://img.shields.io/badge/GitHub-2B3137?logo=github\u0026logoColor=white)](https://github.com/pytest-dev/pytest)\n  [![PyPI](https://img.shields.io/badge/-PyPI:%20pytest-3775A9?logo=pypi\u0026logoColor=white)](https://pypi.org/project/pytest)\n  [![Docs](https://img.shields.io/badge/Sphinx-0A507A?logo=sphinx)](https://docs.pytest.org/en/latest)\n- **ruff** An extremely fast Python linter and code formatter, written in Rust.\n  [![GitHub](https://img.shields.io/badge/GitHub-2B3137?logo=github\u0026logoColor=white)](https://github.com/astral-sh/ruff)\n  [![PyPI](https://img.shields.io/badge/-PyPI:%20ruff-3775A9?logo=pypi\u0026logoColor=white)](https://pypi.org/project/ruff)\n  [![Docs](https://img.shields.io/badge/MkDocs-526CFE?logo=materialformkdocs\u0026logoColor=white)](https://docs.astral.sh/ruff) \n\nUse the following commands to setup your local environment with development dependencies:\n\n```bash\npip install --user poetry\npoetry install --with dev\n```\n\n## Acknowledgements\n\n* [reqwest.py](https://github.com/thrzl/reqwest.py) by the amazing\n  [@thrzl](https://github.com/thrzl) giving the easiest primer to oxidizing python interface.\n* [hyperjson](https://github.com/mre/hyperjson) by the amazing\n  [@mre](https://github.com/mre) even though has been archived since Sep 14, 2023 but really makes\n  JSON deserialization from Rust -\u003e Python really approachable compared to alternatives.\n* [Kingfisher 2017042438](https://freesvg.org/kingfisher-2017042438) under\n  [CC0 1.0 Public Domain Protection](https://creativecommons.org/publicdomain/) whoever made this \n  is an artist du juor.\n\n## License\n\nThis project is licensed under the terms of the MIT license.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faekasitt%2Falcedo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faekasitt%2Falcedo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faekasitt%2Falcedo/lists"}