Configs2026年7月2日·1 分钟阅读

Apache Fury — Blazing-Fast Cross-Language Serialization Framework

Apache Fury is a high-performance, multi-language serialization framework that provides automatic object graph serialization with speeds up to 170x faster than JDK serialization.

Agent 就绪

Agent 可直接安装

这个资产可安装;Agent 先选择当前运行时、检查安装计划,再运行匹配命令。

Native · 98/100策略:允许
Agent 入口
任意 MCP/CLI Agent
类型
Skill
安装
Single
信任
信任等级:Established
入口
Apache Fury Overview
直接安装命令
npx -y tokrepo@latest install a51a63fd-75f0-11f1-9bc6-00163e2b0d79 --target codex

先 dry-run 确认安装计划,再运行此命令。

Introduction

Apache Fury is a serialization framework designed for extreme performance. It automatically serializes object graphs across Java, Python, Go, JavaScript, Rust, and C++ without requiring manual schema definitions, while delivering speeds that far exceed traditional serializers.

What Apache Fury Does

  • Serializes and deserializes complex object graphs automatically without schema files
  • Supports cross-language serialization between Java, Python, Go, JavaScript, Rust, and C++
  • Provides JIT compilation for Java to generate optimized serialization code at runtime
  • Handles circular references, polymorphic types, and nested generics
  • Offers both row-based and columnar serialization formats

Architecture Overview

Fury uses a type-metadata-sharing protocol where schema information is exchanged once between peers and cached for subsequent serializations. In Java, a JIT compiler generates specialized serialization bytecode for each class, eliminating reflection overhead. The binary format uses variable-length encoding and reference tracking to produce compact output. Cross-language support works through a shared binary protocol that maps language-specific types to a common type system.

Self-Hosting & Configuration

  • Add the Fury dependency to your build tool (Maven, pip, go get, npm)
  • Create a Fury instance with ThreadSafeFury for concurrent access
  • Register frequently serialized classes for optimal performance
  • Enable reference tracking for object graphs with circular references
  • Configure language-specific settings like class registration enforcement

Key Features

  • Automatic object graph serialization with no manual schema definitions needed
  • JIT-compiled serializers in Java eliminate reflection overhead at runtime
  • Cross-language compatibility via a shared binary protocol
  • Zero-copy deserialization for large binary payloads
  • Drop-in replacement for Java Serialization with configurable compatibility modes

Comparison with Similar Tools

  • Protobuf — requires .proto schema files; Fury serializes plain objects automatically
  • Kryo — Java-only, no JIT; Fury supports multiple languages with JIT optimization
  • FlatBuffers — zero-copy but requires schema; Fury auto-serializes without schemas
  • Avro — schema-based with JSON/binary formats; Fury focuses on object graph speed
  • MessagePack — cross-language but schema-less maps; Fury preserves full type information

FAQ

Q: How much faster is Fury compared to standard serialization? A: Benchmarks show Fury is up to 170x faster than JDK serialization and significantly faster than Kryo and Hessian for complex object graphs, depending on the data structure.

Q: Does Fury require defining schemas like Protobuf? A: No. Fury serializes plain Java, Python, or Go objects directly. It infers type information automatically and shares metadata between peers.

Q: Is Fury safe from deserialization attacks? A: Fury provides class registration enforcement to prevent deserialization of unauthorized classes, similar to allowlisting in other frameworks.

Q: Can I use Fury as a drop-in replacement for Java Serialization? A: Yes. Fury offers a compatibility mode that supports java.io.Serializable and Externalizable interfaces.

Sources

讨论

登录后参与讨论。
还没有评论,来写第一条吧。

相关资产