Skip to content

Rewrite the README for 0.4.0 - #87

Merged
MDA2AV merged 2 commits into
mainfrom
docs/readme-0.4.0
Nov 3, 2026
Merged

MDA2AV merged 2 commits into
mainfrom
docs/readme-0.4.0

Conversation

@MDA2AV

@MDA2AV MDA2AV commented Nov 2, 2026 •

Copy link
Copy Markdown
Member

Rewrites the README for 0.4.0, the state after #74–#86 are merged. Merge it last.

Why

Each PR in the series updated only its own lines of the README. Merged together, those lines still left the README:

  • describing a request-only parser, although responses are parsed too;
  • with no word on the body-framing helpers, ParserLimits, the two parser tiers or the error codes;
  • with nothing on what changes for callers in 0.4.0;
  • with a ChunkResult.Error in the chunked example that doesn't exist (malformed framing throws).

What's in it

  • Install, then request parsing with the new TryParseRequestHeader: what true, false and HttpParseException mean, and which status code each error carries (400, 431 or 505). It also notes that the parser clears its target.
  • Response parsing, and body framing: DetectBodyFraming, and DetectResponseBodyFraming with the request method it needs. It covers Content-Length agreement, saturation at long.MaxValue, and ContentLengthBodyReader.
  • Chunked decoding: partial chunks, the trailer cap, chunk-size limits, and ChunkedBodyValidator.
  • Every ParserLimits field, with its default and the status code when exceeded. That includes AllowBareLf and MaxTotalTrailerBytes.
  • UltraHardenedParser vs FlexibleParser, with a summary of the hardening that links to SECURITY.md.
  • Migrating to 0.4.0: the obsolete TryExtract* methods (drop the + 1), self-clearing targets, 400 vs 505 for versions, partial chunks, and the throwing framing helpers.
  • The test suite, including the property tests.
  • The discontinued Glyph11.Native and Glyph11.Pico.

The benchmark tables are unchanged. The multi-segment caption now says only the header block is linearized (#86).

Merge order

#74–#86 are merged. I merged main into this branch and kept this PR's README, so the README is the only file that differs from main.

A new run of the benchmark harness on the merged code stays within 4% of the tables (for example 118 ns vs 120 ns, and 722 ns vs 750 ns), so the numbers stand.

Describes the library as it is once #74-#86 are merged: requests and
responses through TryParseRequestHeader / TryParseResponseHeader, the
body-framing helpers, chunked decoding (partial chunks, the trailer
cap), every ParserLimits field with its default and status code
(including AllowBareLf and MaxTotalTrailerBytes), the two parser tiers,
a summary of the hardening with a link to SECURITY.md, the tests, and
what changes when migrating to 0.4.0. Glyph11.Native and Glyph11.Pico
are marked discontinued.

Also fixes the chunked example, which listed a ChunkResult.Error that
does not exist (malformed framing throws).
@MDA2AV
MDA2AV marked this pull request as ready for review November 3, 2026 19:46
@MDA2AV
MDA2AV merged commit 18f1e8d into main Nov 3, 2026
1 of 2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant