Skip to content

v0.5.0 — measured parity table + docs overhaul

Choose a tag to compare

@North-web-dev North-web-dev released this 25 Oct 15:14
· 3 commits to main since this release

Documentation and release polish. No breaking API changes; no behavioural change to the library.

Highlights

  • Real measured parity table in the README: JA4, JA3, and HTTP/2 (Akamai) fingerprints for every profile (chrome, edge, firefox, safari, ios), captured with go run ./cmd/measure against tls.peet.ws on 2026-10-25 (uTLS v1.8.2). Reproducible — no hand-written values.
  • Corrected the Chrome fingerprint claim. Chrome shuffles its TLS extension order on every connection (Chromium >= 110), so its JA3 is non-deterministic by design. The old README listed a single fixed Chrome JA3, which was misleading; JA4 (which sorts extensions) is now presented as the identifier to match on.
  • Honest Edge caveat: uTLS HelloEdge_Auto does not reproduce Chromiums per-connection extension shuffle, so the Edge ClientHello is close but not shuffle-identical to real Edge 131. Use Chrome` if you need the shuffle.
  • 30-second quickstart with a complete, runnable example.
  • What it does / does not do section (no HTTP/3, regular-header order is best-effort, no JS/DOM) and a factual comparison to curl_cffi (Python + CGo/libcurl) and utls (TLS layer only).
  • Godoc: documented the exported Profile type and all its fields.

Verified

go build ./..., go vet ./..., and go test ./... -race all pass (Go 1.25.3). CI green.

Full changelog: v0.4.0...v0.5.0