yggvault ratatoskr-space connected via regular web
Color theme
also available via yggdrasil mesh http://[203:b338:2a84:a18f:986:47ae:1a4:d8d3]/pkg/fasthttp/v1.75.0
vault / fasthttp / v1.75.0

fasthttp @ v1.75.0

integrity

size
487.3 KiB
downloaded
last checked
overlays
go
detected
go module github.com/valyala/fasthttp
source https://github.com/valyala/fasthttp · available · github

release notes

v1.75.0 improves HTTP parsing and serialization, URI processing, cached file serving, and client connection handling. It also fixes cookie injection, request/response framing problems, and excessive CPU or memory consumption from certain inputs.

Go 1.26 or newer is now required. #2395

Performance improvements

Security fixes and hardening

Argument sorting now honors any negative comparator result in Args.Sort and Args.SortKeys, and static-file serving rejects zero-length suffix byte ranges (bytes=-0) with 416 Range Not Satisfiable. #2459, #2460

Other significant changes include opt-in ETags for FS, a net/http request conversion function, improved adaptor handling of flushes, aborts and trailers, and fixes to shutdown and per-IP connection lifetimes. #2399, #2104, #2429, #2445, #2352, #2402

Benchmark results

Compared v1.74.0 with master 6141d3a on Ubuntu 26.04, an AMD EPYC 9454, and Go 1.27.1. Each benchmark has ten samples per revision, run alternately with the same inputs and CPU affinity. Negative percentages mean less time per operation. All rows below have p < 0.001.

Benchmark v1.74.0 Release candidate Time/op change
Minimal GET, pipeline depth 64 484.30 ns 278.05 ns -42.6%
Browser-shaped GET, pipeline depth 16 1.080 µs 722.55 ns -33.1%
Request-header parsing 561.80 ns 348.15 ns -38.0%
Response-header parsing 466.95 ns 277.55 ns -40.6%
Request-header writing 49.84 ns 37.45 ns -24.8%
Response-header writing 68.64 ns 40.99 ns -40.3%
Cached 1 KiB file, directory 2.324 µs 611.85 ns -73.7%
Cached 1 KiB file, os.DirFS 3.805 µs 612.30 ns -83.9%
URI path with query string 91.39 ns 46.06 ns -49.6%
HTTP date formatting 108.25 ns 28.59 ns -73.6%
Trickled ~4 KiB headers, one byte per read 1385.784 µs 191.257 µs -86.2%
8 KiB path of repeated / 352.529 µs 54.330 µs -84.6%
~8 KiB path of repeated /a/.. 96.733 µs 22.253 µs -77.0%
TCP client/server round trips, small response 5.193 µs 5.030 µs -3.1%
TCP client/server round trips, 64 KiB response 15.302 µs 13.478 µs -11.9%

The pipelined serving and file benchmarks use an in-memory connection with writes discarded. The two TCP rows include real loopback networking. These results describe the selected workloads; TCP gains are smaller than the gains in parsing and serialization. Server.LazyRequestTime remains disabled in this comparison.

What's Changed

Compatibility

Security and hardening

Performance

Features

Fixes

Documentation, tests and tooling

Dependency updates

New Contributors

Full Changelog: https://github.com/valyala/fasthttp/compare/v1.74.0...v1.75.0

download

unix · zip
curl -fL -o v1.75.0.zip https://ratatoskr.space/pkg/fasthttp/v1.75.0.zip
                    printf '%s  %s\n' '771d8f7ff9633c4ae4c60f61d22784c4b45eb164df500818d6d2ce0afd2f3b35' 'v1.75.0.zip' | sha256sum -c -
windows · zip
$url = "https://ratatoskr.space/pkg/fasthttp/v1.75.0.zip"
$out = "v1.75.0.zip"
Invoke-WebRequest -Uri $url -OutFile $out
if ((Get-FileHash $out -Algorithm SHA256).Hash.ToLowerInvariant() -ne "771d8f7ff9633c4ae4c60f61d22784c4b45eb164df500818d6d2ce0afd2f3b35") { throw "sha256 mismatch" }
unix · tar.gz
curl -fL -o v1.75.0.tar.gz https://ratatoskr.space/pkg/fasthttp/v1.75.0.tar.gz
                    printf '%s  %s\n' 'df3795e5aa2b40288dee4d0f103513e7c1b61694a4080496cbe50602598ca0bc' 'v1.75.0.tar.gz' | sha256sum -c -
windows · tar.gz
$url = "https://ratatoskr.space/pkg/fasthttp/v1.75.0.tar.gz"
$out = "v1.75.0.tar.gz"
Invoke-WebRequest -Uri $url -OutFile $out
if ((Get-FileHash $out -Algorithm SHA256).Hash.ToLowerInvariant() -ne "df3795e5aa2b40288dee4d0f103513e7c1b61694a4080496cbe50602598ca0bc") { throw "sha256 mismatch" }
download via yggdrasil mesh
unix · zip
curl -fL -o v1.75.0.zip http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/fasthttp/v1.75.0.zip
                    printf '%s  %s\n' '771d8f7ff9633c4ae4c60f61d22784c4b45eb164df500818d6d2ce0afd2f3b35' 'v1.75.0.zip' | sha256sum -c -
windows · zip
$url = "http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/fasthttp/v1.75.0.zip"
$out = "v1.75.0.zip"
Invoke-WebRequest -Uri $url -OutFile $out
if ((Get-FileHash $out -Algorithm SHA256).Hash.ToLowerInvariant() -ne "771d8f7ff9633c4ae4c60f61d22784c4b45eb164df500818d6d2ce0afd2f3b35") { throw "sha256 mismatch" }
unix · tar.gz
curl -fL -o v1.75.0.tar.gz http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/fasthttp/v1.75.0.tar.gz
                    printf '%s  %s\n' 'df3795e5aa2b40288dee4d0f103513e7c1b61694a4080496cbe50602598ca0bc' 'v1.75.0.tar.gz' | sha256sum -c -
windows · tar.gz
$url = "http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/fasthttp/v1.75.0.tar.gz"
$out = "v1.75.0.tar.gz"
Invoke-WebRequest -Uri $url -OutFile $out
if ((Get-FileHash $out -Algorithm SHA256).Hash.ToLowerInvariant() -ne "df3795e5aa2b40288dee4d0f103513e7c1b61694a4080496cbe50602598ca0bc") { throw "sha256 mismatch" }
artifact format size hashes
v1.75.0.zip zip 493.3 KiB
blake3-24 472f99c778260c4320ca50f9f9345c75c69f08eaf43dc040
sha256 771d8f7ff9633c4ae4c60f61d22784c4b45eb164df500818d6d2ce0afd2f3b35
sha1 612b91bce165018f16be19333d02d23dd811fe63
v1.75.0.tar.gz tar.gz 423.9 KiB
blake3-24 cc597464daf26f085e93dd7e9abed736bf9c71a9dd7988f8
sha256 df3795e5aa2b40288dee4d0f103513e7c1b61694a4080496cbe50602598ca0bc
sha1 3116255b08619a2b26cca36ea8090788391c5964

go module archive

module zip with the module path rewritten to this mirror; fetched by go get through the GOPROXY route

artifact format size hashes
v1.75.0.zip zip 497.4 KiB
blake3-24 42325471fcca6d1d70837e91ec93968e98729d3c9af7119d
sha256 961c179971ae0dc3b2def553be45ba93dda82d394b0f42a8bbd2242fb833087b
sha1 4b3b96377cd195c6a4fcc3af7066af8bca7d5263

install

bazel
http_archive(
    name = "fasthttp",
    urls = ["https://ratatoskr.space/pkg/fasthttp/v1.75.0.tar.gz"],
    integrity = "sha256-3zeV5aorQCiN7k0PEDUT58G2FpSkCASWy+UGAlmMoLw=",
    strip_prefix = "fasthttp-v1.75.0",
)
zig
.url = "https://ratatoskr.space/pkg/fasthttp/v1.75.0.tar.gz",
go
GOPROXY=https://ratatoskr.space GOSUMDB=off go get ratatoskr.space/pkg/fasthttp@v1.75.0
install via yggdrasil mesh
bazel
http_archive(
    name = "fasthttp",
    urls = ["http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/fasthttp/v1.75.0.tar.gz"],
    integrity = "sha256-3zeV5aorQCiN7k0PEDUT58G2FpSkCASWy+UGAlmMoLw=",
    strip_prefix = "fasthttp-v1.75.0",
)
zig
.url = "http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/fasthttp/v1.75.0.tar.gz",
go
GOPROXY=http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg GOSUMDB=off GOINSECURE=14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/* go get 14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/fasthttp@v1.75.0
v1.74.0 →