Repository navigation
feat: migrate to Zig 0.16 - #93
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Migrate to Zig 0.16.0 while retaining the preallocated Linux io_uring backend.
std.Io.net.IpAddress; preserve IPv6 numeric scopes and endpoint identity at the Linux syscall boundary.This is a breaking toolchain/address-type change. Server/client initialization and handler signatures otherwise remain unchanged.
Verification
zig build testpasses all 180 tests. The repository-requiredzig build bench -Doptimize=ReleaseFastcompletes all 24 scenarios with zero reported request errors. Debug, ReleaseSafe, ReleaseFast and baseline-CPU test runs pass; normal/optimized builds, API docs, ARM64 cross-compilation and IPv6 benchmark smoke checks also pass.Performance caveats
Five alternating isolated runs per scenario compare Zig 0.15.2 at
145100ewith Zig 0.16.0. The CCM fix removes the reproducible large-payload slowdown; single-threaded 1000-byte DTLS NON throughput improves about 15% over baseline.Performance parity is not established: single-threaded DTLS CON p99 remains about 10–21% higher, and some multi-threaded cases show throughput regression candidates. SO_REUSEPORT flow distribution adds substantial variance. NON error counts do not establish loss-free delivery.
Full measurements, reproduction commands and limitations:
docs/ZIG_016_PERFORMANCE.md. Keep draft pending resolution or explicit acceptance of these concerns.