Skip to main content

Apache Fury (incubating)

A blazing-fast cross-language serialization framework powered by just-in-time compilation and zero-copy

High performance

Compared to other serialization frameworks, there is a 20~170x speed up.

Easy to use

No need for DSL, you can use Fury effectively with your intuition.

Multi-languages

Supports popular programming languages such as Java, Python, C++, Golang, Javascript, Rust, and more will be added in the future.

Quick Start!

Choose a language to get started .

Java
Python
Golang
JavaScript
Rust
More
programming-coding
1import java.util.List;
2import java.util.Arrays;
3import org.apache.fury.*;
4
5public class Example {
6  public static void main(String[] args) {
7    SomeClass object = new SomeClass();
8    // Note that Fury instances should be reused between
9    // multiple serializations of different objects.
10    Fury fury = Fury.builder().withLanguage(Language.JAVA)
11      // Allow to deserialize objects unknown types,
12      // more flexible but less secure.
13      // .withSecureMode(false)
14      .build();
15    // Registering types can reduce class name serialization
16    // overhead but not mandatory.
17    // If secure mode enabled
18    //all custom types must be registered.
19    fury.register(SomeClass.class);
20    byte[] bytes = fury.serialize(object);
21    System.out.println(fury.deserialize(bytes));
22  }
23}
24