Mircea, Adrian and I had an IRC chat on ProtoStream and ProtoStuff.
check out
http://transcripts.jboss.org/channel/irc.freenode.org/%23infinispan/2013/...
starting at 11:00 and finishing at 12:30
A short summary of what has been discussed:
- ProtoStream is a good cross-platform solution but
- complicated for the simple pure Java case
- encourages a technical superclass (EJB 2 !!!!!)
- ProtoStuff convention + annotation based approach
https://code.google.com/p/protostuff/wiki/ProtostuffRuntime is nice
for the pure Java case
- ProtoStuff is many things and has a non ProtoBuf compliant format for
cycle ref and polymorphism
- ProtoStream supports unknown fields (future version of a schema),
ProtoBuf does not
- we could build a convention based solution atop ProtoStream
- assuming UnknownFieldSet and BaseMessage are optional
- using (cross platform) conventions
- with metadata to go beyond conventions (annotation, programmatic
API, XML...)
public long size; //uses fixed64 by default
@PSType(UINT64) long size; //override protobuf type
- Infinispan will/could(?) have a repo of schema that can be queries
- we are talking about how the schema is resolved / generated
- what we send through the wire is independent of the Proto*
A ProtoBuf vs ProtoStream comparison points
https://gist.github.com/mmarkus/5999646
Emmanuel