【笔记】Protobuf的应用
前言
Protobuf在各种编程语言中的应用
定义Protobuf
1 | syntax = "proto3"; |
Java
生成Java代码
1 | protoc --java_out=. User.proto |
引入依赖
1 | <dependency> |
序列化
1 | UserOuterClass.User user = UserOuterClass.User.newBuilder() |
反序列化
buf:二进制数据
1 | UserOuterClass.User user = UserOuterClass.User.parseFrom(buf); |
Python3
生成Python代码
1 | protoc --python_out=. User.proto |
下载依赖
1 | pip install protobuf |
引入依赖
1 | from User_pb2 import User |
序列化
1 | user = User() |
反序列化
buf:二进制数据
1 | user = User() |
Nodejs
生成JS代码
1 | npm install -g protoc-gen-js |
下载依赖
1 | npm install google-protobuf |
引入依赖
1 | const User = require("./User_pb"); |
序列化
1 | const user = new User.User(); |
反序列化
buf:二进制数据
1 | const user = User.User.deserializeBinary(buf); |
C#
生成C#代码
1 | protoc --csharp_out=. User.proto |
引入依赖
1 | <ItemGroup> |
序列化
1 | User user = new User |
反序列化
buf:二进制数据
1 | User user = User.Parser.ParseFrom(buf, 0, bytesRead); |