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
1import java.util.List;
2import java.util.Arrays;
3import org.apache.fury.*;
4
5public class Example {
6 // Note that Fury instances should be reused between
7 // multiple serializations of different objects.
8 static ThreadSafeFury fury = Fury.builder().withLanguage(Language.JAVA)
9 // Allow to deserialize objects unknown types,
10 // more flexible but less secure.
11 // .withSecureMode(false)
12 .buildThreadSafeFury();
13
14 static {
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 }
21
22 public static void main(String[] args) {
23 SomeClass object = new SomeClass();
24 byte[] bytes = fury.serialize(object);
25 System.out.println(fury.deserialize(bytes));
26 }
27}
28