Skip to content

Commit a0b83f7

Browse files
Update README.md (#42)
1 parent c640dd3 commit a0b83f7

File tree

1 file changed

+44
-25
lines changed

1 file changed

+44
-25
lines changed

README.md

Lines changed: 44 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -6,31 +6,38 @@
66

77
---
88

9+
*The following is a design proposal and is not yet fully functional. The work is well underway, tho be aware that some parts of the codebase are still under development.*
10+
911
# Background
1012

1113
One of the core design principles informing `httpx` has been to aim to reduce the complexity of the stack.
12-
We've been trying to handle that incrementally, working from a requests-compatible API gradually introducing
13-
deprecations. This process creates a huge drag on being able to move the codebase towards where
14-
we'd actually like it to be, and introduces significant churn for our users.
1514

16-
This work presents a radically simplified implementation of `httpx`.
15+
We've been trying to handle that incrementally, working from a requests-compatible API gradually introducing deprecations. This process creates a huge drag on being able to move the codebase towards where we'd actually like it to be, and introduces significant churn for our users.
16+
17+
This work presents a significantly simplified implementation of `httpx`.
1718

1819
* Seriously, a [radically simplified implementation](https://github.com/encode/httpx-insiders/blob/main/src/httpx/_client.py). While still fulfiling the same set of functionality.<sup>*</sup>
1920
* A consistent & tightly typed set of HTTP components, with immutability throughout. Includes URLs, Query Parameters, Headers, Form & File interfaces, all of which are suitable for either client side or server side codebases.
20-
* A re-engineered [connection pool implementation](https://github.com/encode/httpx-insiders/blob/84e98c3236bbfca4fa1711b0023564afe7bb60b6/src/httpx/_pool.py#L24-L31), with tighter more [obvious concurrency handling](https://github.com/encode/httpx-insiders/blob/84e98c3236bbfca4fa1711b0023564afe7bb60b6/src/httpx/_pool.py#L113-L121).
21-
* The core networking component is simple enough to be directly included. The only dependencies here are `h11` and `truststore`.
21+
* A re-engineered [connection pool implementation](https://github.com/encode/httpx-insiders/blob/main/src/httpx/_pool.py), with tighter more obvious concurrency handling.
22+
* The core networking component is simple enough to be directly included. The only hard dependencies here are `h11` and `truststore`.
2223
* Seperately namespaced packages for `ahttpx` and `httpx`.
2324

24-
<sup>* There's more to be done in places, but fundamentally it's a much tighter sharper codebase.</sup>
25+
There is also preliminary work ongoing for httpx *for both client-side and server-side usage*.
2526

2627
---
2728

2829
# Overview
2930

30-
Installation...
31+
Installation from the insiders repo...
3132

3233
```shell
33-
pip install git+https://github.com/encode/httpx-insiders.git
34+
$ pip install git+https://github.com/encode/httpx-insiders.git
35+
```
36+
37+
Or the public installation...
38+
39+
```shell
40+
$ pip install https://staging.d2pg1230p7w6nv.amplifyapp.com/httpx-design-proposal.tar.gz
3441
```
3542

3643
Lets get to work...
@@ -49,39 +56,51 @@ Lets get to work...
4956
'<!doctype html>\n<html>\n<head>\n<title>Example Domain</title>...'
5057
```
5158

52-
---
53-
5459
# Documentation
5560

61+
The httpx 1.0 [design proposal](https://staging.d2pg1230p7w6nv.amplifyapp.com/) is now available.
62+
5663
* [Quickstart](docs/00-quickstart.md)
5764
* [Clients](docs/01-clients.md)
5865
* [HTTP Components](docs/02-components.md)
5966
* [HTTP Content](docs/03-content.md)
6067
* [Connections](docs/04-connections.md)
6168
* [Low Level Networking](docs/05-networking.md)
6269

70+
*Documentation & design work on `httpx` for server-side usage is in progress.*
71+
6372
---
6473

65-
# Packaging comparison
74+
# Dependencies
6675

6776
Package and dependencies...
6877

69-
* httpx-1.0-py3-none-any.whl (23 kB)
70-
* h11-0.14.0-py3-none-any.whl (58 kB)
71-
* truststore-0.10.0-py3-none-any.whl (18 kB)
78+
* httpx
79+
* h11
80+
* truststore
81+
82+
---
83+
84+
# Collaboration
85+
86+
The design repository for this work is currently private. We are looking towards a development model that encourages a calm focused working environment, and are currently taking a little time to work through expectations & boundaries for contributions to the codebase.
87+
88+
---
89+
90+
# Bringing this to life
91+
92+
In order to adequately address this space we need support & funding.
7293

73-
Previously...
94+
Ideally we'd be in a position financially where we're able to reasonably staff a minimal team of designers & developers. We will not be offering equity or sponsorship placements, but are instead seeking forward-looking businesses that recognise the value of the infrastructure investment on it's own merit.
7495

75-
* httpx-0.28.1-py3-none-any.whl (73 kB)
76-
* httpcore-1.0.7-py3-none-any.whl (78 kB)
77-
* h11-0.14.0-py3-none-any.whl (58 kB)
78-
* certifi-2024.8.30-py3-none-any.whl (167 kB)
79-
* anyio-4.7.0-py3-none-any.whl (93 kB)
80-
* sniffio-1.3.1-py3-none-any.whl (10 kB)
81-
* idna-3.10-py3-none-any.whl (70 kB)
96+
Our credentials to date include authorship of signifcant parts of the Python development ecosystem...
8297

83-
Clearly the packaging size will increase as we fill in the gaps of functionality, tho it's a good indicator.
98+
* Django REST framework.
99+
* MkDocs.
100+
* Uvicorn.
101+
* Starlette.
102+
* HTTPX.
84103

85104
---
86105

87-
<p align="center"><i>HTTPX is <a href="https://github.com/encode/httpx/blob/master/LICENSE.md">BSD licensed</a> code.<br/>Designed & crafted with care.</i><br/>&mdash; 🦋 &mdash;</p>
106+
<p align="center"><i>HTTPX is <a href="https://github.com/encode/httpx/blob/master/LICENSE.md">BSD licensed</a> code.<br/>Designed & crafted with care.</i><br/>&mdash; 🦋 &mdash;</p>

0 commit comments

Comments
 (0)