본문 바로가기

좋아하는 것_매직IT/96.IT 핫이슈

Connect-Web : 브라우저에서 RPC 호출하는 TypeScript 라이브러리 (buf.build)

반응형

Connect-Web : 브라우저에서 RPC 호출하는 TypeScript 라이브러리 를 소개합니다.

홈페이지에서는 아래와 같이 설명하고 있군요..
Connect-Web: It's time for Protobuf and gRPC to be your first choice in the browser

한마디로 정리하자면, 브라우저에서 RPC 호출하는 TypeScript 라이브러리 라고 머릿속에 넣어두시면 되고요..

문서를 뒤지다가.. 설치부분을 봤는데요..
Mac, Linux, Windows 모두 지원하는 군요..

참고로, 바이너리로 설치와 제거에 대해서는 아래와 같이 진행하시면 되고요..

Binary#

The binary is all that is needed to get started.

To install just the buf binary to /usr/local/bin for version 1.7.0:

# Substitute BIN for your bin directory.# Substitute VERSION for the current released version.BIN="/usr/local/bin" && \VERSION="1.7.0" && \  curl -sSL \    "https://github.com/bufbuild/buf/releases/download/v${VERSION}/buf-$(uname -s)-$(uname -m)" \    -o "${BIN}/buf" && \  chmod +x "${BIN}/buf"
Copy

/usr/local/bin should be on your $PATH.

To uninstall from /usr/local/bin:

# Substitute BIN for your bin directory.BIN="/usr/local/bin" && \  rm -f "${BIN}/buf"

도커 이미지도 사용할 수 있군요...

Using the Docker image#

Buf ships a Docker image (bufbuild/buf) that enables you to use buf as part of your Docker workflow.

For example, you can run buf lint with this command:

$ docker run --volume "$(pwd):/workspace" --workdir /workspace bufbuild/buf lint
Output
google/type/datetime.proto:17:1:Package name "google.type" should be suffixed with a correctly formed version, such as "google.type.v1".
그리고, Connect-Web의 특징을 간략하게 정리하자면 아래와 같고요..
  • 구글의 grpc-web 은 TS지원이 약하고, JSON 및 ECMAScript 모듈 지원이 안되고, 생성된 코드가 10년된 Java같음
  • Connect-web은 손으로 작성한 듯한 REST 클라이언트 같은 코드를 생성
  • 2개의 RPC 프로토콜 지원 : gRPC-Web 과 Connect의 자체 프로토콜
  • Connect 프로토콜은 간단한 POST-only 프로토콜
    • HTTP/1.1 또는 HTTP/2 에서 동작
    • gRPC 와 gRPC-Web의 좋은 부분만 가져옴
  • Promise 및 Callback기반 API 동시 지원
    • React, Angular, Svelte 등과 잘 연동
  • 데모를 grpc-web 에서 변경해보니 번들 사이즈가 80% 감소

그외에 자세한 사항은 아래 홈페이지를 참고하시면 될것 같네요..

오늘의 블로그는 여기까지고요..
항상믿고 봐주셔서 감사합니다. 

728x90
300x250