Skip to content

*: s/protobuf/capnp (or some other serialization library with Rust & JS support) #65

@modeco80

Description

@modeco80

Title (to explain it in a less terse format: rip out everything using Protobuf, and switch to Cap'n Proto or Bebop.)

While it does kind of suck, and it will effectively require me rip out an amount of code that's already been written (as well as rewrite schemas), I've kind of ended up here based on two big ☹☹☹ things:

  • Cap'n Proto Rust support is stable, and has been stable for at least half a decade.
  • Similarly, Bebop has supported Rust for a while.
  • Protobuf upstream activity seems to be implying they will make Rust support stable with Protobuf 31. I'm not sure about Protobuf's release cadence, but I was expecting Protobuf 30 (which just released yesterday) to be at least the first semi-stable release with Rust support, and that doesn't appear to be the case. Big sad ☹

There are a couple ☹ things about capnp to note however:

  • Reading and writing capnp roots can be a bit bleh. This is mostly due to how capnp works, but it does make me sad.
  • The latest JavaScript (written in TypeScript) runtime library for it, capnp-es is very experimental. Techinically protobuf is in a similar place (where the only official JS support is from a handful of libraries in various random states, only a couple of them actually somewhat usable today without major hacks).

Overall, my ranking is probably

  1. Bebop (ease of use)
  2. capnp (performance)

Metadata

Metadata

Assignees

Labels

nextPart of Let's Play Next

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions