Skip to content

Commit

Permalink
Apply suggestions from code review
Browse files Browse the repository at this point in the history
  • Loading branch information
chaokunyang authored Aug 30, 2024
1 parent 05750f5 commit cfb6ef0
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 14 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ id: xlang_type_mapping
这些信息也可以用其他语言提供:

- java:使用注解;
- cpp:使用宏和板
- cpp:使用宏和模板
- golang:使用 struct tag;
- python: 使用 typehint;
- rust:使用宏。
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,28 +4,28 @@ title: Apache Fury 介绍
sidebar_position: 1
---

Fury 是一个由 JIT(即时编译)和零拷贝提供支持的快速多语言序列化框架
Fury 是一个由 JIT(即时编译)和零拷贝提供支持的高性能多语言序列化框架

## 协议

不同的场景有不同的序列化要求。Apache Fury 为这些需求设计并编写了多个二进制协议
不同的场景有不同的序列化要求。Apache Fury 为这些需求设计并实现了多个二进制协议

- 跨语言对象图协议:
- 跨语言自动序列化任何对象,无需 IDL 定义、架构编译和对象到/从协议转换
- 跨语言自动序列化任何对象,无需 IDL 定义、Schema编译和对象协议转换
- 支持共享引用和循环引用,无重复数据或递归错误;
- 支持对象多态性
- 原生 java/python 对象图协议:基于语言的类型系统进行高度优化
- 原生支持对象多态
- 原生 java/python 对象图协议:基于单一语言的完整类型系统进行高度优化
- 行格式协议:缓存友好的二进制随机访问格式,支持跳过序列化和部分序列化,并且可以自动转换为列格式。

基于 fury 现有的 buffer、encoding、meta、codegen 和其他功能,可以轻松添加新协议。所有这些协议都共享相同的代码库,并且一个协议的优化可以被另一个协议重用。

## 兼容性

### 架构兼容性
### Schema兼容性

Apache Fury java 对象图序列化支持类架构向前/向后兼容。序列化 Peer 节点和反序列化 Peer 节点可以独立添加/删除字段。

我们计划在[元压缩](https://github.com/apache/fury/issues/203)完成后支持跨语言序列化
我们计划在[元数据压缩](https://github.com/apache/fury/issues/203)完成后支持跨语言序列化Schema兼容性

### 二进制兼容性

Expand All @@ -39,19 +39,18 @@ Apache Fury java 对象图序列化支持类架构向前/向后兼容。序列

例如:反序列化可能会调用 `init` constructor 或 `equals`/ `hashCode` 方法,如果方法体中包含恶意代码,系统将处于危险之中。

Apache Fury 提供了一个类注册模式选项,并且默认为此协议启用,它允许反序列化受信任的注册类型或内置类型,但仅用于安全。

Apache Fury 提供了一个类注册选项,并默认为此类协议启用,它只允许反序列化受信任的注册类型或内置类型。**不要禁用类注册或类注册检查,除非您可以确保您的环境确实是安全的**。如果您禁用了 class 注册选项,我们概不负责安全
Apache Fury 提供了一个类注册选项,并默认开启该选项,它只允许反序列化受信任的注册类型或内置类型。**不要禁用类注册或类注册检查,除非您可以确保您的环境确实是安全的**。如果您禁用了 class 注册选项,你需要自行负责序列化的安全性

## 路线图

- 元压缩、自动元共享和跨语言架构兼容性
- 元压缩、自动元共享和跨语言兼容性
- 用于 c++/golang 的 AOT 框架,用于静态生成代码;
- C++/Rust 对象图序列化支持;
- Golang/Rust/NodeJS 行格式支持
- Golang/Rust/NodeJS 行存格式支持
- ProtoBuffer 兼容性支持;
- 特征和知识图谱序列化的协议
- 不断改进我们的序列化基础设施,以适应任何新协议
- 特征和模型序列化协议
- 不断改进我们的序列化基础设施,以更快支持任何新的协议

## 如何贡献

Expand Down

0 comments on commit cfb6ef0

Please sign in to comment.