Commit Graph

12674 Commits

Author SHA1 Message Date
abuckit f869ad00f9 fix: wire pooled stash buffer into parallelReader.buf
newParallelReader acquired a pooled stash buffer from globalBytePoolCap
and sliced it into per-shard views (bufs), but returned the struct with
`buf: make([][]byte, len(readers))` — discarding bufs. The pooled buffer
was reserved and recycled but never read into, while Read heap-allocated
each shard buffer lazily, adding ~1 MiB of fresh allocations per in-flight
GET decode on top of the reserved-but-unused 2 MiB pool buffer.

Wire the seeded bufs into buf so reads land in the pooled buffer. Entries
stay nil for the no-stash / oversized-legacy-block path, where Read's lazy
make remains the fallback. Correctness is unchanged; this removes the
allocation churn the byte pool was meant to avoid.

Fixes #11
2026-06-23 15:06:48 -04:00
abuckit 25de8044f7 Merge pull request #10 from buckit-io/worktree-install-rpm-script
feat: add cross-platform install scripts (Linux/macOS/Windows)
2026-06-19 12:00:23 -04:00
abuckit 414f5656f2 release: add Install section with one-line installers to release page
Add an Install panel to the generated release landing page listing the
curl/irm one-liners for the Linux, macOS, and Windows installer scripts.
2026-06-18 19:47:06 -04:00
abuckit 4613026c6f install-mac.sh: leave buckit binary in place instead of moving it
Drop the move-to-PATH instruction; the verified binary stays in the download
directory and the script prints how to run it from there, matching
install-windows.ps1.
2026-06-18 19:44:09 -04:00
abuckit c301779f4f install-windows.ps1: leave buckit.exe in place instead of moving it
Drop the move-to-PATH instruction; the verified buckit.exe stays in the
download directory and the script prints how to run it from there.
2026-06-18 19:43:26 -04:00
abuckit a8b561e837 install-windows.ps1: add Windows platform guard and fix install example
Fail fast when run under cross-platform PowerShell on Linux/macOS (rather than
fetching the Windows .exe), treating undefined $IsWindows on Windows
PowerShell 5.1 as Windows. Make the printed install example create the target
directory before moving the executable into it.
2026-06-18 19:42:27 -04:00
abuckit 255c33fa3e feat: add macOS and Windows installer scripts
Add install-mac.sh (downloads the Apple Silicon binary, verifies SHA-256,
clears the macOS quarantine attr, prints the move-to-PATH command) and
install-windows.ps1 (downloads the .exe, verifies SHA-256, prints the
move-to-PATH command). Both write to a predictable filename (buckit /
buckit.exe) and use the same atomic temp-then-move + checksum-gate flow as
install-linux.sh.

Publish both to gh-pages in the release workflow, and point install-linux.sh's
non-Linux error at the new scripts.
2026-06-18 19:31:31 -04:00
abuckit c0951456cf install-linux.sh: derive sudo prefix instead of hardcoding it
Set SUDO once (empty when already root, "sudo " when sudo is available,
empty with a warning otherwise) and build INSTALL_CMD from it, so the printed
install command is correct on root/container hosts without sudo.
2026-06-18 18:17:00 -04:00
abuckit 61b1d5c4fc install-linux.sh: download atomically to avoid clobbering on failure
Write the download to a temporary sibling file and only mv it into the
predictable buckit.<ext> path after the checksum verifies, with an EXIT trap
to clean up on failure. A failed or interrupted download can no longer leave
a partial/unverified file or overwrite an existing good package.
2026-06-18 18:13:31 -04:00
abuckit 8e146d4478 install-linux.sh: download to a predictable filename, drop --install mode
Revert the --install non-interactive mode. The script again only downloads,
verifies, and prints the install command. Instead of a versioned name in a
temp dir, the package is saved to a predictable buckit.rpm / buckit.deb /
buckit.apk in the current directory (overridable via BUCKIT_DOWNLOAD_DIR), so
the printed install command is stable and copy-pasteable in docs.
2026-06-18 18:10:21 -04:00
abuckit b8cf52b4fc feat: add --install non-interactive mode to install-linux.sh
Default behavior is unchanged (download, verify, print the install command).
Passing --install runs the detected install command automatically after a
successful checksum verification, for docs and automation use.

Execution reuses the detected command via unquoted word-splitting of the
fixed INSTALL_CMD words with the package path as a single quoted argument —
reliable in POSIX sh without eval.
2026-06-18 18:07:15 -04:00
abuckit 616eeea9a2 rename install-rpm.sh to install-linux.sh
The script installs rpm, deb, and apk packages, so the rpm-specific name
was misleading. install-linux.sh reflects its actual Linux-wide scope.
2026-06-18 17:58:02 -04:00
abuckit 3fab64f1bf feat: add install-rpm.sh native-package installer
Add packaging/install-rpm.sh, a POSIX sh helper served from gh-pages that
detects the host package manager (dnf/yum/zypper, apt/apt-get/dpkg, or apk),
downloads the matching .rpm/.deb/.apk for the latest stable release, verifies
its published SHA-256 checksum, and prints the install command to run. It does
not invoke the package manager itself.

Wire the update-gh-pages release job to check out source and publish the
script to pages/install-rpm.sh so it ships at
https://buckit-io.github.io/buckit/install-rpm.sh during a normal release.
2026-06-18 17:53:42 -04:00
abuckit b34644e96b Merge pull request #9 from buckit-io/fix/mint-sdk-compat
Fix Mint SDK compatibility failures
2026-06-17 21:02:38 -04:00
abuckit a013378869 ci: harden workflow helper scripts 2026-06-17 19:14:32 -04:00
abuckit ca56fe393f fix: honor if-match on delete object 2026-06-17 12:14:10 -04:00
abuckit a1168e61eb fix: flush listen notification streams 2026-06-17 12:03:12 -04:00
abuckit 067d77f2bf Merge pull request #8 from buckit-io/security/dependabot-12
fix: resolve high dependabot alerts
2026-06-17 11:01:02 -04:00
abuckit ab4a101ab0 fix: resolve dependabot alerts 2026-06-17 09:18:34 -04:00
abuckit 43e5cf2c85 ci: resolve multipart compose hosts on github runner 2026-06-16 18:38:36 -04:00
abuckit 3178c75874 ci: build mint image from local binary 2026-06-16 15:04:19 -04:00
abuckit c179cd46ed ci: run mint tests on github-hosted runner 2026-06-16 14:58:32 -04:00
abuckit 17a8524083 Merge pull request #2 from buckit-io/feature/single-trip-get-phase1-pr
Add FastOpen single-trip GET path
2026-06-16 14:46:23 -04:00
abuckit fcdfe06d32 test: stabilize truncated part resiliency heal 2026-06-16 13:22:23 -04:00
abuckit 518c532960 test: cover FastOpen encryption and metrics 2026-06-15 22:53:50 -04:00
abuckit 7672c1703a chore: remove duplicate FastOpen metrics 2026-06-15 22:36:26 -04:00
abuckit 67392ba3f4 fix: bound FastOpen frame container counts 2026-06-14 19:03:55 -04:00
abuckit e701c06571 ci: fix lint and verifier workflow failures 2026-06-14 13:57:47 -04:00
abuckit 3d15bdb1a1 fix: avoid pooling update binary buffers 2026-06-14 11:38:43 -04:00
abuckit a9577221f3 ci: reenable verifiers for test targets 2026-06-14 10:59:53 -04:00
abuckit 47a9099dc8 fix: return owned update binary buffers 2026-06-14 10:49:29 -04:00
abuckit ea034f6390 fix: clone pooled pathJoin results 2026-06-14 10:33:39 -04:00
abuckit de269229bc ci: stabilize Go and lint workflow tooling 2026-06-13 22:55:34 -04:00
abuckit e212adacb4 Drop tmp artifacts from PR 2026-06-13 21:44:57 -04:00
abuckit 0fe7bd110a Align FastOpen design doc and trim docs 2026-06-13 21:36:51 -04:00
abuckit 94e4b8ab7b Merge branch 'master' into feature/single-trip-get-phase1-pr 2026-06-13 21:25:10 -04:00
abuckit a4831d473b Remove testing directory 2026-06-13 21:24:44 -04:00
abuckit 46cd783f2f Drop testing from PR branch 2026-06-13 21:24:44 -04:00
abuckit 0740a461f7 Add FastOpen timing metrics 2026-06-13 21:05:23 -04:00
abuckit 9f6f18c1b1 test: cover deferred FastOpen decode failures 2026-06-11 09:46:13 -04:00
abuckit 4cf193ff7c feat: profile FastOpen body-path timing 2026-06-11 09:46:09 -04:00
abuckit d52d9d5865 chore: remove FastGet prototype path 2026-06-10 11:37:21 -04:00
abuckit b09d64fe30 feat: add FastOpen observability 2026-06-10 10:44:21 -04:00
abuckit 91526a9788 test: expand FastOpen GET golden coverage 2026-06-10 09:55:15 -04:00
abuckit 6344ff1289 feat: add FastOpen lazy replacement 2026-06-09 23:42:18 -04:00
abuckit dbd22c0b7d feat: add FastOpen GET landing path 2026-06-09 21:13:42 -04:00
abuckit e3b3246c6d feat: add FastOpen storage transport 2026-06-09 19:20:13 -04:00
abuckit 831b5e8b5b feat: add disk-local FastOpen part stream 2026-06-09 17:18:22 -04:00
abuckit f5939780b7 feat: add FastOpen frame foundation 2026-06-09 16:57:37 -04:00
abuckit 5d77f36c3c docs: add FastGet phase 1 design plan 2026-06-09 15:48:26 -04:00