Two things I haven't seen in other HTTP clients:
1. tryGet/tryPost/tryPut etc. return Result<T,E> instead of throwing — no try/catch needed at the call site. Works like Rust's Result or Go's (value, err) pattern.
2. Full W3C traceparent/tracestate/baggage injection with zero @opentelemetry/* dependencies. One builder method: .withOpenTelemetry({ serviceName: 'my-service' })
Also ships with: in-flight request deduplication (thundering herd fix), runtime detection across Node/Bun/Deno/CF Workers/Vercel Edge, transient network error classification (ETIMEDOUT vs DNS vs connection reset), circuit breaker, offline queue, GraphQL client, WebSocket, SSE, and a MockAdapter for tests.
Would love feedback on the Result API design — specifically whether Ok/Err should carry more metadata or stay minimal.