-
|
Could you please explain the differences between sapphire and homebrew? Additionally, I’d love to hear about your inspiration behind creating sapphire. |
Beta Was this translation helpful? Give feedback.
Replies: 2 comments
-
|
I too would like to know the why. More specifically:
|
Beta Was this translation helpful? Give feedback.
-
|
I wanted a big project to learn Rust, initially the goal was a declarative package and system management tool that wraps brew. I kinda disliked that though, seemed like cheating and a bit dirty and due too the sequential nature of brew installs it was slower than I would have liked. (I now know brew does this to take load of github / ghcr etc., did not when I started. Modern CLI / UX – aiming for something “dnf5-like”: clean, information-dense, not chatty. The current search command is an early taste. I never really felt the brew user experience was that nice when compared with other package managers on linux. No new ecosystem to babysit – bottles and casks already cover 99 % of real-world macOS software. The plan is to stay fully compatible there instead of inventing yet another repo format. Source builds only when needed – formula-level Ruby parsing is out of scope. For rare source builds I’ll fall back to automatic build-system detection (with manual flag overrides) and eventually a small machine-readable build manifests (yaml, toml, others?) or maybe even lua as mlua is easy to implement and performant within rust. -> The packaging should still end up producing homebrew compliant bottles in that case imo. Human terms, not beer terms – the brewing jargon is it's own little universe and has a rich legacy. Still I'd prefer more general packaging terms. Once this is somewhat more finished I will move to more standard terminology. Keeping it 1/1 is just to make reverse-engineering it a bit easier. My roadmap would be: package-manager, declarative layer, system-management layer and in the very end client / server architecture to centrally manage multiple machines. And again, it is a personal project. Homebrew is amazing, I don't intend to replace it. Still, I am happy about every contribution, issue, bug report and suggestion as I really want to turn this into a stable and polished piece of software in the long run. |
Beta Was this translation helpful? Give feedback.
I wanted a big project to learn Rust, initially the goal was a declarative package and system management tool that wraps brew. I kinda disliked that though, seemed like cheating and a bit dirty and due too the sequential nature of brew installs it was slower than I would have liked. (I now know brew does this to take load of github / ghcr etc., did not when I started.
Modern CLI / UX – aiming for something “dnf5-like”: clean, information-dense, not chatty. The current search command is an early taste. I never really felt the brew user experience was that nice when compared with other package managers on linux.
No new ecosystem to babysit – bottles and casks already cover 99 % of real-worl…