위키득계정 ↗
기술

Buck2

Buck2기술
프로젝트 계보
Buck의 후속
주요 역할
다언어 빌드
확장 수단
언어 규칙과 BXL
원격 실행
공통 Remote Execution API
Buck2는 여러 언어의 빌드와 의존 관계를 하나의 체계에서 다루는 빌드 시스템이다. Buck의 후속 프로젝트로 개발됐으며 언어별 규칙 확장과 빌드 그래프 조회, 원격 실행을 지원한다.

언어 사이의 의존 관계

각 언어의 도구를 단순히 따로 호출하는 것보다 서로 다른 언어의 구성 요소가 연결되는 관계를 표현하는 데 초점을 둔다. 핵심 실행기는 언어에 독립적이며 사용자가 언어 지원 규칙을 확장할 수 있다. 여러 구성 요소의 빌드와 테스트를 공통 도구에서 다룬다.

원격 실행과 입력 선언

원격 실행을 사용할 때 규칙은 필요한 입력을 정확히 선언해야 한다. 빠진 입력이 있으면 빌드가 실패하도록 격리해 숨은 환경 의존성을 줄인다. 로컬 전용 단계는 같은 격리를 제공하지 않으므로 모든 실행 방식이 동일하게 밀폐돼 있다고 볼 수는 없다.

그래프를 활용하는 확장

BXL은 빌드 그래프를 살피고 동작을 실행하는 확장 기능이다. 언어 서버나 컴파일 데이터베이스 같은 도구를 연결할 때 활용할 수 있다. Bazel과 같은 원격 실행 API를 사용하는 외부 실행 시스템과 연동할 수 있으며 실제 사용 언어와 도구 체인 지원은 선택한 규칙에 달려 있다.

관련 문서

Pants / Bazel / Starlark / 빌드 시스템 / 컴파일러 / 지속적 통합