gufo-http

Gufo HTTP is an accelerated Python HTTP client library

https://github.com/gufolabs/gufo_http

Science Score: 44.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (12.8%) to scientific vocabulary

Keywords

async gufo http networking pypy python rust typed
Last synced: 4 months ago · JSON representation ·

Repository

Gufo HTTP is an accelerated Python HTTP client library

Basic Info
  • Host: GitHub
  • Owner: gufolabs
  • License: other
  • Language: Python
  • Default Branch: master
  • Homepage:
  • Size: 1.71 MB
Statistics
  • Stars: 3
  • Watchers: 1
  • Forks: 0
  • Open Issues: 1
  • Releases: 7
Topics
async gufo http networking pypy python rust typed
Created almost 2 years ago · Last pushed 10 months ago
Metadata Files
Readme Changelog Contributing Funding License Code of conduct Citation Codeowners Security

README.md

Gufo HTTP

The accelerated Python HTTP client library.

PyPi version Python Versions License Build Sponsors Ruff


Documentation: https://docs.gufolabs.com/gufo_http/

Source Code: https://github.com/gufolabs/gufo_http/


Gufo HTTP is a high-performance Python HTTP client library that handles both asynchronous and synchronous modes. It wraps famous Reqwest HTTP client, written in Rust language with PyO3 wrapper. Our task is to reach maximal performance while maintaining clean and easy-to use API.

The getting of single URL is a simple task:

python async with HttpClient() as client: resp = client.get("https://docs.gufolabs.com/") assert resp.status == 200 data = resp.content

The HttpClient is highly customizable, for example, to set request headers:

python async with HttpClient(headers={"X-My-Header": b"test"}) as client: resp = client.get("https://docs.gufolabs.com/") ...

The response headers processing as easy as working with dicts:

python async with HttpClient(headers={"X-My-Header": b"test"}) as client: resp = client.get("https://docs.gufolabs.com/") if resp.headers["Content-Type"] == "text/html": ...

Gufo HTTP supports common authentication methods out-of-box:

python async with HttpClient(auth=BasicAuth("scott", "tiger")) as client: resp = client.get("https://protected.example.com/") ...

Features

  • Clean async and blocking API.
  • High performance (see Performance section for details).
  • Built with security in mind.
  • Customizabile redirect policy.
  • TLS support.
  • Basic and bearer authorization schemes.
  • HTTP/HTTPS/SOCKS5 Proxy support.
  • Full Python typing support.
  • Editor completion.
  • Well-tested, battle-proven code.

Performance

Gufo HTTP is proved to be one of the fastest Python HTTP client available in the various scenarios. For example:

Single HTTP/1.1 requests scenario

Single requests Lower is better

100 Linear HTTP/1.1 requests scenario

Linear requests Lower is better

100 Parallel HTTP/1.1 requests scenario

Parallel requests Lower is better

Single HTTPS requests scenario

Single requests Lower is better

100 Linear HTTPS requests scenario

Linear requests Lower is better

100 Parallel HTTPS requests scenario

Parallel requests Lower is better

Refer to benchmarks for details.

On Gufo Stack

This product is a part of Gufo Stack - the collaborative effort led by Gufo Labs. Our goal is to create a robust and flexible set of tools to create network management software and automate routine administration tasks.

To do this, we extract the key technologies that have proven themselves in the NOC and bring them as separate packages. Then we work on API, performance tuning, documentation, and testing. The NOC uses the final result as the external dependencies.

Gufo Stack makes the NOC better, and this is our primary task. But other products can benefit from Gufo Stack too. So we believe that our effort will make the other network management products better.

Owner

  • Name: Gufo Labs
  • Login: gufolabs
  • Kind: organization
  • Location: Italy

Gufo Labs is a private consulting company based in Milan, Italy.

Citation (CITATION.cff)

cff-version: 1.2.0
title: Gufo HTTP
message: >-
  If you use this software as part of a publication and wish to cite
  it, please use the metadata from this file.
type: software
authors:
  - name: Gufo Labs
    website: https://gufolabs.com/
  - name: Project's Contributors
    website: https://github.com/gufolabs/gufo_http
license: BSD-3-Clause

GitHub Events

Total
  • Create event: 1
  • Release event: 1
  • Issues event: 1
  • Push event: 20
Last Year
  • Create event: 1
  • Release event: 1
  • Issues event: 1
  • Push event: 20

Issues and Pull Requests

Last synced: 4 months ago

All Time
  • Total issues: 1
  • Total pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Total issue authors: 1
  • Total pull request authors: 0
  • Average comments per issue: 1.0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 1
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 1
  • Pull request authors: 0
  • Average comments per issue: 1.0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • dimacv (1)
Pull Request Authors
Top Labels
Issue Labels
Pull Request Labels

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 1,668 last-month
  • Total dependent packages: 0
  • Total dependent repositories: 0
  • Total versions: 7
  • Total maintainers: 1
pypi.org: gufo-http
  • Versions: 7
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 1,668 Last month
Rankings
Dependent packages count: 9.8%
Average: 37.1%
Dependent repos count: 64.4%
Maintainers (1)
Last synced: 4 months ago

Dependencies

.github/workflows/build-docs.yml actions
  • actions/cache v3 composite
  • actions/checkout v3 composite
.github/workflows/package.yml actions
  • actions/checkout v3 composite
  • actions/download-artifact v3 composite
  • actions/setup-python v4 composite
  • actions/upload-artifact v3 composite
  • actions/upload-artifact v2 composite
  • docker/setup-qemu-action v2 composite
  • pypa/gh-action-pypi-publish release/v1 composite
.github/workflows/tests.yml actions
  • actions/cache v3 composite
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
Cargo.toml cargo
  • criterion 0.4 development
  • iai 0.1 development
  • bytes 1.5
  • pyo3 0.20
  • pyo3-asyncio 0.20
  • reqwest 0.11
  • tokio 1.36
Dockerfile docker
  • python 3.12-slim-bullseye build
.requirements/build.txt pypi
  • setuptools-rust ==1.5.2
.requirements/docs.txt pypi
  • mkdocs-gen-files ==0.5.0
  • mkdocs-literate-nav ==0.6.0
  • mkdocs-material ==9.4.8
  • mkdocs-section-index ==0.3.8
  • mkdocstrings ==0.22.0
.requirements/ipython.txt pypi
  • ipython ==8.0.1
.requirements/lint.txt pypi
  • black ==23.1.0
  • mypy ==1.5.1
  • ruff ==0.1.5
  • types-PyYAML ==6.0.12.3
.requirements/test.txt pypi
  • PyYAML >=6.0 test
  • coverage ==7.3.2 test
  • pytest ==7.4.3 test
pyproject.toml pypi
.requirements/bench.txt pypi
  • aiohttp ==3.9.3
  • aiosonic ==0.18.0
  • httpx ==0.27
  • matplotlib ==3.8.3
  • niquests ==3.5.2
  • pycurl ==7.45.3
  • requests ==2.31.0