-4. In addition, the basic functions of [wreq] are similar to those of the standard **HTTP Client**, offering a wide range of features such as connection pooling, redirection policies, Cookie storage, and streaming transmission, which can meet various complex HTTP request requirements.
+- **Browser profiles**
+ Configure TLS handshakes, HTTP/2 settings, and headers with Chrome, Firefox,
+ Safari, Edge, Opera, or OkHttp profiles. Platform options cover Windows,
+ macOS, Linux, Android, and iOS.
-## Behavior
+ [Use emulation](../guide/emulation.md) · [Available profiles](../api/emulation.md)
-1. **HTTP/2 over TLS**
+- **HTTP essentials**
-Due to the complexity of **TLS** encryption and the widespread adoption of **HTTP/2**, browser fingerprints such as **JA3**, **JA4**, and **Akamai** cannot be reliably emulated using simple fingerprint strings. Instead of parsing and emulating these string-based fingerprints, [wreq] provides fine-grained control over **TLS** and **HTTP/2** extensions and settings for precise browser behavior emulation.
+ Send JSON, forms, and multipart bodies. Configure cookies, redirects,
+ authentication, proxies, timeouts, and connection pooling.
-2. **Device Emulation**
+ [Basic usage](../guide/basic.md)
-**TLS** and **HTTP/2** fingerprints are often identical across various browser models because these underlying protocols evolve slower than browser release cycles. **100+ browser device emulation profiles** are maintained in **[wreq]**.
+- **Streaming and buffers**
-???+ note "Available OS emulations"
+ Stream request and response bodies, or read a complete body. Rust-backed
+ binary outputs are read-only `memoryview` objects. Convert to `bytes` when
+ an API requires that type; the conversion copies the data.
-
+ [Advanced features](../guide/advanced.md)
- - :fontawesome-brands-windows: **Windows**
- - :fontawesome-brands-apple: **macOS**
- - :fontawesome-brands-linux: **Linux**
- - :fontawesome-brands-android: **Android**
- - :fontawesome-brands-apple: **iOS**
+- **Runtime configuration**
-
+ Clients share a runtime by default. Supply your own `Runtime` to choose
+ worker settings for a workload, including a single-worker runtime.
-???+ note "Available browser emulations"
+ [Runtime API](../api/runtime.md)
-
+- **Protocol settings**
- - :fontawesome-brands-chrome: **Chrome**
+ Change HTTP/1, HTTP/2 or TLS settings when the defaults don't fit your
+ service. You can also configure certificate verification and client certificates.
- ---
+ [HTTP/1](../api/http1.md) · [HTTP/2](../api/http2.md) · [TLS](../api/tls.md)
- `Chrome100` `Chrome101` `Chrome104` `Chrome105` `Chrome106` `Chrome107` `Chrome108` `Chrome109` `Chrome110` `Chrome114` `Chrome116` `Chrome117` `Chrome118` `Chrome119` `Chrome120` `Chrome123` `Chrome124` `Chrome126` `Chrome127` `Chrome128` `Chrome129` `Chrome130` `Chrome131` `Chrome132` `Chrome133` `Chrome134` `Chrome135` `Chrome136` `Chrome137` `Chrome138` `Chrome139` `Chrome140` `Chrome141` `Chrome142` `Chrome143` `Chrome144` `Chrome145` `Chrome146` `Chrome147` `Chrome148` `Chrome149` `Chrome150` `Chrome151` `Chrome152` `Chrome153` `Chrome154`
+- **WebSockets**
- - :fontawesome-brands-edge: **Edge**
+ Open a WebSocket connection through the client to send and receive text or
+ binary frames.
- ---
+ [WebSocket guide](../guide/websocket.md)
- `Edge101` `Edge122` `Edge127` `Edge131` `Edge134` `Edge135` `Edge136` `Edge137` `Edge138` `Edge139` `Edge140` `Edge141` `Edge142` `Edge143` `Edge144` `Edge145` `Edge146` `Edge147` `Edge148`
+
- - :fontawesome-brands-firefox: **Firefox**
+## Measure your workload
- ---
+Payload size, concurrency and protocol affect performance. So do runtime
+settings and the way you read responses. Our [HTTPS benchmarks](../benchmark.md)
+include those settings, repeated measurements and raw data, with the source
+commit tested. Use them to reproduce a workload and check how close it is to
+your application. Performance rankings can change with the workload.
- `Firefox109` `Firefox117` `Firefox128` `Firefox133` `Firefox135` `FirefoxPrivate135` `FirefoxAndroid135` `Firefox136` `FirefoxPrivate136` `Firefox139` `Firefox142` `Firefox143` `Firefox144` `Firefox145` `Firefox146` `Firefox147` `Firefox148` `Firefox149` `Firefox150` `Firefox151` `Firefox152`
+## Next steps
- - :fontawesome-brands-safari: **Safari**
-
- ---
-
- `SafariIos17_2` `SafariIos17_4_1` `SafariIos16_5` `Safari15_3` `Safari15_5` `Safari15_6_1` `Safari16` `Safari16_5` `Safari17_0` `Safari17_2_1` `Safari17_4_1` `Safari17_5` `Safari17_6` `Safari18` `SafariIPad18` `Safari18_2` `Safari18_3` `Safari18_3_1` `SafariIos18_1_1` `Safari18_5` `Safari26` `Safari26_1` `Safari26_2` `Safari26_3` `Safari26_4` `SafariIos26` `SafariIos26_2` `SafariIPad26` `SafariIpad26_2`
-
- - :fontawesome-brands-opera: **Opera**
-
- ---
-
- `Opera116` `Opera117` `Opera118` `Opera119` `Opera120` `Opera121` `Opera122` `Opera123` `Opera124` `Opera125` `Opera126` `Opera127` `Opera128` `Opera129` `Opera130` `Opera131`
-
- - :material-web: **OkHttp**
-
- ---
-
- `OkHttp3_9` `OkHttp3_11` `OkHttp3_13` `OkHttp3_14` `OkHttp4_9` `OkHttp4_10` `OkHttp4_12` `OkHttp5`
-
-
-
-
-## License
-
-Licensed under either of Apache License, Version 2.0 ([LICENSE](./LICENSE) or http://www.apache.org/licenses/LICENSE-2.0).
-
-## Contribution
-
-Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the [Apache-2.0](./LICENSE) license, shall be licensed as above, without any additional terms or conditions.
-
-
-[wreq]: https://github.com/0x676e67/wreq-python
-[requests]: https://github.com/psf/requests
-[httpx]: https://github.com/encode/httpx
-[Buffer]: https://docs.python.org/3/c-api/buffer.html
-[GIL]: https://docs.python.org/3/c-api/init.html#thread-and-gil-management
+[Install wreq](installation.md), follow the [quick start](quickstart.md), or
+browse the [API reference](../api/wreq.md). The project is licensed under
+[Apache-2.0](https://github.com/0x676e67/wreq-python/blob/main/LICENSE).
diff --git a/docs/source/getting-started/quickstart.md b/docs/source/getting-started/quickstart.md
index 55849262..cf5960d5 100644
--- a/docs/source/getting-started/quickstart.md
+++ b/docs/source/getting-started/quickstart.md
@@ -208,7 +208,7 @@ response = await client.get("https://tls.peet.ws/api/all")
print(await response.text())
```
-Available presets are listed in the [Emulation reference](../getting-started/introduction.md#behavior).
+Available profiles are listed in the [Emulation API](../api/emulation.md).
---
diff --git a/docs/source/index.md b/docs/source/index.md
index 330e2b09..9ef8642a 100644
--- a/docs/source/index.md
+++ b/docs/source/index.md
@@ -1,2 +1,121 @@
-