美文网首页
Protobuf系列-1.安装

Protobuf系列-1.安装

作者: AlstonWilliams | 来源:发表于2017-11-10 09:09 被阅读259次

    由于感觉官网上的介绍也比较模糊,所以在自己操作成功后,就把它记录下来.

    Protobuf介绍

    官网上介绍的很简单,就是一个Google内部通用的数据交换格式.我们也知道一些数据交换格式,比如,JSON,XML等.

    那么为什么Google还要提出Protobuf这种格式呢?因为JSON,XML等格式虽然是对人类非常友好的,但是效率并不高.

    简单来说,它就是一种数据交换格式.

    Protobuf编译器安装

    由于在使用Protobuf时,是需要我们编写一个proto文件,然后通过一个编译器将其编译成我们需要的格式的文件,比如,对我来说,就要编译成Java格式的文件.

    所以,我们需要安装这么一个编译器.

    我们来这里下载一个protoc-version-your_platform.zip文件,然后解压并添加到PATH这个环境变量里就行了.

    然后安装完成之后,通过protoc --version,能够输出对应的版本,就表示成功了.

    Protoc的使用

    我们上面说过,我们需要写一个通用的proto文件,然后通过Protoc编译器编译成我们想要的语言的文件,然后再操纵这些文件.

    那我们如何来做呢?

    首先,我们编写一个proto文件,

    syntax = "proto3";
    
    package com.project;
    
    option java_package = "com.projecthome";
    option java_multiple_files = true;
    option java_outer_classname = "AddressBookProtos";
    
    message Person {
    
        string name = 1;
        int32 id = 2;
        string email = 3;
    
        enum PhoneType {
            MOBILE = 0;
            HOME = 1;
            WORK = 2;
        }
    
        message PhoneNumber {
    
            string number = 1;
            PhoneType type = 2;
    
        }
    
        repeated PhoneNumber phones = 4;
    
    }
    
    message AddressBook {
    
        repeated Person people = 1;
    
    }
    

    最上面的syntax = "proto3"表示我们这个proto文件的版本,目前有proto2proto3两种版本.

    这两种版本的语法,并不完全一样,proto3的比proto2更简洁,你在下载protoc时,也要注意跟这个版本对应.

    关于这两种版本的细节,请移步这里

    然后,我们可以通过protoc --java_out=${your_output_directory} your_proto_file来编译这个proto文件.我们可以看到,我们编译成的是Java文件.

    编译完成后,在${your_output_directory}/com/projecthome下面,可以看到,生成了几个Java文件.

    总结

    在这篇文章中,我们介绍了如何安装protoc以及编译proto文件.

    关于如何在项目中使用这些编译出的文件,我们会在下一篇文章中介绍.

    相关文章

      网友评论

          本文标题:Protobuf系列-1.安装

          本文链接:https://www.haomeiwen.com/subject/ffbvmxtx.html