buf
CLI는 프로토콜 버퍼 작업을 위한 최고의 도구입니다. 다음을 제공합니다:
Homebrew(macOS 또는 Linux)를 사용하여 buf
설치할 수 있습니다.
brew install bufbuild/buf/buf
이것은 다음을 설치합니다:
buf
, protoc-gen-buf-breaking
및 protoc-gen-buf-lint
바이너리다른 설치 방법은 다음 내용이 포함된 공식 문서를 참조하세요.
buf
설치buf
설치buf
Docker 이미지로 사용Buf의 도움말 인터페이스는 명령과 플래그에 대한 요약을 제공합니다.
buf --help
보다 포괄적인 사용법 정보는 Buf의 문서, 특히 다음 가이드를 참조하세요.
buf breaking
buf build
buf generate
buf lint
buf format
buf registry
(BSR 사용용) 우리는 CLI의 특정 주요 버전 내에서 주요 변경 사항을 절대로 적용하지 않습니다. buf
v1.0에 도달한 후에는 v2.0까지 주요 변경 사항이 없을 것으로 예상됩니다. 그러나 우리는 v2.0을 출시할 계획이 없기 때문에 buf
CLI를 절대로 깨뜨리지 않을 것입니다.
이 주요 변경 정책은
buf beta
게이트 뒤에 있는 명령에는 적용되지 않으며buf beta registry
와 같은 명령에 대한 주요 변경 사항을 예상해야 합니다. 그러나 해당 명령이나 플래그가 베타 버전에서 승격되면 정책이 적용됩니다.
Buf의 목표는 REST/JSON 중심의 현재 API 개발 패러다임을 스키마 중심 패러다임으로 바꾸는 것입니다. IDL을 사용하여 API를 정의하면 REST/JSON에 비해 많은 이점을 제공하며 Protobuf는 업계에서 가장 안정적이고 널리 채택되는 IDL입니다. 우리는 처음부터 새로운 IDL을 만드는 대신 널리 신뢰할 수 있는 기반을 구축하기로 결정했습니다.
그러나 기술적 장점에도 불구하고 실제로 Protobuf를 사용하는 것은 필요한 것보다 오랫동안 더 어려웠습니다. Buf CLI와 BSR은 이를 영원히 바꾸고 Protobuf를 서비스 소유자와 클라이언트 모두가 신뢰할 수 있고 사용하기 쉽게 만들기 위한, 즉 현대적인 Protobuf 생태계를 만들기 위한 노력의 초석입니다.
우리는 buf
CLI와 BSR을 점진적으로 개선할 계획이지만 그러한 생태계를 위한 기본 기반이 이미 갖춰져 있다고 확신합니다.
BSR(Buf Schema Registry)은 Protobuf API를 관리하기 위한 SaaS 플랫폼입니다. .proto
파일뿐만 아니라 원격 플러그인도 포함하여 모든 Protobuf 자산에 대한 중앙 집중식 레지스트리와 단일 정보 소스를 제공합니다. BSR은 직관적인 브라우저 UI를 제공하지만 buf
하면 Protobuf 소스를 레지스트리에 푸시하고 사용자 및 저장소를 관리하는 등 대부분의 BSR 관련 작업을 명령줄에서 수행할 수 있습니다.
BSR은
buf
사용할 필요가 없습니다. 우리는 모든 Protobuf 사용자가 사용할 수 있는buf
CLI의 핵심 기능을 만들었습니다.
buf
의 핵심 기능은 대부분의 사용 사례를 포괄하지만, 우리는 특별한 경우를 포괄하는 몇 가지 고급 기능을 포함했습니다:
.proto
파일을 빌드합니다. 즉, 더 이상 --proto_paths
수동으로 지정할 필요가 없습니다. 그러나 파일 검색을 비활성화해야 하는 경우 CLI 플래그를 통해 수동으로 .proto
파일을 지정할 수 있습니다.buf
기본적으로 각 Lint 오류 및 주요 변경 사항에 대해 file:line:column:message
형식으로 정보를 출력하지만 JSON, MSVS, JUnit 및 Github Actions 출력을 선택할 수도 있습니다.buf
의 세분화된 오류 출력에 의해 구동되는 편집기 통합입니다 . 우리는 현재 Vim과 Visual Studio Code, JetBrains IDE(예: IntelliJ 및 GoLand)에 대한 Linting 통합을 제공하고 있지만 앞으로는 Emacs와 같은 다른 편집기도 지원할 계획입니다..proto
파일뿐만 아니라 tarball 및 ZIP 파일, 원격 Git 리포지토리 및 사전 빌드된 이미지 파일과 같은 광범위한 기타 입력에 대해서도 Linting 및 주요 변경 사항 감지와 같은 작업을 수행할 수 있습니다.protoc
보다 상당히 빠릅니다. 이를 통해 거의 즉각적인 피드백이 가능하며 이는 편집기 통합과 같은 기능에 특히 중요합니다. buf
설치한 후에는 CLI의 핵심 기능에 대한 광범위하면서도 실제적인 개요를 제공하는 CLI 튜토리얼을 완료하는 것이 좋습니다. 투어를 완료하는 데 약 10분이 소요됩니다.
둘러보기를 완료한 후 특정 관심 영역에 대한 나머지 문서를 확인하세요.
Protobuf, 모범 사례 등에 대한 도움말과 토론을 보려면 Slack에 참여하세요.
Buf CLI에 대한 업데이트를 보려면 GitHub에서 이 리포지토리를 따르세요.
기능 요청, 버그 또는 기술적인 질문이 있는 경우 [email protected]로 이메일을 보내주세요. 일반적인 문의사항이나 향후 기능 베타에 포함하려면 [email protected]로 이메일을 보내주세요.