diff --git a/README.md b/README.md index b79481d..22038ab 100644 --- a/README.md +++ b/README.md @@ -6,31 +6,38 @@ --- +*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.* + # Background One of the core design principles informing `httpx` has been to aim to reduce the complexity of the stack. -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. -This work presents a radically simplified implementation of `httpx`. +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. + +This work presents a significantly simplified implementation of `httpx`. * 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.* * 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. -* 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). -* The core networking component is simple enough to be directly included. The only dependencies here are `h11` and `truststore`. +* A re-engineered [connection pool implementation](https://github.com/encode/httpx-insiders/blob/main/src/httpx/_pool.py), with tighter more obvious concurrency handling. +* The core networking component is simple enough to be directly included. The only hard dependencies here are `h11` and `truststore`. * Seperately namespaced packages for `ahttpx` and `httpx`. -* There's more to be done in places, but fundamentally it's a much tighter sharper codebase. +There is also preliminary work ongoing for httpx *for both client-side and server-side usage*. --- # Overview -Installation... +Installation from the insiders repo... ```shell -pip install git+https://github.com/encode/httpx-insiders.git +$ pip install git+https://github.com/encode/httpx-insiders.git +``` + +Or the public installation... + +```shell +$ pip install https://staging.d2pg1230p7w6nv.amplifyapp.com/httpx-design-proposal.tar.gz ``` Lets get to work... @@ -49,10 +56,10 @@ Lets get to work... '\n\n
\nHTTPX is BSD licensed code.
Designed & crafted with care.
— 🦋 —
HTTPX is BSD licensed code.
Designed & crafted with care.
— 🦋 —