How can be an array of double (1D) stored using protocol buffer? What about multi-dimensional (2D or 3D) dense arrays?
An array of double would be best stored via
repeated double foo = 5 [packed=true];
repeated
makes it act as a list, allowing multiple items; packed
avoids a header per item.
There is no direct support for rectangular (or higher) arrays in protobuf. The closest is to store something like:
repeated innerType foo = 5; // note, can't be "packed"
message innerType {
repeated double foo = 1 [packed=true];
}
this is broadly akin to a jagged array, but with an element between each tier.