←back to thread

66 points chaokunyang | 1 comments | | HN request time: 0.199s | source

Serialization framework with some interesting numbers: 10-20x faster on nested objects than json/protobuf.

  Technical approach: compile-time codegen (no reflection), compact binary protocol with meta-packing, little-endian layout optimized for modern CPUs.

  Unique features that other fast serializers don't have:
  - Cross-language without IDL files (Rust ↔ Python/Java/Go)
  - Trait object serialization (Box<dyn Trait>)
  - Automatic circular reference handling
  - Schema evolution without coordination

  Happy to discuss design trade-offs.

  Benchmarks: https://fory.apache.org/docs/benchmarks/rust
Show context
mlhamel ◴[] No.45737888[source]
I'm wondering how do you share you shared types between languages if there's no schema ?
replies(4): >>45738116 #>>45738121 #>>45738151 #>>45738575 #
stmw ◴[] No.45738575[source]
I am skeptical that it's possible to make this work in the long run.
replies(1): >>45742386 #
1. chaokunyang ◴[] No.45742386[source]
I get your concern — for one or two languages, skipping an IDL can work well and keeps things simple.

But once you’re dealing with three or more languages, I agree an IDL becomes valuable as a single source of truth. That’s work we’ve started: adding optional IDL support so teams can generate data structures in each language from one shared definition.