jdx / mise

dev tools, env vars, task runner
https://mise.jdx.dev
MIT License
8.96k stars 242 forks source link

Precompiled binary service #1919

Open jdx opened 4 months ago

jdx commented 4 months ago

I'd like to see a companion service for mise to generate and serve precompiled binaries for a set of environments. This would be similar to Homebrew's bottles.

Because plugins already contain the logic to compile tools we should be able to wrap them in a consistent way to build and publish the tools.

This likely makes sense as a standalone service in a separate repo. Doesn't necessarily need to be done in Rust.

Adirelle commented 4 months ago

One of the issue is that a lot of tools depends on specific versions of shared system libraries, including the libc (gnu/musl). When distributing prebuilt tools, you have to handle it one way or another:

jdx commented 4 months ago

While true, my thinking is that I can target just the most popular setups (macos, ubuntu, centos, etc). I think some small amount of system setup may be required like installing openssl and the usual suspects. I think that, alongside with a decent amount of static compilation would be effective for 80% of users. Even if I only got this to work for macos it would be pretty useful to have.

I think we've seen so far that users really like the portable pythons in mise even though it has quite a few pitfalls. I think there is value here even if it only works part of the time for even a small subset of languages.

AgapovOne commented 3 months ago

I don't really see any alternatives, so this could be a game-changer for our project. We don't like doing compilation on every usage of a tool.

I hope this service would move closer in your plans :)