Originally when I looked into binary dependencies I wanted to support Linux (windows wasn’t a valid target platform at the time). There are a lot of challenges. This is why when discussing SE-272 (which I only ended up helping with a tiny bit) we quickly dropped it from the first version of binary dependencies even when I suggested it.
The main challenges I remember are these:
-
Lack of ABI on non apple platforms.
-
On Linux different distros use different formats for bundling them. Should it have a standardized SwiftPM format for them or should it somehow embrace the platform packaging? The main reason we might want to embrace a more standard approach is if we want to support install commands (which was also something I strongly wanted at the time).
-
How would it handle different architectures? xcframeworks handle this with their structure of essentially nesting more traditional frameworks in a directory hierarchy. How would these binaries handle intel, arm, 32 bit, 64 bit etc.
Overall it is something I am still interested in just less so, my job at the time would have been able to take huge advantage of binary dependencies on Linux.