chaokunyang

Joined 3 years ago

Karma
192
Submissions
149
Member since
Jul 17
Github: https://github.com/chaokunyang I’m the author of Fury https://github.com/apache/fory: A blazing fast multi-language serialization framework powered by JIT and zero-copy.
View on Hacker News

Recent submissions

Comment · 1 month ago
Apache Fory achieved 2.78×–12.12× the throughput of kotlinx.serialization, Moshi with generated adapters, and Jackson Kotlin across the measured serialization and deserialization operations
Comment · 2 months ago
Comment · 2 months ago
Apache Fory JSON is a high-performance JSON serialization framework for Java. It maps Java objects to and from standard JSON text and UTF-8 bytes.

In the published benchmarks, it reaches up to 10.91× Jackson’s throughput and 10.89× Gson’s in java-json-benchmark, and up to 5.55× and 10.00× respectively in the jvm-serializers MediaContent benchmark.

It supports JDK 8+, Android, and GraalVM Native Image. JDK17+ Record is also supported.

Feedback is welcome.

Comment · 4 months ago
Apache Fory 1.2.0 is out.

The main Java change is JDK 25 support without using sun.misc.Unsafe in the active runtime path. Older JDKs keep the existing fast path, while JDK 25+ uses replacement implementations based on supported JVM APIs.

Other notable changes:

- Java 9/16 module-info generation

- JDK 26+ final field deserialization support even when --illegal-final-field-mutation=deny

- compatible scalar field reads for schema evolution, e.g. int64 <-> String when the conversion is lossless

- generated gRPC service companions across Java, Rust, Go, Kotlin, Scala, C#, Python, and JavaScript/TypeScript - compatible-mode and row-format performance work

Feedback from people testing serialization libraries on newer JDKs or dealing with Unsafe removal would be useful.

Comment · 7 months ago
1. 10X faster serialization than protobuf c++ 2. Shared/Circular reference tracking Support 3. Polymorphism and tagged union support 4. Schema evolution support 5. idiomatic domain object API
Comment · 7 months ago
Flatbuffer Example:

namespace demo;

table Node {

  parent: Node (fory_weak_ref: true);

  children: [Node] (fory_ref: true);

  cached: Node (fory_ref: true, fory_thread_safe_pointer: false);

}
Comment · 7 months ago
Protobuf Example:

syntax = "proto3";

message TreeNode {

  TreeNode parent = 1 [(fory).weak_ref = true];

  repeated TreeNode children = 2 [(fory).ref = true];

}
Comment · 7 months ago

Live from the official Hacker News API

A modern reader for Hacker News · SvelteKit + Skeleton