Skip to content
This repository has been archived by the owner on Aug 18, 2022. It is now read-only.

Drvi/ProtocolBuffers.jl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

64 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ProtocolBuffers.jl

This repository is now archived, its contents were absorbed by the original Julia package, ProtoBuf.jl, and all future work will happen there.

This is a Julia package that provides a compiler and a codec for Protocol Buffers.

Protocol Buffers are a language-neutral, platform-neutral extensible mechanism for serializing structured data.

Example

Given a test.proto file in your current working directory:

syntax = "proto3";

message MyMessage {
    sint32 a = 1;
    repeated string b = 2;
}

You can generate Julia bindings with the protojl function:

using ProtocolBuffers
protojl("test.proto", ".", "output_dir")

This will create a Julia file at output_dir/test_pb.jl which you can simply include and start using it to encode and decode messages:

include("output_dir/test_pb.jl")
# Main.test_pb

io = IOBuffer();

e = ProtoEncoder(io);

encode(e, test_pb.MyMessage(-1, ["a", "b"]))
# 8

seekstart(io);

d = ProtoDecoder(io);

decode(d, test_pb.MyMessage)
# Main.test_pb.MyMessage(-1, ["a", "b"])

Acknowledgement

We'd like to thank the authors of the following packages, as we took inspiration from their projects:

  • We used Tokenize.jl as a reference when implementing the Lexer/Parser.
  • We used ProtoBuf.jl as a giant shoulder to stand on:).

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages