Skip to content

Phase 1: select a self-contained static liburing backend - #17

Merged
bright2227 merged 7 commits into
mainfrom
feature/self-contained-liburing-build
Aug 1, 2026
Merged

Phase 1: select a self-contained static liburing backend#17
bright2227 merged 7 commits into
mainfrom
feature/self-contained-liburing-build

Conversation

@bright2227

@bright2227 bright2227 commented Jul 31, 2026

Copy link
Copy Markdown
Owner

Summary

This PR completes the selected Phase 1 native-ring backend work:

  • add the static-liburing native Ring lifecycle implementation
  • record the comparison measurements and select pinned, statically linked liburing
  • package the minimal pinned liburing sources in source distributions
  • build a private position-independent liburing.a during extension builds
  • link both the existing CFFI backend and native liburing implementation without a runtime liburing.so dependency

The raw-syscall experiment is intentionally not part of this PR. It is preserved separately on feature/raw-syscall-ring-spike for future reference.

Decision

Use the pinned static-liburing route for the production native core. The lifecycle syscall counts were identical and local timing was too noisy to distinguish the compared implementations. The modest binary-size increase is preferable to maintaining correctness-sensitive SQ/CQ shared-memory ordering and kernel ABI details directly.

The vendored build keeps the selected liburing version consistent across Linux distributions. Runtime io_uring feature availability still depends on the host kernel.

Scope

The existing CFFI proactor remains the active backend in this PR. The native liburing module establishes the lifecycle boundary and backend decision; migration into the canonical production module remains follow-up work.

Validation

  • .venv/bin/pytest — 25 passed
  • Ruff and Markdown formatting checks pass
  • clean source distribution builds into a wheel
  • the clean wheel contains _uringcore_liburing and no raw _uringcore extension
  • both packaged liburing extensions link the private archive without liburing.so
  • final automated code review found no actionable issues

@bright2227 bright2227 changed the title Make vendored liburing source builds self-contained Phase 1: select a self-contained static liburing backend Jul 31, 2026
@bright2227
bright2227 changed the base branch from feature/select-static-liburing-backend to main July 31, 2026 19:08
@bright2227
bright2227 force-pushed the feature/self-contained-liburing-build branch from 9633020 to ff78ee8 Compare July 31, 2026 19:19
@bright2227
bright2227 marked this pull request as ready for review August 1, 2026 08:31
@bright2227
bright2227 merged commit 5baad37 into main Aug 1, 2026
7 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