protocolBuffer 说明

http://www.cnblogs.com/shrimps/archive/2008/11/06/1327988.html
近期手上项目需要选择一配置信息保存方案,现就XML、JSON、Protocol Buffer(以下简称PB)、Lua做一次横向对比。首先要说明的是Lua严格来说属于嵌入式脚本语言,而XML、JSON、PB都属于数据交换格式,两者之间不属于同类别,按理说不应该放在一起比较,但是就项目需求来讲,Lua也能够实现配置信息保存。故而将Lua和XML、JSON、PB放在一起做横向对比。

  XML | JSON | PB | Lua
数据结构支持 | 复杂结构 | 简单结构 | 较复杂结构 | 复杂结构
数据保存方式 | 文本 | 文本 | 二进制 | 文本
数据保存大小 | 大 | 一般 | 小 | 一般
解析效率 | 慢 | 一般 | 快 | 稍快
语言支持程度 | 非常多 | 多 | C++/Java/Python | 多
开发难度?繁琐? | 繁琐 | 简单 | 简单 | 相对繁琐
学习成本 | 低 | 低 | 低 | 高
适用范围 | 数据交换 | 数据交换 | 数据交换 | 数据保存及脚本处理

最终我的选择为Lua,理由如下:
首先配置文件可能很复杂;其次需要脚本功能;Lua性能较好;语言支持程度好,本项目除了用c++做主要开发外,可能还有大量辅助软件开发,就要求快速开发,性能适用就好,因此可能会选择其他语言做快速开发。而lua的多语言支持还可以。


公司打算用protocolBuffer。
现在讲一下protocolBuffer的安装。
1.在 http://code.google.com/p/protobuf/downloads/list 下载
protobuf-2.3.0.zip
protoc-2.3.0-win32.zip

解压protoc-2.3.0-win32.zip,里面有个protoc.exe文件,配置到path
dos下执行:protoc --version 查看版本。

解压protobuf-2.3.0.zip 将上面的那个protoc.exe文件拷贝到src文件夹中。
protobuf里没有jar包,要自己编译,要用到maven,先下载maven,配置bin目录到path。
然后dos下进入protobuf-2.3.0\java 目录,执行:
mvn install
mvn package

这时maven自动下载依赖包,编译并打包jar。
在protobuf-2.3.0\java\target中生成protobuf-java-2.3.0.jar

官方的例子。
在dos的protobuf\protobuf-2.3.0\examples目录下,执行:protoc --java_out=. addressbook.proto ,这时会根据proto生成对应的AddressBookProtos.java文件。
具体的proto文件的写法,官方有详细文档。

在eclipse下建立项目Test_protobuf,考依赖包protobuf-java-2.3.0.jar,examples目录下的AddPerson.java,ListPeople.java和刚生成的AddressBookProtos.java 3个测试文件。
执行Addperson类,按提示输入信息,会生成 addr.dat文件(F5一下)。
执行Listperson类,看到刚才输入的信息。


官方文档
http://code.google.com/intl/zh-CN/apis/protocolbuffers/docs/javatutorial.html
http://code.google.com/intl/zh-CN/apis/protocolbuffers/docs/reference/java/index.html
http://code.google.com/intl/zh-CN/apis/protocolbuffers/docs/proto.html
http://code.google.com/intl/zh-CN/apis/protocolbuffers/docs/reference/java-generated.html
http://code.google.com/intl/zh-CN/apis/protocolbuffers/docs/encoding.html

---------------------------------------------------------------------
maven安装
去官网下载包
1. 安装
a. 安装jdk, 设置环境变量JAVA_HOME, 把JAVA_HOME/bin加入环境变量PATH中
b. 安装maven, 解压缩,然后把${maven_home}/bin加入环境变量PATH中。 ${maven_home}为maven的目录。
c. 把settings.xml文件拷贝到${user.home}/.m2目录下。
d. 修改hosts文件或dns, repos.eff.com 192.168.0.27。

2. 说明
settings.xml文件中描述了repository的位置, ${user.home}/.m2为本地cache。当运行mvn命令时,
mvn会自动从本地cache或远程repository下载需要的类库。


b. mvn clean. 清除classes, jar, test report等生成的文件。
c. mvn compile. 编译main/java及main/resources。
d. mvn test. 编译后运行junit test.
缺省包括以下
**/*Test.java
**/Test*.java
**/*TestCase.java
不包括以下
**/Abstract*Test.java
**/Abstract*TestCase.java
e. mvn package。 编译运行test后,打包。
f. mvn install。 把编译好的jar install到本地repository cache中。
g. mvn deploy。把编译好的jar deploy到文件描述的路径中。
h. mvn eclipse:eclipse。根据pom文件改写.project和.class文件,下载依赖包,并加入m2_repo参数
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
答案如下: 1. 将 protobuf 包降级至 3.20.x 或更低版本。 降级 protobuf 包的目的可能是为了兼容旧版本或解决与其他依赖包之间的兼容性问题。要降级 protobuf 包,可以通过以下几个步骤来实现: 首先,了解当前所使用的 protobuf 版本,以及需要降级到的目标版本。然后,根据项目所使用的包管理工具(如 pip、npm 等),将 protobuf 包的版本号更新为目标版本号。 例如,在使用 pip 管理 Python 包的情况下,可以运行以下命令来降级 protobuf 包: ``` pip install protobuf==3.20.x ``` 这将会将 protobuf 包降级至指定的版本。 2. 设置 protocol_buffer。 如果需要设置 protocol_buffer,可以有不同的具体操作,具体设置过程可以根据具体环境和需求进行。 protocol_buffer(简称为 Protobuf)是一种用于序列化结构化数据的机制,通常用于在不同语言或不同平台之间传输数据。要设置 protocol_buffer,需要参考所使用的编程语言或框架的文档或手册,查找设置相关选项或配置方法。 例如,对于 Python,可以使用 Protobuf 官方提供的 python 库来设置 protocol_buffer。此库通常可以通过 pip 等包管理工具进行安装。 在设置 protocol_buffer 之前,可以先确定所需的配置选项和参数。然后,根据官方文档中的设置说明,按照步骤进行相关配置。 以 Python 为例,可以按照以下方式设置 protocol_buffer: 首先,导入所需的库和模块。例如: ``` import protocol_buffer ``` 然后,根据具体需求,使用相关API或方法进行配置。例如: ``` protocol_buffer.enable_logging() protocol_buffer.set_default_timeout(5000) ``` 最后,根据具体应用场景,将 protocol_buffer 与其他组件或功能进行整合和使用。 需要注意的是,上述设置方式仅为示例,实际设置过程可能因编程语言、框架或使用场景而有所差异。因此,具体设置 protocol_buffer 的方法最好参考相关文档或资源进行。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值