Support binary dependencies on Linux (and Windows?)

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:

  1. Lack of ABI on non apple platforms.

  2. 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).

  3. 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.