arangodb / velocypack

A fast and compact format for serialization and storage
Other
419 stars 40 forks source link

Add VPack to Comparison of data serialization formats on Wikipedia #7

Open Simran-B opened 8 years ago

Simran-B commented 8 years ago

It deserves to be mentioned here:

https://en.wikipedia.org/wiki/Comparison_of_data_serialization_formats

@neunhoef: Please validate below template and fill in the gaps (IDL/API/zero-copy)

|-
| [[VelocyPack]]
| [[ArangoDB]]
| {{n/a}}
| {{no}}
| [https://github.com/arangodb/velocypack/blob/master/VelocyPack.md VelocyPack (VPack) Version 1 Specification]
| {{yes}}
| {{no}}
| {{partial}}{{ref|vpack1refs|g}}
| {{?Schema-Interface description language?}}
| {{?Standard APIs?}}
| {{?Supports Zero-copy operations?}}

And the note regarding references, to be added below the table and the other notes:

*g. {{note|vpack1refs}}VelocyPack offers a value type to store pointers to other VPack items. It is allowed if the VPack data resides in memory, but not if stored on disk or sent over a network.
neunhoef commented 8 years ago

Everything you have put there is OK, as far as I see. So far, there is no Schema-Interface description language. So far, there are no standard APIs, only a reference implementation. However, other formats say "yes for C++, etc. " here. We might as well say "C++ API reference implementation". For zero-copy operations, we simply say yes. Not entirely sure what they mean there.

Simran-B commented 8 years ago

Done. Also added VPack to the table a little further down (a bit wonky):

https://en.wikipedia.org/wiki/Comparison_of_data_serialization_formats#Comparison_of_binary_formats

I believe small integers are not zero-copy, because they need to be loaded into a buffer in order to subtract 0x29 or 0x39 respectively to get the actual value.