# Alcedo
[![Package vesion](https://img.shields.io/pypi/v/alcedo)](https://pypi.org/project/alcedo)
[![Format](https://img.shields.io/pypi/format/alcedo)](https://pypi.org/project/alcedo)
[![Python version](https://img.shields.io/pypi/pyversions/alcedo)](https://pypi.org/project/alcedo)
[![License](https://img.shields.io/pypi/l/alcedo)](https://pypi.org/project/alcedo)
[![Code size](https://img.shields.io/github/languages/code-size/aekasitt/alcedo)](.)
[![Top](https://img.shields.io/github/languages/top/aekasitt/alcedo)](.)
[![Languages](https://img.shields.io/github/languages/count/aekasitt/alcedo)](.)
[![Repository size](https://img.shields.io/github/repo-size/aekasitt/alcedo)](.)
[![Last commit](https://img.shields.io/github/last-commit/aekasitt/alcedo/master)](.)
![Alcedo banner](https://github.com/aekasitt/alcedo/blob/master/static/alcedo-banner.svg)
This project aims to be the feature-incomplete version of [httpx](https://github.com/encode/httpx)
and written in Rust.
Will this be a drop-in replacement for any of the leading packages like...
- 🐍 _aiohttp_ ?
[![GitHub](https://img.shields.io/badge/GitHub-2B3137?logo=github&logoColor=white)](https://github.com/aio-libs/aiohttp)
[![PyPI](https://img.shields.io/badge/-PyPI:%20aiohttp-3775A9?logo=pypi&logoColor=white)](https://pypi.org/project/aiohttp)
[![Docs](https://img.shields.io/readthedocs/aiohttp?logo=readthedocs)](https://docs.aiohttp.org/en/stable/)
- 🐍 _httpx_ ?
[![GitHub](https://img.shields.io/badge/GitHub-2B3137?logo=github&logoColor=white)](https://github.com/encode/httpx)
[![PyPI](https://img.shields.io/badge/-PyPI:%20httpx-3775A9?logo=pypi&logoColor=white)](https://pypi.org/project/httpx)
[![Docs](https://img.shields.io/badge/MkDocs-526CFE?logo=materialformkdocs&logoColor=white)](https://www.python-httpx.org/)
- 🐍 _requests_ ?
[![GitHub](https://img.shields.io/badge/GitHub-2B3137?logo=github&logoColor=white)](https://github.com/psf/requests)
[![PyPI](https://img.shields.io/badge/-PyPI:%20requests-3775A9?logo=pypi&logoColor=white)](https://pypi.org/project/requests)
[![Docs](https://img.shields.io/readthedocs/requests?logo=readthedocs)](https://requests.readthedocs.io/en/latest/)
### Probably not.
But it aims to bring to Python the speed and feature-richness of Rust packages
like...
- 🦀 **hyper**
[![GitHub](https://img.shields.io/badge/GitHub-2B3137?logo=github&logoColor=white)](https://github.com/hyperium/hyper)
[![Crates](https://img.shields.io/badge/-%F0%9F%93%A6%20Crates:%20hyper-264323)](https://crates.io/crates/hyper)
[![Docs](https://img.shields.io/badge/Docs--rs-353535?logo=docs.rs)](https://docs.rs/hyper/latest/hyper/)
- 🦀 **reqwest**
[![GitHub](https://img.shields.io/badge/GitHub-2B3137?logo=github&logoColor=white)](https://github.com/seanmonstar/reqwest)
[![Crates](https://img.shields.io/badge/-%F0%9F%93%A6%20Crates:%20reqwest-264323)](https://crates.io/crates/reqwest)
[![Docs](https://img.shields.io/badge/Docs--rs-353535?logo=docs.rs)](https://docs.rs/reqwest/latest/reqwest/)
- 🦀 **serde**
[![GitHub](https://img.shields.io/badge/GitHub-2B3137?logo=github&logoColor=white)](https://github.com/serde-rs/serde)
[![Crates](https://img.shields.io/badge/-%F0%9F%93%A6%20Crates:%20serde-264323)](https://crates.io/creates/serde)
[![Docs](https://img.shields.io/badge/Docs--rs-353535?logo=docs.rs)](https://docs.rs/serde/latest/serde/)
## Getting started
TBD;
## Example usage
```py
print("Hello, World!")
```
## Do you even bench bro?
[Benchmarks](./benchmarks.md)
## Roadmap
- Write (actual) asynchronous tests for `aiohttp` benchmarks.
- Create asynchronous implementation for `alcedo.Client`.
- Write asynchronous tests.
- Write malformed-json test servers.
- Create implementation where POST body can be attached.
- Create implementation where DELETE requests can be made.
- Write asynchronous tests for `httpx` and `requests`
## Contributions
To contribute to the project, fork the repository and clone to your local device and development
dependencies including four extra libraries not included in final builds as such:
- **maturin** Build and publish crates with pyo3, rust-cpython and cffi bindings as well as rust binaries as python packages
[![GitHub](https://img.shields.io/badge/GitHub-2B3137?logo=github&logoColor=white)](https://github.com/PyO3/maturin)
[![PyPI](https://img.shields.io/badge/-PyPI:%20maturin-3775A9?logo=pypi&logoColor=white)](https://pypi.org/project/maturin)
[![Docs](https://img.shields.io/badge/user-guide-brightgreen?logo=readthedocs)](https://maturin.rs)
- **mypy** Optional static typing for Python
[![GitHub](https://img.shields.io/badge/GitHub-2B3137?logo=github&logoColor=white)](https://github.com/python/mypy)
[![PyPI](https://img.shields.io/badge/-PyPI:%20mypy-3775A9?logo=pypi&logoColor=white)](https://pypi.org/project/mypy)
[![Docs](https://img.shields.io/readthedocs/mypy?logo=readthedocs)](https://mypy.readthedocs.io/en/stable/)
- **pytest** The pytest framework makes it easy to write small tests, yet scales to support complex functional testing
[![GitHub](https://img.shields.io/badge/GitHub-2B3137?logo=github&logoColor=white)](https://github.com/pytest-dev/pytest)
[![PyPI](https://img.shields.io/badge/-PyPI:%20pytest-3775A9?logo=pypi&logoColor=white)](https://pypi.org/project/pytest)
[![Docs](https://img.shields.io/badge/Sphinx-0A507A?logo=sphinx)](https://docs.pytest.org/en/latest)
- **ruff** An extremely fast Python linter and code formatter, written in Rust.
[![GitHub](https://img.shields.io/badge/GitHub-2B3137?logo=github&logoColor=white)](https://github.com/astral-sh/ruff)
[![PyPI](https://img.shields.io/badge/-PyPI:%20ruff-3775A9?logo=pypi&logoColor=white)](https://pypi.org/project/ruff)
[![Docs](https://img.shields.io/badge/MkDocs-526CFE?logo=materialformkdocs&logoColor=white)](https://docs.astral.sh/ruff)
Use the following commands to setup your local environment with development dependencies:
```bash
pip install --user poetry
poetry install --with dev
```
## Acknowledgements
* [reqwest.py](https://github.com/thrzl/reqwest.py) by the amazing
[@thrzl](https://github.com/thrzl) giving the easiest primer to oxidizing python interface.
* [hyperjson](https://github.com/mre/hyperjson) by the amazing
[@mre](https://github.com/mre) even though has been archived since Sep 14, 2023 but really makes
JSON deserialization from Rust -> Python really approachable compared to alternatives.
* [Kingfisher 2017042438](https://freesvg.org/kingfisher-2017042438) under
[CC0 1.0 Public Domain Protection](https://creativecommons.org/publicdomain/) whoever made this
is an artist du juor.
## License
This project is licensed under the terms of the MIT license.
Raw data
{
"_id": null,
"home_page": null,
"name": "alcedo",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": null,
"keywords": "client, http, https, httpx, request, requests, reqwest",
"author": null,
"author_email": null,
"download_url": "https://files.pythonhosted.org/packages/52/d6/1989c300299c1e7ffc25943cefc4d0cd7f259ae7a1e4134aedbb5fd46781/alcedo-0.1.7.tar.gz",
"platform": null,
"description": "# 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- \ud83d\udc0d _aiohttp_ ?\n [![GitHub](https://img.shields.io/badge/GitHub-2B3137?logo=github&logoColor=white)](https://github.com/aio-libs/aiohttp)\n [![PyPI](https://img.shields.io/badge/-PyPI:%20aiohttp-3775A9?logo=pypi&logoColor=white)](https://pypi.org/project/aiohttp)\n [![Docs](https://img.shields.io/readthedocs/aiohttp?logo=readthedocs)](https://docs.aiohttp.org/en/stable/)\n- \ud83d\udc0d _httpx_ ?\n [![GitHub](https://img.shields.io/badge/GitHub-2B3137?logo=github&logoColor=white)](https://github.com/encode/httpx)\n [![PyPI](https://img.shields.io/badge/-PyPI:%20httpx-3775A9?logo=pypi&logoColor=white)](https://pypi.org/project/httpx)\n [![Docs](https://img.shields.io/badge/MkDocs-526CFE?logo=materialformkdocs&logoColor=white)](https://www.python-httpx.org/)\n- \ud83d\udc0d _requests_ ?\n [![GitHub](https://img.shields.io/badge/GitHub-2B3137?logo=github&logoColor=white)](https://github.com/psf/requests)\n [![PyPI](https://img.shields.io/badge/-PyPI:%20requests-3775A9?logo=pypi&logoColor=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- \ud83e\udd80 **hyper**\n [![GitHub](https://img.shields.io/badge/GitHub-2B3137?logo=github&logoColor=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- \ud83e\udd80 **reqwest**\n [![GitHub](https://img.shields.io/badge/GitHub-2B3137?logo=github&logoColor=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- \ud83e\udd80 **serde**\n [![GitHub](https://img.shields.io/badge/GitHub-2B3137?logo=github&logoColor=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&logoColor=white)](https://github.com/PyO3/maturin)\n [![PyPI](https://img.shields.io/badge/-PyPI:%20maturin-3775A9?logo=pypi&logoColor=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&logoColor=white)](https://github.com/python/mypy)\n [![PyPI](https://img.shields.io/badge/-PyPI:%20mypy-3775A9?logo=pypi&logoColor=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&logoColor=white)](https://github.com/pytest-dev/pytest)\n [![PyPI](https://img.shields.io/badge/-PyPI:%20pytest-3775A9?logo=pypi&logoColor=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&logoColor=white)](https://github.com/astral-sh/ruff)\n [![PyPI](https://img.shields.io/badge/-PyPI:%20ruff-3775A9?logo=pypi&logoColor=white)](https://pypi.org/project/ruff)\n [![Docs](https://img.shields.io/badge/MkDocs-526CFE?logo=materialformkdocs&logoColor=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 -> 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\n",
"bugtrack_url": null,
"license": null,
"summary": null,
"version": "0.1.7",
"project_urls": null,
"split_keywords": [
"client",
" http",
" https",
" httpx",
" request",
" requests",
" reqwest"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "67e967952bf8923fcde3a1d1d2461d6e5d4116cc0f2a541eef32e9c8dc99917a",
"md5": "7adabd4be6987a177a25aaed188e1f15",
"sha256": "9c1f0cf9aa1455979bb6bb5618422e3fc2eccd3c0431905df0a4c8a93bb137a5"
},
"downloads": -1,
"filename": "alcedo-0.1.7-cp312-cp312-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "7adabd4be6987a177a25aaed188e1f15",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.8",
"size": 1379472,
"upload_time": "2024-04-08T10:16:21",
"upload_time_iso_8601": "2024-04-08T10:16:21.857662Z",
"url": "https://files.pythonhosted.org/packages/67/e9/67952bf8923fcde3a1d1d2461d6e5d4116cc0f2a541eef32e9c8dc99917a/alcedo-0.1.7-cp312-cp312-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "52d61989c300299c1e7ffc25943cefc4d0cd7f259ae7a1e4134aedbb5fd46781",
"md5": "d1194b827254c84916ddb0ffaad7e1f6",
"sha256": "a2d674f68c53b25ef092053597bab955148447f58c3bd947dd86aef703f4ca3c"
},
"downloads": -1,
"filename": "alcedo-0.1.7.tar.gz",
"has_sig": false,
"md5_digest": "d1194b827254c84916ddb0ffaad7e1f6",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 864223,
"upload_time": "2024-04-08T10:16:26",
"upload_time_iso_8601": "2024-04-08T10:16:26.389720Z",
"url": "https://files.pythonhosted.org/packages/52/d6/1989c300299c1e7ffc25943cefc4d0cd7f259ae7a1e4134aedbb5fd46781/alcedo-0.1.7.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-04-08 10:16:26",
"github": false,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"lcname": "alcedo"
}