You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+44-25Lines changed: 44 additions & 25 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -6,31 +6,38 @@
6
6
7
7
---
8
8
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
+
9
11
# Background
10
12
11
13
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.
15
14
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`.
17
18
18
19
* 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>
19
20
* 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`.
22
23
* Seperately namespaced packages for `ahttpx` and `httpx`.
23
24
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*.
The httpx 1.0 [design proposal](https://staging.d2pg1230p7w6nv.amplifyapp.com/) is now available.
62
+
56
63
*[Quickstart](docs/00-quickstart.md)
57
64
*[Clients](docs/01-clients.md)
58
65
*[HTTP Components](docs/02-components.md)
59
66
*[HTTP Content](docs/03-content.md)
60
67
*[Connections](docs/04-connections.md)
61
68
*[Low Level Networking](docs/05-networking.md)
62
69
70
+
*Documentation & design work on `httpx` for server-side usage is in progress.*
71
+
63
72
---
64
73
65
-
# Packaging comparison
74
+
# Dependencies
66
75
67
76
Package and dependencies...
68
77
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.
72
93
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.
74
95
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...
82
97
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.
84
103
85
104
---
86
105
87
-
<palign="center"><i>HTTPX is <ahref="https://github.com/encode/httpx/blob/master/LICENSE.md">BSD licensed</a> code.<br/>Designed & crafted with care.</i><br/>— 🦋 —</p>
106
+
<palign="center"><i>HTTPX is <ahref="https://github.com/encode/httpx/blob/master/LICENSE.md">BSD licensed</a> code.<br/>Designed & crafted with care.</i><br/>— 🦋 —</p>
0 commit comments