Skip to content

docs: refresh README for shipped features and add a CHANGELOG#7

Merged
houseme merged 1 commit into
mainfrom
docs/readme-changelog
Jul 10, 2026
Merged

docs: refresh README for shipped features and add a CHANGELOG#7
houseme merged 1 commit into
mainfrom
docs/readme-changelog

Conversation

@houseme

@houseme houseme commented Jul 10, 2026

Copy link
Copy Markdown
Collaborator

Brings the README in line with the code and adds a CHANGELOG.md.

Why

The README still described eventfd reaping, O_DIRECT, and LocalIoBackend integration as not yet landed, and listed streaming reads on the roadmap — all of which has since merged (#1#6) or been closed by measurement (streaming reads are a documented NO-GO, backlog#1144).

README

  • Status now says the read path is wired into rustfs/rustfs behind a runtime probe and is off by default (RUSTFS_IO_URING_READ_ENABLE), and shows how to pin the git dependency.
  • Documents sharded rings (probe_and_start_sharded) and native O_DIRECT (read_at_direct) with runnable examples matching the current signatures.
  • A "when this crate helps — and when it does not" section reporting the measured results as measured, including where io_uring loses (single sequential stream; low concurrency) and the roughly-neutral end-to-end S3 GET — plus the two benchmarking traps this repo hit (a 76× regression mistaken for a win; page-cache-hit microbenchmarks not transferring end-to-end).
  • Roadmap trimmed to what is genuinely open (write path, register_files, SQPOLL); the closed-by-measurement decisions moved to the changelog.

CHANGELOG.md

Keep a Changelog format. Every landed change #1..#6 with the commit that carried it, the pre-history of the audited spike, and a "decisions recorded, not implemented" section so the NO-GO items are not silently re-opened.

Verification

Docs-only; no code change. README API claims cross-checked against src/driver.rs: the six documented signatures match, ProbeFailure/StatsSnapshot/UringDriver are the lib.rs exports, StatsSnapshot's fields are public (the conservation assertion compiles), and the O_DIRECT example's alignment passes the driver's validation.

The README described eventfd reaping, O_DIRECT, and LocalIoBackend
integration as unlanded and listed streaming reads on the roadmap; all of
that has since merged or been closed by measurement. Bring it in line with
the actual public API and record the honest performance picture.

README changes:
- status now reflects that the read path is wired into rustfs/rustfs behind
  a runtime probe and off by default (RUSTFS_IO_URING_READ_ENABLE), and how
  to pin the git dependency;
- document sharded rings (probe_and_start_sharded) and native O_DIRECT
  (read_at_direct) with runnable examples matching the current signatures;
- a "when this crate helps — and when it does not" section reporting the
  measured results, including where io_uring loses (single sequential
  stream, low concurrency) and the roughly-neutral end-to-end S3 GET, plus
  the two benchmarking traps this repo hit (a 76x regression mistaken for a
  win, and page-cache-hit microbenchmarks not transferring end-to-end);
- roadmap trimmed to what is actually open (write path, register_files,
  SQPOLL) with the closed-by-measurement decisions moved to the CHANGELOG.

Add CHANGELOG.md (Keep a Changelog format): every landed change #1..#6 with
the commit that carried it, the pre-history of the audited spike, and a
"decisions recorded, not implemented" section so the NO-GO items are not
silently re-opened.

Verified README claims against source: the six documented signatures match
src/driver.rs, ProbeFailure/StatsSnapshot/UringDriver are the lib exports,
and the O_DIRECT example's alignment passes the driver's validation.

Co-Authored-By: heihutu <heihutu@gmail.com>
@houseme houseme merged commit 29b30f6 into main Jul 10, 2026
3 checks passed
@houseme houseme deleted the docs/readme-changelog branch July 10, 2026 15:49
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