vendor zlib instead of relying on system version#306
Merged
weissi merged 1 commit intoapple:mainfrom Feb 26, 2026
Merged
Conversation
50bbd83 to
46a64c9
Compare
46a64c9 to
549c2a8
Compare
Lukasa
approved these changes
Feb 25, 2026
glbrntt
reviewed
Feb 25, 2026
549c2a8 to
9cccde4
Compare
Cyberbeni
reviewed
Mar 18, 2026
|
|
||
| /// Data compression utility. | ||
| struct Compressor { | ||
| private var stream = z_stream() |
There was a problem hiding this comment.
zlib depends on the address of the z_stream struct being unchanged between calls, so storing it directly is error prone. And although it might currently be working as expected, it relies on undefined behavior, see: https://github.com/swiftlang/swift/blob/af3e7e765549c0397288e60983c96d81639287ed/stdlib/public/core/UnsafePointer.swift#L197-L205
had a similar issue here: adam-fowler/compress-nio#12
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.
Motivation:
Relying on the system zlib causes issues if that library (or its headers) doesn't ship with the system.
Modifications:
Vendor it.
Result:
.ofiles is less than 200kB. A linked release build will make this even smaller: