Where communities thrive

  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
Repo info
BJ Neilsen
you’re still encoding the submessage either way, just in two steps instead of one
Tom Robinson
and the other difference would be you'd have to manually serialized/deserialize the documents
BJ Neilsen
I’m pretty sure bytes and messages are encoded as varints, so they should be almost identical
R. Tyler Croy
Doesn't look like i've missed all that much
gitter is weird about messages
Tamir Duberstein
@localshred did i misunderstand you on localshred/protobuf#204
Vaibhav Yenamandra
I recently forked the repo, can someone confirm if the current rspec output is this: http://puu.sh/cRHdP/ce2333bd7a.txt
Vaibhav Yenamandra
I also wanted to add the varint C extension to Protobuf::Field::VarintField, any thoughts on if this might help out?
Manthan Mallikarjun
I am new to protobufs
I want to parse a Counter Strike Demo File and apparently its made using protobufs
and I dont know where to start
The extension of a demofile is .dem and not .proto which is confusing me a bit
Manthan Mallikarjun
Any help/pointers would be appreciated
R. Tyler Croy
@nahtnam i'm assuming you don't have the original protobuf schema file?
Manthan Mallikarjun
@rtyler no, but is it required? If it is, I'm sure I can find one online because a few other sites also parse protobufs files
R. Tyler Croy
@nahtnam well, reverse engineering a serialized protobuf is possible but incredibly tedious
without the schema files deserializing and working with protobufs are pretty tedious
Manthan Mallikarjun
@rtyler is it supposed to be a .proto file?
Benoit Tigeot
any tips ? specialy for package name ?
Brandon McCulligh
This message was deleted
Hey guys, Is there a method which lets me parse the output of to_json on a protobuf object back to the protobuf object? Best regards!
Mikkel Hvilshøj Funch

Hello, I have a question regarding best practices. I have a proto which need to be able to take a list questions, and all questions are different protos, and not all questions are returned everytime, so I have a field

repeated any questions

So in my code to figure out which question it is I am looking at, I check a string all the questions have. But it seems to me like there would be a better way to handle that, anybody have some good idea? =)

hey guys! is there a way to validate parameter in protobuf messages? like NOTNULL SIZE(min = 2, max = 14)
Norman Link
@MikkelFunch What you need is a oneof
Alessandro D'Armiento
I am new to protobuf, I would like to ask a question
In my solution, I have a generic parser object which has to contains the rules to deserialize the payload I receive. Until now, I only supported CSV and JSon, so every Parser instance was implementing its own json (or csv) schema. This way I could deserialize many different objects with 1 class.
Now I want to extend the support to Protobuf, and I defined a Parser which contains the protobufOuterClass, so when it receives a serialized payload is able to deserialize it and return me a result which is a standard map I create from the deserialized object
Is it possible to create many different OuterClasses which extends a common interface in order to support with this approac different protobuf with my parser class?
Alessandro D'Armiento
Here's is an example of what I would need
Aleksandar Kostadinov
Hi, how do I add repeated fields into a protobuf?
Aleksandar Kostadinov
I figured - I just add them as an array.
Hi everyone. When I try and access some nested fields inside the main protobuf I get nothing... even if I deconstruct it. However when I std::cout << ProtoElem.Utf8DebugString() << std::endl; ... I can clearly see data in there.
CST : connection_id: "responses$StatResp"
2 {
1 {
9: 0x3736353433323144
2: 4224
3 {
1: ""
I can see there is data in there... but destructing in multiple ways still do not get me those values.. for instance "2" is suppose to be 4224 but I get 0
I am using C++ ^^

Hey all,
"message":"Unable to parse the event wrapper: com.google.protobuf.InvalidProtocolBufferException: While parsing a protocol message, the input ended unexpectedly in the middle of a field. This could mean either that the input has been truncated or that an embedded message misreported its own length.

Been getting this error. The message has two fields of type com.google.protobuf.any.Any. I would like to parse the ArrayByte but keeps failing due to this. There is no place length is being set.

Please assist. Thanks in advance


syntax = "proto3";

message request {
object message = {"source": [1,2,3,4,5], "target": [1,2,3,4,5]}

message response {
object message = {"source": [1,2,3,4,5], "target": [1,2,3,4,5]}

service fetch {
rpc calculate (request) returns (response) {}

I have data input format mentioned up there.
Can anyone write me a .proto file which will accept such data json from client, process it and send it back in the same format?

Could anyone please help me with this error I get inside my generated protobuf source : This output is from gdb ->
#0  0x00007ffff618483b in google::protobuf::internal::GenericTypeHandler<ColumnValue>::Delete (value=0x72622e6d6f632e00, arena=0x0) at 
#1  0x00007ffff6183941 in google::protobuf::internal::RepeatedPtrFieldBase::Destroy<google::protobuf::RepeatedPtrField<ColumnValue>::TypeHandler> (this=0x7fffffffd270)
at /usr/local/include/google/protobuf/repeated_field.h:1492
#2  0x00007ffff61824fc in google::protobuf::RepeatedPtrField<ColumnValue>::~RepeatedPtrField (this=0x7fffffffd270, __in_chrg=<optimized out>) at /usr/local/include/google/protobuf/repeated_field.h:1952
#3  0x00007ffff62200b6 in Row::~Row (this=0x7fffffffd260, __in_chrg=<optimized out>) at common.pb.cc:3791
static inline void Delete(GenericType* value, Arena* arena) {
    if (arena == NULL) {
      delete value;
This is the line of code that makes the program crash^^ Could this be because the "GenericType" I pass in is not generic?
hello ~ should i put protobuf message type in a unique_ptr when using stl vector? ^^
This message was deleted
    zdb::ResultSet result = prep_stmt.executeQuery();

    std::vector<std::unique_ptr<IndexVector>> ret; // IndexVector is a protobuf message type, sizeof ... = 72

    while (result.next()) {
        std::unique_ptr<IndexVector> indexVector {std::make_unique<IndexVector>()};
        int64_t poiId = result.getLLong(1);
        int64_t pictureId = result.getLLong(2);
        bool isDel = result.getInt(3) != 0;


    return ret;