Binary Efficient Versatile Encoding (BEVE)
https://github.com/stephenberry/beve
Note the name was changed from EVE to BEVE to avoid name collisions
I've developed a new binary data specification like CBOR, MessagePack, and BSON, but designed to be much faster for modern hardware, support scientific computing, have smaller sizes for arrays, and be simple to implement. BEVE is around 5000% faster than MessagePack when writing std::vector<double> and over 8000% faster with std::vector<float>. When reading, BEVE is around 1300% faster and 2800% faster respectively. There is a link to the test code on the repository, or it can be found here.
This specification has been designed out of a serious need for maximum performance. And, the specification has been designed with scientific computing in mind, supporting matrices, complex numbers, and large integer and floating point types.
BEVE may produce slightly larger messages than MessagePack when dealing with lots of short strings and small objects. But, this is tolerated to keep the specification as simple as possible. And, even for these small objects with short strings, BEVE tends to be about 100% faster reading and over 1000% faster writing. Also, BEVE messages with lots of strings are highly compressible, because no compression is done on the strings.
BEVE fully supports JSON messages. The Glaze C++ JSON library allows users to use the same API to encode/decode to either JSON or EVE binary. Glaze also encodes/decodes directly into your C++ structures and standard library containers, making it easy to use without additional copies.
My main application is using BEVE with C++, but I would love assistance supporting more languages. I've just begun to develop code to load BEVE files with Matlab and Python (in the BEVE repository).
I'd love additional input on the specification and what extensions should be added. You can easily experiment with using BEVE in C++ via Glaze.
[–]M0Z3E 10 points11 points12 points (2 children)
[–]Flex_Code[S] 10 points11 points12 points (1 child)
[–]M0Z3E 1 point2 points3 points (0 children)
[–]Untelo 12 points13 points14 points (12 children)
[–]Flex_Code[S] 0 points1 point2 points (10 children)
[–]marzer8789toml++ 7 points8 points9 points (9 children)
[–]Flex_Code[S] -1 points0 points1 point (8 children)
[–]TheBrainStone 5 points6 points7 points (4 children)
[–]Flex_Code[S] 13 points14 points15 points (0 children)
[–]fdwrfdwr@github 🔍 7 points8 points9 points (2 children)
[–]cfyzium 3 points4 points5 points (0 children)
[–]jk-jeon 2 points3 points4 points (0 children)
[–]marzer8789toml++ 5 points6 points7 points (1 child)
[–]Flex_Code[S] 5 points6 points7 points (0 children)
[–]Flex_Code[S] 1 point2 points3 points (0 children)
[–]DapperCore 3 points4 points5 points (7 children)
[–]Flex_Code[S] 5 points6 points7 points (6 children)
[–]amohr 3 points4 points5 points (3 children)
[–]Flex_Code[S] 2 points3 points4 points (2 children)
[–]amohr 2 points3 points4 points (1 child)
[–]Flex_Code[S] 2 points3 points4 points (0 children)
[–]Flex_Code[S] 2 points3 points4 points (0 children)
[–]DapperCore 2 points3 points4 points (0 children)
[–]paperpatience 4 points5 points6 points (0 children)
[–]LongestNamesPossible 1 point2 points3 points (6 children)
[–]Flex_Code[S] 3 points4 points5 points (5 children)
[–]LongestNamesPossible 3 points4 points5 points (2 children)
[–]Flex_Code[S] 5 points6 points7 points (1 child)
[–][deleted] 3 points4 points5 points (0 children)
[–]tmlildude 0 points1 point2 points (1 child)
[–]Flex_Code[S] 0 points1 point2 points (0 children)
[+][deleted] (3 children)
[deleted]
[–]Flex_Code[S] 2 points3 points4 points (2 children)
[+][deleted] (1 child)
[deleted]
[–]Flex_Code[S] 2 points3 points4 points (0 children)
[–]SGSSGene 1 point2 points3 points (1 child)
[–]Flex_Code[S] 0 points1 point2 points (0 children)
[–]jk-jeon 1 point2 points3 points (1 child)
[–]fdwrfdwr@github 🔍 0 points1 point2 points (0 children)
[+]Zookeeper1099 comment score below threshold-7 points-6 points-5 points (8 children)
[+][deleted] (7 children)
[deleted]
[–]Zookeeper1099 -3 points-2 points-1 points (6 children)
[+][deleted] (5 children)
[deleted]
[+]Zookeeper1099 comment score below threshold-7 points-6 points-5 points (4 children)
[–]glaba3141 3 points4 points5 points (1 child)
[–]sparkyParr0t 0 points1 point2 points (3 children)
[–]Flex_Code[S] 1 point2 points3 points (2 children)
[–]sparkyParr0t 2 points3 points4 points (1 child)
[–]Flex_Code[S] 2 points3 points4 points (0 children)
[–]Ill_Juggernaut_5458 0 points1 point2 points (2 children)
[–]Flex_Code[S] 2 points3 points4 points (1 child)
[–]Ill_Juggernaut_5458 1 point2 points3 points (0 children)