Live data from Hacker News

Sapphire: Rust based package manager for macOS

github.com

71–80 of 311 posts

Re: Sapphire: Rust based package manager for macOS

#71
post #31

Earlier quoted context omitted.

Wow. They really don't want anyone to take this project seriously! This is actually making me reconsider having brew installed even... https://github.com/pkgxdev/pantry/pull/5360#issuecomment-233...

This has nothing to do with Homebrew. It's a different project.

Yeah, but the relationship makes my spidey senses tingle even if it's not accurate.

Re: Sapphire: Rust based package manager for macOS

#72
post #53

Earlier quoted context omitted.

Homebrew is dog-slow. If this becomes yet another Rust tool that is 10x faster than the one that it replaces: great.

Homebrew is 99% IO-bound and this will be too. Installing (prebuilt) packages doesn't require much logic. If this tool supports parallel downloads, it will be 10x faster than Homebrew, but it won't have anything to do with the language. The issue is finding a hosting provider willing to be DDOS'd for the good of the open-source community.

> If this tool supports parallel downloads, it will be 10x faster than Homebrew, but it won't have anything to do with the language.

If this is true, why are the Rust tools, on average, so much faster than the JS (or whatever) tools they replace?

Hint: the answer hasn't just to do with the theoretical technical merits of the underlying platform, but also what type of developer they attract.

Re: Sapphire: Rust based package manager for macOS

#74
post #70
post #44

This looks like a fun little project, nice work! I'm not a big fan of keeping the Homebrew terminology though. I never know what a formula, keg, cask, cellar, tap or bottle is. Why not keep to the standard terms of package and repository etc? I don't know beer brewing terminology or how beer brewing is analogous to package management, and I honestly wish that it wasn't something which my tools expect me to learn.

Nowadays, normal users don't need to know. They just "brew install ".

I disagree. I need to understand what Homebrew means when it says that a cask is keg-only or whatever, or what it means to tap a cellar or whatever when I wanna add repositories. The documentation and '--help' output also refers to the beer brewing terms, not standard package management terms.

Re: Sapphire: Rust based package manager for macOS

#75

Earlier quoted context omitted.

My thoughts exactly. The main reason I find brew to be a bit slow is just a lack of parallelism with regards to downloads and installs. Rather brew does alternating and sequential D, I, D, I, D, I, when I wish it just kept downloading in the background when it is doing the installs. It would cut down the brew upgrade time by 30% or more at the cost of more disk space used during the process. But this one qualm I have…

FWIW: a longstanding limitation for parallel downloads within Homebrew isn't architectural (it's not too hard to add!) but structural with respect to Homebrew's download sources: GitHub and others are very gracious with the amount of traffic we send their way, and we don't want to overtax services that have other major consuming parties. (This is a perverse countereffect: small projects can make performance decisions…

P2P protocols like BitTorrent are made for this kind of problem.

Re: Sapphire: Rust based package manager for macOS

#76
Homebrew sure has room for improvement, as most software does, and I appreciate every effort to replace and renew what we have with something better. But my own grievances with Homebrew isn't with the codebase itself.

What discourages me from using Homebrew is the intent and the mindset of its developers and packagers, who, I think, see their goal building an "unstable" distribution, as Debian defines it: "[a distribution that] is run by developers and those who like to live on the edge".

I am not blaming the Homebrew developers for building a Sid rather than Bookworm. Some people want just that. Heck, I used to run Debian Sid myself, but have lost my patience for maintaining my own computers since: I am kept busy enough by fixing the software I write, I don't want to spend more time fixing software I did not.

Re: Sapphire: Rust based package manager for macOS

#77

It’s a real disservice to the project not to give a raison d’etre in the readme, or any kind of technical motivation / differences.

Agreed - without clear performance metrics or feature differentiation in the README, potential users have no compelling reason to switch from a mature ecosystem like Homebrew to an alpha-stage alternative.

Re: Sapphire: Rust based package manager for macOS

#78

> WARNING: ALPHA SOFTWARE > Sapphire is experimental, under heavy development, and may be unstable. Use at your own risk! Ruby seems fine for brew. Does this do anything else better? Ruby makes it easy to write recipes for it which is a huge boon for a package manager.

My thoughts exactly. The main reason I find brew to be a bit slow is just a lack of parallelism with regards to downloads and installs. Rather brew does alternating and sequential D, I, D, I, D, I, when I wish it just kept downloading in the background when it is doing the installs. It would cut down the brew upgrade time by 30% or more at the cost of more disk space used during the process. But this one qualm I have…

Good points, background downloads would speed it up.

And the language doesn’t have much to do with that. This project looks to be someone just toying around with Rust or their own PM. Props for that, but the headline has extra implications on HN.

I recently rewrote a big portion of Atlas [1]. It’s a Nim based dependency manager that clones Nim packages to a `deps/` folder. Initially I was worried about using reference types, etc, for performance reasons. It’s a general habit of mine. Then I remembered that stuff would be negligible compared to the download times and git overhead. Well aside from the SAT solver.

1: https://github.com/nim-lang/atlas

Re: Sapphire: Rust based package manager for macOS

#79

Earlier quoted context omitted.

FWIW: a longstanding limitation for parallel downloads within Homebrew isn't architectural (it's not too hard to add!) but structural with respect to Homebrew's download sources: GitHub and others are very gracious with the amount of traffic we send their way, and we don't want to overtax services that have other major consuming parties. (This is a perverse countereffect: small projects can make performance decisions…

P2P protocols like BitTorrent are made for this kind of problem.

Sure. There's also a reason no major OSS packaging ecosystem uses these protocols: the only thing worse than a slow distribution scheme is an unreliable one. Combine that with the (reasonable) lack of a reward scheme for seeding an OSS packaging ecosystem, and you have a distribution mechanism that's significantly more brittle than the current "throw a lot of bandwidth at it" approach.

(Among other technical challenges, like updating the P2P broadcast for each new bottle.)

Re: Sapphire: Rust based package manager for macOS

#80
post #68
post #44

This looks like a fun little project, nice work! I'm not a big fan of keeping the Homebrew terminology though. I never know what a formula, keg, cask, cellar, tap or bottle is. Why not keep to the standard terms of package and repository etc? I don't know beer brewing terminology or how beer brewing is analogous to package management, and I honestly wish that it wasn't something which my tools expect me to learn.

I will probably change the terminology at some point for this. For initially building it it is way easier to keep them the same though as trying to understand brew itself (at least for me) isn't so straight forward. It's a massive project

Kudos for your humility.

I'd agree that the current homebrew terms are inappropriately whimsical and hard to grasp, but you are right in your intuition and goal, IMO.

That is, taking care of the gears first and then carefully adjusting the public API.

Post reply on HN