JavaScript 序列化指南
Apache Fory JavaScript 让你可以把 JavaScript 和 TypeScript 对象序列化为字 节,并再把它们反序列化回来,包括与 Java、Python、Go、Rust、Swift 以及其他 Fory 支持的语言编写的服务进行跨语言互通。
为什么选择 Fory JavaScript?
- 跨语言:可以在 JavaScript 中序列化,在 Java、Python、Go 等语言中反序列化,无需编写胶水代码
- 高性能:序列化器代码会在首次注册 schema 时生成并缓存,而不是每次调用时都重新生成
- 具备引用感知能力:启用后可支持共享引用和循环对象图
- 显式 schema:字段类型、可空性和多态行为通过
Type.*builder 或 TypeScript decorator 一次性声明 - 安全默认值:可配置的深度、二进制大小和集合大小限制可以拒绝超出预期的大载荷或深层嵌套载荷
- 现代类型支持:支持
bigint、typed array、Map、Set、Date、float16和bfloat16
安装
从 npm 安装 JavaScript 包:
npm install @apache-fory/core
可选的 Node.js 字符串快速路径支持由 @apache-fory/hps 提供:
npm install @apache-fory/core @apache-fory/hps
@apache-fory/hps 依赖 Node.js 20+,并且是可选的。如果不可用,Fory 仍可正常工作;只需在配置中省略 hps。
快速开始
import Fory, { Type } from "@apache-fory/core";
const userType = Type.struct(
{ typeName: "example.user" },
{
id: Type.int64(),
name: Type.string(),
age: Type.int32(),
},
);
const fory = new Fory();
const { serialize, deserialize } = fory.register(userType);
const bytes = serialize({
id: 1n,
name: "Alice",
age: 30,
});
const user = deserialize(bytes);
console.log(user);
// { id: 1n, name: 'Alice', age: 30 }