• Mia
    link
    fedilink
    1315 hours ago

    Yeah the licensing is a bit worrying, but it’s not a language issue.

    • @moonpiedumplings@programming.dev
      link
      fedilink
      English
      2
      edit-2
      58 minutes ago

      It actually is a language issue.

      Although rust can dynamically link with C/C++ libraries, it cannot dynamically link with other Rust libraries. Instead, they are statically compiled into the binary itself.

      But the GPL interacts differently with static linking than with dynamic. If you make a static binary with a GPL library or GPL code, your program must be GPL. If you dynamically link a GPL library, you’re program doesn’t have to be GPL. It’s partially because of this, that the vast majority of Rust programs and libraries are permissively licensed — to make a GPL licensed rust library would mean it would see much less use than a GPL licensed C library, because corporations wouldn’t be able to extend proprietary code off of it — not that I care about that, but the library makers often do.

      https://en.wikipedia.org/wiki/GNU_General_Public_License#Libraries — it’s complicated.

      EDIT: Nvm I’m wrong. Rust does allow dynamic linking

      Hmmmm. But it seems that people really like to compile static rust binaries, however, due to their portability across Linux distros.

      EDIT2: Upon further research it seems that Rust’s dynamic linking implementation lacks a “stable ABI” as compared to other languages such as Swift or C. So I guess we are back to “it is a language issue”. Well thankfully this seems easier to fix than “Yeah Rust doesn’t support dynamic linking at all.”.

      • Mia
        link
        fedilink
        219 hours ago

        No that’s the issue: it’s too permissive. It allows corporations or individuals to redistribute and modify the code as closed source, which isn’t desirable for this kind of project.

        • Fonzie!
          link
          fedilink
          145 minutes ago

          I interpreted your message wrong, now I get it, thanks!