• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

elixir-mint / mint / 4fca8832e8fad34b90d29ef80df1dc29ccd925bd
88%

Build:
DEFAULT BRANCH: main
Ran 05 May 2026 02:47AM UTC
Jobs 1
Files 20
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

05 May 2026 02:46AM UTC coverage: 88.125% (+0.3%) from 87.808%
4fca8832e8fad34b90d29ef80df1dc29ccd925bd

push

github

web-flow
Raise default HTTP/2 receive windows and batch HTTP/2 receive-window refills (#481)

* Rename window_size field to send_window_size

The connection and stream structs tracked a `window_size` field for
the client's outbound (send) window and a separately-named
`receive_window_size` field for the inbound window. Renaming the
former to `send_window_size` makes the pair symmetric and removes a
long-standing source of confusion about which direction a bare
`window_size` refers to.

* Raise default HTTP/2 receive windows

Default connection receive window is now 16 MB (was 65_535), sent via
a WINDOW_UPDATE on stream 0 as part of the connection preface. Default
stream receive window is now 4 MB (was 65_535), advertised via
SETTINGS_INITIAL_WINDOW_SIZE in the same preface. Both settable via
the new `:connection_window_size` option and the existing
`:client_settings` option.

Window size / RTT sets a hard cap on per-stream throughput. At the
previous 65_535-byte stream window:

  Path (typical RTT)       | 65 KB    | 4 MB     | 16 MB
  -------------------------|----------|----------|----------
  LAN (1 ms)               | 62 MB/s  | 4 GB/s   | 16 GB/s
  Region (20 ms)           | 3.1 MB/s | 200 MB/s | 800 MB/s
  Cross-country (70 ms)    | 0.9 MB/s | 57 MB/s  | 229 MB/s
  Transatlantic (100 ms)   | 0.6 MB/s | 40 MB/s  | 160 MB/s
  Transpacific (130 ms)    | 0.5 MB/s | 31 MB/s  | 123 MB/s
  Antipodal (230 ms)       | 0.3 MB/s | 17 MB/s  | 70 MB/s

Any caller talking to a server more than a few milliseconds away was
bottlenecked well below their link bandwidth without knowing why. 4 MB
per stream saturates gigabit anywhere on earth; 16 MB at the connection
level lets four streams run in parallel at full rate before the shared
pool binds.

Callers who want the old behaviour can pass `connection_window_size:
65_535` and `client_settings: [initial_window_size: 65_535]` to
`connect/4`.

* Batch HTTP/2 receive-window refills

Previously `refill_client_windows/3` sent ... (continued)

62 of 65 new or added lines in 1 file covered. (95.38%)

1358 of 1541 relevant lines covered (88.12%)

247.86 hits per line

Uncovered Changes

Lines Coverage ∆ File
3
94.14
0.4% lib/mint/http2.ex
Jobs
ID Job ID Ran Files Coverage
1 4fca8832e8fad34b90d29ef80df1dc29ccd925bd.1 05 May 2026 02:47AM UTC 20
88.12
GitHub Action Run
Source Files on build 4fca8832e8fad34b90d29ef80df1dc29ccd925bd
  • Tree
  • List 20
  • Changed 2
  • Source Changed 0
  • Coverage Changed 2
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • 4fca8832 on github
  • Prev Build on main (#4A195FFB...)
  • Next Build on main (#4C4BF913...)
  • Delete
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc