分享一个合并 protobuf 的小工具

https://github.com/joesonw/oneproto

用来把多个 protobuf 合并为一个(如果 package 不同,通过 nested message 来区别命名空间)

用来解决项目大了, protobuf 之间难免会产生相互引用. 但是放在不同的文件中, 维护性又更好, 于是产生了这个小工具

例子

user.proto

syntax = 'proto3';
option go_package = 'generated/proto;pb';

package example.com.users;

import "proto/group.proto";

message User {
    string id = 1;
    string name = 2;
    string email = 3;
    string password = 4;
    string created_at = 5;
    string updated_at = 6;
    repeated groups.Group groups = 7;
}

group.proto

syntax = 'proto3';
option go_package = 'generated/proto;pb';

package example.com.groups;

import "proto/user.proto";

message Group {
  string name = 1;
  repeated users.User users = 2;
}

产生的文件

syntax = 'proto3';
option go_package = 'generated/proto;pb';

package example.com;

message groups {
    message Group {
        string name = 1;
        repeated users.User users = 2;
    }

}

message users {
    message User {
        string id = 1;
        string name = 2;
        string email = 3;
        string password = 4;
        string created_at = 5;
        string updated_at = 6;
        repeated groups.Group groups = 7;
    }

}

 

原创文章,作者:mantou,如若转载,请注明出处:https://v2ez.com/676.html

(0)
mantoumantou
上一篇 2023年5月6日
下一篇 2023年5月28日

相关推荐

  • Komari 从入门到入土

    Komari 从入门到入土 <-前往本博客获取更好阅读体验-> 请务必务必前往博客,并在电脑端查看文章以获得最好体验,论坛平台对 Markdown 支持有限: http…

    2026年5月22日
  • 分享个bing壁纸项目

    https://github.com/androidmumo/bing这老哥5年前我就用了他做的第一版本,23年底发现更新了果断部署前段时间改了下代码采集了2010年到现在的壁纸数…

    2025年4月5日
  • 如何查看并干净卸载所有容器和docker

    1.查看所有运行的容器 docker ps -a 2.停止所有容器,并删除所有容器 docker stop $(docker ps -q) & docker rm $(do…

    代码程序 2021年10月3日
  • 如何在 Debian 11 上安装 PHP Composer

    要在 Debian 11 上安装 PHP Composer,您需要 Linux shell 和 root 访问权限。如果您使用 Linux 作为主要操作系统,或者您已经安装了在 D…

    2023年10月19日
  • linux综合脚本集成器

    这 Bash 脚本用于监测服务器的网络流量使用情况,并根据预设的阈值进行操作。它首先显示当前的接收和发送流量,然后询问用户是否设置流量阈值。用户可以选择设置阈值,并输入所需的阈值(…

    2024年4月29日
  • Azure双栈网络及纯IPV6教程

    前情提要: 采用Cli或者第三方API面板开机可实现双栈网络,本教程为Azure网站手动配置,可避免使用API被风控。我用于演示的服务器是 基本 动态 IPV4 的香港机器,其它情…

    2024年3月6日
  • 在 GitHub 中隐藏自己的邮箱地址

    如何找到Github用户的邮箱 在介绍隐藏前首先咱们要知道,如何查看开发者的邮箱。 情况一 :对方主页上写了邮箱 这种最简单,大部分的开发者都会在Github主页留下自己的联系邮箱…

    2024年9月20日
  • 全自动优选香港阿里云的CloudFlare优选反代Cname

    开发环境 代码由Grok替我修改完成 语言为Pyhton 脚本由我自己提需求和反复测试完成我自己是不会写代码的 但我脑海里有程序最终效果的画面我会测试 会找bug 承认自己不会写代…

    2025年1月4日
  • 利用cloudflare的workers反向代理onemanager

    由于在国内访问巨硬的onedrive,速度实在是不太理想,大多数地区下载可能就仅仅比某度盘好那么一点点,而世纪互联又太贵(tj什么时候翻车?),所以只好用上cf的workers来给…

    2021年4月4日
  • 如快-跨平台启动器

    之前一直在 mac 端使用 Raycast 这款启动器,觉得挺好用也挺好看的,特别是里面的快捷链接功能,非常的好用。 后面每次用自己的 Windows 的时候,总是感觉少了点什么,…

    2025年6月30日

发表回复

登录后才能评论