Skip to content

Commit dba8b4e

Browse files
committed
Update ReadME
1 parent 33a852c commit dba8b4e

3 files changed

Lines changed: 88 additions & 70 deletions

File tree

README.md

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
<div align="center">
22
<img src="docs/logo/logo.svg" alt="TurboHTTP" width="200" />
3-
<h1>TurboHTTP</h1>
4-
<p><strong>High-performance HTTP client for .NET — built on Akka.Streams with automatic retries, caching, cookies, and HTTP/2 multiplexing.</strong></p>
3+
<p><strong>High-performance HTTP client for .NET — built on Akka.Streams with automatic retries, caching, cookies, HTTP/2 multiplexing, and HTTP/3 (QUIC).</strong></p>
54

65
[![Build](https://github.com/st0o0/TurboHTTP/actions/workflows/build-and-release.yml/badge.svg)](https://github.com/st0o0/TurboHTTP/actions/workflows/build-and-release.yml)
76
[![NuGet](https://img.shields.io/nuget/v/TurboHTTP.svg)](https://www.nuget.org/packages/TurboHTTP)
@@ -22,6 +21,7 @@ TurboHTTP replaces `HttpClient` with a reactive, backpressure-aware HTTP pipelin
2221

2322
- **HTTP/1.0 and HTTP/1.1** — chunked transfer encoding, keep-alive, pipelining
2423
- **HTTP/2** — binary framing, stream multiplexing, HPACK header compression, flow control
24+
- **HTTP/3 (QUIC)** — UDP-based transport, QPACK header compression, 0-RTT connection establishment
2525

2626
### Resilience
2727

@@ -39,16 +39,17 @@ TurboHTTP replaces `HttpClient` with a reactive, backpressure-aware HTTP pipelin
3939

4040
### Performance
4141

42-
- **Zero-allocation internals**`Span<T>`, `ReadOnlyMemory<byte>`, `IBufferWriter<byte>`, and `System.Threading.Channels` throughout the hot path
42+
- **Zero-allocation internals**`MemoryPool<byte>`, `Span<T>`, `ReadOnlyMemory<byte>`, `IBufferWriter<byte>`, and `System.Threading.Channels` throughout the hot path
4343
- **HTTP/2 multiplexing** — multiple concurrent requests over a single TCP connection with header compression and per-stream flow control
4444
- **Backpressure** — Akka.Streams backpressure propagates end-to-end from the network to the caller, preventing buffer bloat and memory exhaustion under load
4545
- **Channel-based API** — for high-throughput scenarios, bypass `SendAsync` and write/read directly to `System.Threading.Channels` for pipelined I/O
4646

4747
### Extensibility
4848

4949
- **Handler pipeline** — compose custom request/response transforms via `TurboHandler` subclasses or inline delegates, ordered FIFO
50+
- **Distributed tracing** — built-in OpenTelemetry-compatible tracing via `TracingBidiStage` for request/response lifecycle visibility
5051
- **DI integration** — first-class `IServiceCollection` support with named and typed clients, `IOptionsMonitor` for runtime configuration changes
51-
- **3,600+ tests** — unit tests, stream stage tests, integration tests, and benchmarks
52+
- **4,200+ tests** — unit tests, stream stage tests, integration tests, and benchmarks
5253

5354
---
5455

@@ -208,13 +209,17 @@ Client Layer ITurboHttpClient (SendAsync / channel API)
208209
Handlers Layer TurboHandler pipeline (Auth, Logging, custom transforms)
209210
210211
Streams Layer Akka.Streams GraphStages — Engine, Feature BidiStages, Protocol Engines
211-
Features: Cache, Cookies, Redirect, Retry, ContentEncoding, Expect-Continue
212+
Features: Cache, Cookies, Redirect, Retry, ContentEncoding,
213+
Expect-Continue, Tracing, ConnectionReuse
212214
213-
Protocol Layer Encoders/Decoders, HPACK, frame types
215+
Protocol Layer Encoders/Decoders, HPACK/QPACK, frame types
216+
HTTP/1.0 · HTTP/1.1 · HTTP/2 · HTTP/3
214217
215218
Pooling Layer PoolRouter → HostPool → ConnectionActor (lifecycle only)
216219
217-
Transport Layer ConnectionStage ←→ Channel<byte> ←→ ClientByteMover ←→ TCP
220+
Transport Layer ITransportFactory abstraction
221+
├─ TCP → TcpConnectionStage ←→ Channel<byte> ←→ ClientByteMover
222+
└─ QUIC → QuicConnectionManager ←→ QUIC streams
218223
```
219224

220225
For interactive architecture diagrams, see the [documentation site](https://turbohttp.st0o0.net/).

docs/logo/logo.svg

Lines changed: 37 additions & 37 deletions
Loading

0 commit comments

Comments
 (0)