this post was submitted on 08 Dec 2023
82 points (97.7% liked)

Programming

17534 readers
311 users here now

Welcome to the main community in programming.dev! Feel free to post anything relating to programming here!

Cross posting is strongly encouraged in the instance. If you feel your post or another person's post makes sense in another community cross post into it.

Hope you enjoy the instance!

Rules

Rules

  • Follow the programming.dev instance rules
  • Keep content related to programming in some way
  • If you're posting long videos try to add in some form of tldr for those who don't want to watch videos

Wormhole

Follow the wormhole through a path of communities [email protected]



founded 2 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 9 points 11 months ago (4 children)

The main question I would have is why use it instead of protobuf? Having native support for binary values aside.

[–] lysdexic 9 points 11 months ago (1 children)

I'd love to see benchmarks testing the two, and out of curiosity also including compressed JSON docs to take into account the impact of payload volume.

Nevertheless, I think there are two major features that differentiate protobuff and fleece, which are:

  • fleece is implemented as an appendable data structure, which might open the door to some usages,
  • protobuf supports more data types than the ones supported by JSON, which may be a good or bad thing depending on the perspective.

In the end, if the world survived with XML for so long, I'd guess we can live with minor gains just as easily.

[–] aes 2 points 11 months ago (1 children)

"Appendable" seems like a positive spin on the "truncated YAML-file is frighteningly often valid" problem...

[–] lysdexic 1 points 11 months ago

"Appendable” seems like a positive spin on the (...)

I don't think your take makes sense. It's a write-only data structure which supports incremental changes. By design it tracks state and versioning. You can squash it if you'd like but others might see value in it.

[–] [email protected] 1 points 11 months ago

You probably wouldn't. The main difference is that protobuf is structured while fleece is unstructured, so you would use it in places where you don't want to (or can't) tie yourself to a schema outright.

[–] [email protected] 1 points 11 months ago
[–] [email protected] 0 points 11 months ago

It's not serialized from what I understand so it doesn't need parsing. It's sort of a structure+pointer dump. We'll see how well that translates to other languages than C though.