Nanobrew: brew와 호환되는 가장 빠른 macOS 패키지 매니저

발행: (2026년 3월 24일 오후 08:40 GMT+9)
3 분 소요
원문: Hacker News

Source: Hacker News

nanobrew – Zig 로 작성된 가장 빠른 macOS 패키지 관리자입니다.

curl -fsSL https://nanobrew.trilok.ai/install | bash

그런 다음 터미널을 재시작하거나 출력된 export 명령을 실행하세요.

속도

Apple Silicon, macOS 15, 동일 네트워크 환경.
Cold = 새로 다운로드. Warm = 스토어에 캐시됨.

벤치마크brew (시간)nb (시간)속도 향상
tree / 0 의존성, cold8.99 s1.19 s7.6배 빠름
wget / 6 의존성, cold16.84 s11.26 s1.5배 빠름
ffmpeg / 11 의존성, warm~24.5 s3.5 ms7,000배 빠름

빠른 시작

$ nb install jq
==> Resolving dependencies...
[38ms]
==> Installing 1 package(s):
jq 1.7.1
==> Downloading + installing 1 packages...
 jq
==> Done in 1102.4ms
$ nb list
jq 1.7.1
$ nb update   # self‑update nanobrew
==> Updating nanobrew...
==> nanobrew updated successfully

작동 방식

  1. Resolve – 동시 API 호출을 통한 BFS 병렬 의존성 해결.
  2. Download – 단일 패스 스트리밍 SHA256 검증을 지원하는 네이티브 HTTP.
  3. Extract – SHA256을 키로 하는 콘텐츠 주소 지정 스토어에 압축 해제.
  4. Materialize – APFS clonefile 로 Cellar에 복제 — 복사 시 쓰기, 디스크 사용량 0.
  5. Link – 바이너리를 PATH에 심볼릭 링크하고 로컬 데이터베이스에 기록.

왜 빠른가

APFS clonefile

macOS 시스템 콜을 통한 복사 시 쓰기 물질화. 설치당 디스크 오버헤드 0.

모든 작업을 병렬화

다운로드, 압축 해제, 재배치, 의존성 해결이 모두 동시에 실행됩니다.

네이티브 HTTP

Zig std.http.Clientcurl 서브프로세스 호출을 대체합니다. 병당 프로세스가 하나 줄어듭니다.

네이티브 Mach‑O

바이너리 헤더에서 로드 명령을 직접 읽습니다. otool 불필요. 배치된 코드 서명.

콘텐츠 주소 지정 스토어

SHA256 키 기반 중복 제거로 재설치 시 다운로드와 압축 해제를 완전히 건너뜁니다.

단일 정적 바이너리

Ruby 런타임, 인터프리터 시작, 설정 파일 복잡성 없이 ~2 MB 크기의 단일 바이너리만 존재합니다.

0 조회
Back to Blog

관련 글

더 보기 »

손으로 더 나은 필기

주제를 연구하는 것은 어렵습니다. 왜냐하면 단순히 주어진 문제나 역사적 사건들의 원인과 결과를 맞추어 보려는 것뿐만 아니라, 당신은…