Skip to content

Revisiting vendored zlib option #277

@stackotter

Description

@stackotter

I came across #30 while investigating the prospect of swift-nio-extras using a vendored copy of zlib. It's been 6 years and Swift is starting to get used for more than just server-side software on Linux so I figured it might be worth revisiting with this new context.


I maintain SwiftCrossUI which depends indirectly on a vendored copy of zlib (via libpng). This vendored copy of zlib is handy because it means that apps created with SwiftCrossUI don't have a system dependency on zlib.

I realise that when #30 was discussed, swift-nio would've only been used in server-side code where system dependencies aren't all that important. In contrast, when developing GUI applications, you often want to minimise the number of system dependencies, because every system dependency makes cross-platform deployment that much harder and opens up another way for compatibility to fail.

For those reasons I request that the possibility of depending on a vendored copy of be revisited.

The reasons against #30 weren't really elaborated upon in the original discussion; are they still known and do they still hold?

If depending on a vended copy of swift-nio-extras is a no-go for server-side code, could it be included as an opt-in option via some environment variable based solution in Package.swift (given that package traits aren't available in 5.10)?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions