Why not protobufs? #110
Unanswered
MaksymZavershynskyi
asked this question in
Q&A
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Pasting an answer from Slack here:
Protobufs optimize for interoperability at expense of having the following issues:
We can fix issues with protobufs being non-deterministic by adding various checks and converters, e.g. see https://github.com/tendermint/go-amino/ but this will make it even more complex and slow. And serialization speed and code size are extremely important for out networking and Wasm execution, it is one of the major bottlenecks. There is good reason why Mozilla is using https://github.com/servo/bincode instead of protobufs -- it is much faster and simpler. Borsh is basically https://github.com/servo/bincode with less code (it is not using serde), fixed determinism, and faster. bincode and borsh are 99% compatible.
Beta Was this translation helpful? Give feedback.
All reactions