Giter Club home page Giter Club logo

Comments (2)

insanitybit avatar insanitybit commented on June 29, 2024 1

Yeah, avro and noproto seem sort of analagous to protobuf and capnproto, so I thought the comparison was appropriate. Very interesting to see these results - I'm in agreement that there's nothing fundamental to avro that makes it as slow as it is, really most of avro could be zero-copy even, similar to how protobuf is.

Great to see beating out flexbuffers. Pretty cool project, I really look forward to watching it.

I also wonder if that size comparison is maybe including the schema with avro? Avro by default will attach the schema to the data, but that's not fundamental - you can remove it.

from noproto.

only-cliches avatar only-cliches commented on June 29, 2024

Hey thanks for the issue, that's a good idea.

I didn't realize how much NoProto has in common with Apache Avro! I got the benchmarks together, results below:

Library Encode Decode All Decode 1 Update 1 Size (bytes) Size (Zlib)
Runtime Libs
NoProto 1057 1437 47619 12195 208 166
Apache Avro 138 51 52 37 702 336
FlexBuffers 401 855 23256 264 490 309
JSON 550 438 544 396 439 184
BSON 115 103 109 80 414 216
MessagePack 135 222 237 119 296 187
Compiled Libs
Flatbuffers 1046 14706 250000 1065 264 181
Bincode 5882 8772 9524 4016 163 129
Protobuf 859 1140 1163 480 154 141
Prost 1225 1866 1984 962 154 142

The most popular Apache Avro library ,avro-rs is disappointing from a performance perspective. There's no reason it can't be as fast as NoProto (I studied the Avro docs). I feel like the only thing making NoProto so much faster in this case is the better Rust implementation.

I feel super proud that NoProto is beating out Flexbuffers, I didn't expect that result. I'll have these benchmarks in the next release!

from noproto.

Related Issues (14)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.