# 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">— ⭐️ —</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\">— \u2b50\ufe0f —</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"
}