跳至正文
Wener Notes

protobuf-es

约 1 分钟阅读
    • Apache-2.0, TS
  • protoc-gen-es
    • target - 默认为 js+dts
      • js - 生成 _pb.js
      • ts - 生成 _pb.d.ts
      • dts - 生成 _pb.d.ts
    • import_extension - import 的后缀
    • js_import_style
    • keep_empty_files
    • ts_nocheck
    • json_types
  • field 选项
    • jstype = JS_STRING
  • RPC ->
    • 支持 , gRPC, gRPC-Web
bash
# by pnpm/npm
pnpm add -D @bufbuild/protoc-gen-es
PATH=$(pnpm bin):$PATH protoc --es_out=. file.proto

# from source
go install github.com/bufbuild/protobuf-es/cmd/protoc-gen-es@latest
TypeScript
import { UserSchema } from "./gen/user_pb.js";
import { create, toBinary, toJson } from "@bufbuild/protobuf";

let user = create(UserSchema, {
  firstName: "Homer",
  lastName: "Simpson",
  active: true,
  locations: ["Springfield"],
  projects: { SPP: "Springfield Power Plant" },
  manager: {
    firstName: "Montgomery",
    lastName: "Burns",
  },
});

const bytes = toBinary(UserSchema, user);
const json = toJson(UserSchema, user);

关联信息

反向链接、本文链接的其他页面和外部资料。

站内链接

  • Connect
    笔记 · Connect

    https://connect.build/ · gRPC 竞品 · 兼容 gRPC, gRPC-Web 协议 · 支持 bi-streaming - 使用 gRPC 协议 · 支持 JSON- 和 binary-encoded Protobuf

参考资料

GitHub2 条
最近更新commit 359377d编辑