Description
kurl shows total request time, but doesn't break down DNS lookup, connection, TLS handshake, time to first byte, etc.
Proposed Implementation
kurl https://api.example.com --timing
Output:
Timing:
DNS Lookup: 45ms
TCP Connection: 30ms
TLS Handshake: 120ms
Server Processing: 200ms
Content Transfer: 15ms
Total: 410ms
Why this matters
Performance debugging requires knowing where time is spent. curl has this via --write-out, kurl should make it prettier.
Acceptance Criteria
Getting Started
Go's net/http/httptrace package provides callbacks for each phase. Wrap the transport and collect timestamps.
Description
kurl shows total request time, but doesn't break down DNS lookup, connection, TLS handshake, time to first byte, etc.
Proposed Implementation
Output:
Why this matters
Performance debugging requires knowing where time is spent. curl has this via
--write-out, kurl should make it prettier.Acceptance Criteria
--timingflaghttptracepackage for accurate measurementsGetting Started
Go's
net/http/httptracepackage provides callbacks for each phase. Wrap the transport and collect timestamps.