http3


Namehttp3 JSON
Version 0.6.7 PyPI version JSON
download
home_pagehttps://github.com/encode/http3
SummaryThe next generation HTTP client.
upload_time2019-07-08 14:58:54
maintainer
docs_urlNone
authorTom Christie
requires_python>=3.6
licenseBSD
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # HTTP3

<a href="https://travis-ci.org/encode/http3">
    <img src="https://travis-ci.org/encode/http3.svg?branch=master" alt="Build Status">
</a>
<a href="https://codecov.io/gh/encode/http3">
    <img src="https://codecov.io/gh/encode/http3/branch/master/graph/badge.svg" alt="Coverage">
</a>
<a href="https://pypi.org/project/http3/">
    <img src="https://badge.fury.io/py/http3.svg" alt="Package version">
</a>

HTTP3 is a next-generation HTTP client for Python 3.

**Note**: *This project should be considered as an "alpha" release. It is substantially API complete, but there are still some areas that need more work.*

---

Let's get started...

```python
>>> import http3
>>> r = http3.get('https://www.example.org/')
>>> r
<Response [200 OK]>
>>> r.status_code
200
>>> r.protocol
'HTTP/2'
>>> r.headers['content-type']
'text/html; charset=UTF-8'
>>> r.text
'<!doctype html>\n<html>\n<head>\n<title>Example Domain</title>...'
```

## Features

HTTP3 builds on the well-established usability of `requests`, and gives you:

* A requests-compatible API.
* HTTP/2 and HTTP/1.1 support.
* Support for [issuing HTTP requests in parallel](https://www.encode.io/http3/parallel/). *(Coming soon)*
* Standard synchronous interface, but [with `async`/`await` support if you need it](https://www.encode.io/http3/async/).
* Ability to [make requests directly to WSGI or ASGI applications](https://www.encode.io/http3/advanced/#calling-into-python-web-apps).
* Strict timeouts everywhere.
* Fully type annotated.
* 100% test coverage.

Plus all the standard features of `requests`...

* International Domains and URLs
* Keep-Alive & Connection Pooling
* Sessions with Cookie Persistence
* Browser-style SSL Verification
* Basic/Digest Authentication *(Digest is still TODO)*
* Elegant Key/Value Cookies
* Automatic Decompression
* Automatic Content Decoding
* Unicode Response Bodies
* Multipart File Uploads
* HTTP(S) Proxy Support *(TODO)*
* Connection Timeouts
* Streaming Downloads
* .netrc Support *(TODO)*
* Chunked Requests

## Installation

Install with pip:

```shell
$ pip install http3
```

HTTP3 requires Python 3.6+

## Documentation

Project documentation is available at [www.encode.io/http3/](https://www.encode.io/http3/).

For a run-through of all the basics, head over to the [QuickStart](https://www.encode.io/http3/quickstart/).

For more advanced topics, see the [Advanced Usage](https://www.encode.io/http3/advanced/) section, or
the specific topics on making [Parallel Requests](https://www.encode.io/http3/parallel/) or using the
[Async Client](https://www.encode.io/http3/async/).

The [Developer Interface](https://www.encode.io/http3/api/) provides a comprehensive API reference.

## Dependencies

The HTTP3 project relies on these excellent libraries:

* `h2` - HTTP/2 support.
* `h11` - HTTP/1.1 support.
* `certifi` - SSL certificates.
* `chardet` - Fallback auto-detection for response encoding.
* `idna` - Internationalized domain name support.
* `rfc3986` - URL parsing & normalization.
* `brotlipy` - Decoding for "brotli" compressed responses. *(Optional)*

A huge amount of credit is due to `requests` for the API layout that
much of this work follows, as well as to `urllib3` for plenty of design
inspiration around the lower level networking details.

<p align="center">&mdash; ⭐️ &mdash;</p>
<p align="center"><i>HTTP3 is <a href="https://github.com/encode/http3/blob/master/LICENSE.md">BSD licensed</a> code. Designed & built in Brighton, England.</i></p>
            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/encode/http3",
    "name": "http3",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.6",
    "maintainer_email": "",
    "keywords": "",
    "author": "Tom Christie",
    "author_email": "tom@tomchristie.com",
    "download_url": "https://files.pythonhosted.org/packages/ae/47/7d25c71f5dab11f7c2a70766baf76b8f079706f66d14d047cca81d167c48/http3-0.6.7.tar.gz",
    "platform": "",
    "description": "# HTTP3\n\n<a href=\"https://travis-ci.org/encode/http3\">\n    <img src=\"https://travis-ci.org/encode/http3.svg?branch=master\" alt=\"Build Status\">\n</a>\n<a href=\"https://codecov.io/gh/encode/http3\">\n    <img src=\"https://codecov.io/gh/encode/http3/branch/master/graph/badge.svg\" alt=\"Coverage\">\n</a>\n<a href=\"https://pypi.org/project/http3/\">\n    <img src=\"https://badge.fury.io/py/http3.svg\" alt=\"Package version\">\n</a>\n\nHTTP3 is a next-generation HTTP client for Python 3.\n\n**Note**: *This project should be considered as an \"alpha\" release. It is substantially API complete, but there are still some areas that need more work.*\n\n---\n\nLet's get started...\n\n```python\n>>> import http3\n>>> r = http3.get('https://www.example.org/')\n>>> r\n<Response [200 OK]>\n>>> r.status_code\n200\n>>> r.protocol\n'HTTP/2'\n>>> r.headers['content-type']\n'text/html; charset=UTF-8'\n>>> r.text\n'<!doctype html>\\n<html>\\n<head>\\n<title>Example Domain</title>...'\n```\n\n## Features\n\nHTTP3 builds on the well-established usability of `requests`, and gives you:\n\n* A requests-compatible API.\n* HTTP/2 and HTTP/1.1 support.\n* Support for [issuing HTTP requests in parallel](https://www.encode.io/http3/parallel/). *(Coming soon)*\n* Standard synchronous interface, but [with `async`/`await` support if you need it](https://www.encode.io/http3/async/).\n* Ability to [make requests directly to WSGI or ASGI applications](https://www.encode.io/http3/advanced/#calling-into-python-web-apps).\n* Strict timeouts everywhere.\n* Fully type annotated.\n* 100% test coverage.\n\nPlus all the standard features of `requests`...\n\n* International Domains and URLs\n* Keep-Alive & Connection Pooling\n* Sessions with Cookie Persistence\n* Browser-style SSL Verification\n* Basic/Digest Authentication *(Digest is still TODO)*\n* Elegant Key/Value Cookies\n* Automatic Decompression\n* Automatic Content Decoding\n* Unicode Response Bodies\n* Multipart File Uploads\n* HTTP(S) Proxy Support *(TODO)*\n* Connection Timeouts\n* Streaming Downloads\n* .netrc Support *(TODO)*\n* Chunked Requests\n\n## Installation\n\nInstall with pip:\n\n```shell\n$ pip install http3\n```\n\nHTTP3 requires Python 3.6+\n\n## Documentation\n\nProject documentation is available at [www.encode.io/http3/](https://www.encode.io/http3/).\n\nFor a run-through of all the basics, head over to the [QuickStart](https://www.encode.io/http3/quickstart/).\n\nFor more advanced topics, see the [Advanced Usage](https://www.encode.io/http3/advanced/) section, or\nthe specific topics on making [Parallel Requests](https://www.encode.io/http3/parallel/) or using the\n[Async Client](https://www.encode.io/http3/async/).\n\nThe [Developer Interface](https://www.encode.io/http3/api/) provides a comprehensive API reference.\n\n## Dependencies\n\nThe HTTP3 project relies on these excellent libraries:\n\n* `h2` - HTTP/2 support.\n* `h11` - HTTP/1.1 support.\n* `certifi` - SSL certificates.\n* `chardet` - Fallback auto-detection for response encoding.\n* `idna` - Internationalized domain name support.\n* `rfc3986` - URL parsing & normalization.\n* `brotlipy` - Decoding for \"brotli\" compressed responses. *(Optional)*\n\nA huge amount of credit is due to `requests` for the API layout that\nmuch of this work follows, as well as to `urllib3` for plenty of design\ninspiration around the lower level networking details.\n\n<p align=\"center\">&mdash; \u2b50\ufe0f &mdash;</p>\n<p align=\"center\"><i>HTTP3 is <a href=\"https://github.com/encode/http3/blob/master/LICENSE.md\">BSD licensed</a> code. Designed & built in Brighton, England.</i></p>",
    "bugtrack_url": null,
    "license": "BSD",
    "summary": "The next generation HTTP client.",
    "version": "0.6.7",
    "project_urls": {
        "Homepage": "https://github.com/encode/http3"
    },
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "ae477d25c71f5dab11f7c2a70766baf76b8f079706f66d14d047cca81d167c48",
                "md5": "a6e6378e93fa98fd2622859dbd0f6b5a",
                "sha256": "dbf9beedc58d8bbcf6e681a9d63d9e7cd8da346e1ffb512e02e9bf097d91f0bf"
            },
            "downloads": -1,
            "filename": "http3-0.6.7.tar.gz",
            "has_sig": false,
            "md5_digest": "a6e6378e93fa98fd2622859dbd0f6b5a",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.6",
            "size": 35119,
            "upload_time": "2019-07-08T14:58:54",
            "upload_time_iso_8601": "2019-07-08T14:58:54.285228Z",
            "url": "https://files.pythonhosted.org/packages/ae/47/7d25c71f5dab11f7c2a70766baf76b8f079706f66d14d047cca81d167c48/http3-0.6.7.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2019-07-08 14:58:54",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "encode",
    "github_project": "http3",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [],
    "lcname": "http3"
}
        
Elapsed time: 0.22189s