• CameronDev@programming.dev
    link
    fedilink
    arrow-up
    5
    ·
    1 day ago

    Some feedback:

    let remote_url = "https://gist.githubusercontent.com/ZeSystem-Inc/20ddc1ac41d73c6033cee3b4a5ab1a85/raw";
    

    You have effectively hardcoded the list of software you support, ideally you should be able to dynamically update the list, otherwise you have no way to revoke or update versions if required. And if its hardcoded, why bother network requesting for it, just build it into the binary. Would be a little larger binary, but even faster.

    No dependency resolution – eliminates fragility.

    Meaningless, there is no dependency resolution because thats done for you by the installers.

    Written in Rust – memory-safe, zero-cost, ultra-fast.

    The task you are doing is entirely IO bound, rusts performance is irrelevant.

        • ZeSystem@programming.devOP
          link
          fedilink
          arrow-up
          1
          arrow-down
          5
          ·
          1 day ago

          I think you should use wid. I already use my own download tool. It’s better than winget, choco, and ninite.

          • CameronDev@programming.dev
            link
            fedilink
            arrow-up
            8
            ·
            1 day ago

            Better is a wild claim.

            You’re right, gists do seem to update with the static url, however that isnt necessarily better, it now means your gist is effectively under your control, and you can replace the installers with malware packed ones. Operating a software repository/installer requires that people trust you, and that is basically impossible for a no-name dev with no history.

            You ideally should be doing checksum checks as well.

                • ZeSystem@programming.devOP
                  link
                  fedilink
                  arrow-up
                  1
                  ·
                  24 hours ago

                  It’s open source. Anyone can audit it. You can create your own sources.list, but if you distribute it, you must open the code. Also, “wid info <package_name>” shows the exact URL it downloads from. Example: wid info llvm shows the official GitHub release link.

        • ZeSystem@programming.devOP
          link
          fedilink
          arrow-up
          1
          arrow-down
          3
          ·
          1 day ago

          No, when I edit the gist, the URL doesn’t change. There are 32 packages right now. I’ve just added Epic Games. I use GitHub Gist.

    • ZeSystem@programming.devOP
      link
      fedilink
      arrow-up
      1
      arrow-down
      1
      ·
      1 day ago

      Actually, I have a Gist for this that you can use. I update the Gist from time to time. In fact, the sources.list file can be customized specifically.

      • exdor@programming.dev
        link
        fedilink
        arrow-up
        1
        ·
        10 hours ago

        The point is that you pinned a specific commit instead of a branch like main

        And yeah calling dependency resolution fragile is weird. It is not an actual package manager, just a download tool.

  • TehPers@beehaw.org
    link
    fedilink
    English
    arrow-up
    7
    ·
    2 days ago

    I want to explain what this is to my kids. Can you describe it in a way that Dr. Seuss would?