Take a look to protocol buffers. The implementation is not restricted only to java, c++, python. Other people are adding more languages... this gives you kind of "portability"
-Erlis On Thu, Oct 6, 2011 at 11:19 AM, Stephan Beal <sgb...@googlemail.com> wrote: > On Thu, Oct 6, 2011 at 4:47 PM, Erlis Vidal <er...@erlisvidal.com> wrote: > >> Do you know about "protocol buffers". I'm asking because I didn't know >> about them since recently. >> >> >> http://google-opensource.blogspot.com/2008/07/protocol-buffers-googles-data.html >> > > Never heard of them. Thanks for the link :). > > >> Could this help in order to allow binaries and improve the serialization >> performance? >> > > No idea just yet :). But i will take a look at that. > > One thing to remember is that JSON != JavaScript, meaning that if we > include ANY algorithms for binary data, ALL clients which want to use > fossil/json HAVE to implement those algorithms. e.g. if we decide on base64, > ALL client languages have to support it if they want to use those features > of the API. Because of this, i would like to stick "non-formatted" data > where possible, falling back to non-JSON-specified algos only when > absolutely necessary. > > My current thinking on binary is that it "probably should" be encoded the > same way one encodes binary in sqlite: X'aabbccdd', i.e. a simple list of > hex value pairs. The down-side is that it literally doubles the size, which > means that those fossil users which version-control 500MB files (which is > insane, IMO, but people do it) will have a memory cost of approximately 3x > that file's size when turning the artifact into JSON (1x for the original > copy and 2x for the X'...' encoding, and possibly even more for the > underlying sqlite statement to/from that data). Try to commit a 2GB file and > you can't - your machine (or the remote fossil server) will die with an OOM > error. The up-side is that en/decoding it is absolutely trivial - even an > absolute beginner could figure out how to encode/decode it and it can be > done in any language which supports binary data (e.g. NOT in shell code, but > in JS/Python/Perl/PHP/Java, etc). > > -- > ----- stephan beal > http://wanderinghorse.net/home/stephan/ > > _______________________________________________ > fossil-users mailing list > fossil-users@lists.fossil-scm.org > http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users > >
_______________________________________________ fossil-users mailing list fossil-users@lists.fossil-scm.org http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users