Giving up the dylib dream—이 글에서 제안하고 있는 “안정적인 crates.io 미러” (“a ‘stable’ crates.io mirror”) 아이디어를 듣자마자 Haskell의 Stackage가 떠올랐다.

Stackage는 Haskell의 패키지 저장소인 Hackage에서 상소 호환되는 패키지들을 엄선한 스냅숏(curated snapshots)을 제공한다. 이는 글에서 언급된 여러 문제들을 해결한다:

  1. 모든 패키지가 함께 빌드되는 것을 보장하는 장기 지원(LTS) 릴리스 제공.
  2. 호환 가능한 의존성의 최소 집합을 해결함으로써 “의존성 지옥”(dependency hell) 방지
  3. 혁신을 가능케 하면서도 생태계의 안정성도 창출
  4. 검증되고 호환 가능한 패키지 세트를 제공하여 배포판 메인테이너를 도움

Stackage 모델은 특히 Stack이라는 툴체인을 통해 Haskell 쪽에서 꽤 성공을 거두었는데, 생태계 안정성과 발전 사이의 균형을 맞추는 방식으로, 아마 Rust에서도 잘 작동할 수 있을 것이다.

0
1