This is an automated email from the ASF dual-hosted git repository. chaokunyang pushed a commit to branch release_0.14.0 in repository https://gitbox.apache.org/repos/asf/fory-site.git
commit bfb94ca18b9af63ad0195a02ff2f4b5a5f254d9d Author: chaokunyang <[email protected]> AuthorDate: Mon Dec 15 23:34:27 2025 +0800 format code --- .../version-0.14/docs/guide/cpp/row-format.md | 16 ++--- .../docs/guide/cpp/schema-evolution.md | 36 ++++++------ .../version-0.14/docs/guide/cpp/supported-types.md | 44 +++++++------- .../version-0.14/docs/guide/graalvm_guide.md | 24 ++++---- .../version-0.14/docs/guide/java/compression.md | 14 ++--- .../version-0.14/docs/guide/java/configuration.md | 50 ++++++++-------- .../version-0.14/docs/guide/java/row-format.md | 26 ++++----- .../docs/guide/java/schema-evolution.md | 16 ++--- .../version-0.14/docs/guide/kotlin/_category_.json | 2 +- .../docs/guide/python/configuration.md | 34 +++++------ .../version-0.14/docs/guide/python/migration.md | 14 ++--- .../version-0.14/docs/guide/python/row-format.md | 14 ++--- .../version-0.14/docs/guide/python/security.md | 16 ++--- .../docs/guide/rust/basic-serialization.md | 68 +++++++++++----------- .../version-0.14/docs/guide/rust/configuration.md | 10 ++-- .../version-0.14/docs/guide/rust/cross-language.md | 20 +++---- .../version-0.14/docs/guide/rust/index.md | 8 +-- .../version-0.14/docs/guide/rust/references.md | 16 ++--- .../version-0.14/docs/guide/rust/row-format.md | 24 ++++---- .../docs/guide/rust/troubleshooting.md | 10 ++-- .../version-0.14/docs/guide/scala/_category_.json | 2 +- .../version-0.14/docs/guide/xlang/_category_.json | 2 +- .../version-0.14/docs/guide/xlang/index.md | 16 ++--- 23 files changed, 241 insertions(+), 241 deletions(-) diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-0.14/docs/guide/cpp/row-format.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-0.14/docs/guide/cpp/row-format.md index 664e3112d..6c01f20b9 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-0.14/docs/guide/cpp/row-format.md +++ b/i18n/zh-CN/docusaurus-plugin-content-docs/version-0.14/docs/guide/cpp/row-format.md @@ -33,14 +33,14 @@ Apache Fory™ 行格式是一种针对以下场景优化的二进制格式: ## 何时使用行格式 -| 使用场景 | 行格式 | 对象图 | -| ---------------------- | ------ | ------ | -| 分析/OLAP | ✅ | ❌ | -| 随机字段访问 | ✅ | ❌ | -| 完整对象序列化 | ❌ | ✅ | -| 复杂对象图 | ❌ | ✅ | -| 引用跟踪 | ❌ | ✅ | -| 跨语言(简单类型) | ✅ | ✅ | +| 使用场景 | 行格式 | 对象图 | +| ------------------ | ------ | ------ | +| 分析/OLAP | ✅ | ❌ | +| 随机字段访问 | ✅ | ❌ | +| 完整对象序列化 | ❌ | ✅ | +| 复杂对象图 | ❌ | ✅ | +| 引用跟踪 | ❌ | ✅ | +| 跨语言(简单类型) | ✅ | ✅ | ## 快速开始 diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-0.14/docs/guide/cpp/schema-evolution.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-0.14/docs/guide/cpp/schema-evolution.md index 7910ef5b7..ac80a3a85 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-0.14/docs/guide/cpp/schema-evolution.md +++ b/i18n/zh-CN/docusaurus-plugin-content-docs/version-0.14/docs/guide/cpp/schema-evolution.md @@ -80,14 +80,14 @@ int main() { Compatible 模式支持以下 schema 变更: -| 变更类型 | 支持 | 行为 | -| -------------- | ---- | --------------------------- | -| 添加新字段 | ✅ | 缺失字段使用默认值 | -| 删除字段 | ✅ | 额外字段被跳过 | -| 重排字段顺序 | ✅ | 按名称匹配字段,而非位置 | -| 更改可空性 | ✅ | `T` ↔ `std::optional<T>` | -| 更改字段类型 | ❌ | 类型必须兼容 | -| 重命名字段 | ❌ | 字段名必须匹配(区分大小写)| +| 变更类型 | 支持 | 行为 | +| ------------ | ---- | ---------------------------- | +| 添加新字段 | ✅ | 缺失字段使用默认值 | +| 删除字段 | ✅ | 额外字段被跳过 | +| 重排字段顺序 | ✅ | 按名称匹配字段,而非位置 | +| 更改可空性 | ✅ | `T` ↔ `std::optional<T>` | +| 更改字段类型 | ❌ | 类型必须兼容 | +| 重命名字段 | ❌ | 字段名必须匹配(区分大小写) | ## 添加字段(向后兼容) @@ -268,17 +268,17 @@ assert(v1.age == 35); 当字段缺失时,使用 C++ 默认初始化: -| 类型 | 默认值 | -| ---------------------- | ----------- | -| `int8_t`、`int16_t`... | `0` | -| `float`、`double` | `0.0` | -| `bool` | `false` | -| `std::string` | `""` | -| `std::vector<T>` | 空 vector | -| `std::map<K,V>` | 空 map | -| `std::set<T>` | 空 set | +| 类型 | 默认值 | +| ---------------------- | -------------- | +| `int8_t`、`int16_t`... | `0` | +| `float`、`double` | `0.0` | +| `bool` | `false` | +| `std::string` | `""` | +| `std::vector<T>` | 空 vector | +| `std::map<K,V>` | 空 map | +| `std::set<T>` | 空 set | | `std::optional<T>` | `std::nullopt` | -| 结构体类型 | 默认构造 | +| 结构体类型 | 默认构造 | ## SchemaConsistent 模式(默认) diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-0.14/docs/guide/cpp/supported-types.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-0.14/docs/guide/cpp/supported-types.md index dc3f74159..e89b3bfa6 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-0.14/docs/guide/cpp/supported-types.md +++ b/i18n/zh-CN/docusaurus-plugin-content-docs/version-0.14/docs/guide/cpp/supported-types.md @@ -25,22 +25,22 @@ license: | 所有 C++ 基本类型都支持高效的二进制编码: -| 类型 | 大小 | Fory TypeId | 说明 | -| ---------- | ------ | ----------- | ------------- | -| `bool` | 1 字节 | BOOL | True/false | -| `int8_t` | 1 字节 | INT8 | 有符号字节 | -| `uint8_t` | 1 字节 | INT8 | 无符号字节 | -| `int16_t` | 2 字节 | INT16 | 有符号短整型 | -| `uint16_t` | 2 字节 | INT16 | 无符号短整型 | -| `int32_t` | 4 字节 | INT32 | 有符号整型 | -| `uint32_t` | 4 字节 | INT32 | 无符号整型 | -| `int64_t` | 8 字节 | INT64 | 有符号长整型 | -| `uint64_t` | 8 字节 | INT64 | 无符号长整型 | -| `float` | 4 字节 | FLOAT32 | IEEE 754 单精度 | -| `double` | 8 字节 | FLOAT64 | IEEE 754 双精度 | -| `char` | 1 字节 | INT8 | 字符(作为有符号)| -| `char16_t` | 2 字节 | INT16 | 16 位字符 | -| `char32_t` | 4 字节 | INT32 | 32 位字符 | +| 类型 | 大小 | Fory TypeId | 说明 | +| ---------- | ------ | ----------- | ------------------ | +| `bool` | 1 字节 | BOOL | True/false | +| `int8_t` | 1 字节 | INT8 | 有符号字节 | +| `uint8_t` | 1 字节 | INT8 | 无符号字节 | +| `int16_t` | 2 字节 | INT16 | 有符号短整型 | +| `uint16_t` | 2 字节 | INT16 | 无符号短整型 | +| `int32_t` | 4 字节 | INT32 | 有符号整型 | +| `uint32_t` | 4 字节 | INT32 | 无符号整型 | +| `int64_t` | 8 字节 | INT64 | 有符号长整型 | +| `uint64_t` | 8 字节 | INT64 | 无符号长整型 | +| `float` | 4 字节 | FLOAT32 | IEEE 754 单精度 | +| `double` | 8 字节 | FLOAT64 | IEEE 754 双精度 | +| `char` | 1 字节 | INT8 | 字符(作为有符号) | +| `char16_t` | 2 字节 | INT16 | 16 位字符 | +| `char32_t` | 4 字节 | INT32 | 32 位字符 | ```cpp int32_t value = 42; @@ -51,12 +51,12 @@ assert(value == decoded); ## 字符串类型 -| 类型 | Fory TypeId | 说明 | -| ------------------ | ----------- | ---------------------- | -| `std::string` | STRING | UTF-8 编码 | -| `std::string_view` | STRING | 零拷贝视图(读取) | -| `std::u16string` | STRING | UTF-16(转换) | -| `binary` | BINARY | 无长度的原始字节 | +| 类型 | Fory TypeId | 说明 | +| ------------------ | ----------- | ------------------ | +| `std::string` | STRING | UTF-8 编码 | +| `std::string_view` | STRING | 零拷贝视图(读取) | +| `std::u16string` | STRING | UTF-16(转换) | +| `binary` | BINARY | 无长度的原始字节 | ```cpp std::string text = "Hello, World!"; diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-0.14/docs/guide/graalvm_guide.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-0.14/docs/guide/graalvm_guide.md index e25651ca4..56a1dc7b1 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-0.14/docs/guide/graalvm_guide.md +++ b/i18n/zh-CN/docusaurus-plugin-content-docs/version-0.14/docs/guide/graalvm_guide.md @@ -103,12 +103,12 @@ Args = --initialize-at-build-time=com.example.Example \ ### ForyGraalVMFeature 处理的内容 -| 场景 | 不使用 Feature | 使用 Feature | -| ---------------------- | ---------------------------- | ---------------- | -| 具有无参构造函数的公共类 | ✅ 可工作 | ✅ 可工作 | -| 私有构造函数 | ❌ 需要 reflect-config.json | ✅ 自动注册 | -| 私有内部记录 | ❌ 需要 reflect-config.json | ✅ 自动注册 | -| 动态代理 | ❌ 需要手动配置 | ✅ 自动注册 | +| 场景 | 不使用 Feature | 使用 Feature | +| ------------------------ | --------------------------- | ------------ | +| 具有无参构造函数的公共类 | ✅ 可工作 | ✅ 可工作 | +| 私有构造函数 | ❌ 需要 reflect-config.json | ✅ 自动注册 | +| 私有内部记录 | ❌ 需要 reflect-config.json | ✅ 自动注册 | +| 动态代理 | ❌ 需要手动配置 | ✅ 自动注册 | ### 私有记录示例 @@ -214,12 +214,12 @@ fory.ensureSerializersCompiled(); Fory 与 GraalVM JDK 序列化的性能比较: -| 类型 | 压缩 | 速度 | 大小 | -| ------ | ---- | ---------- | ---- | -| Struct | 关闭 | 46 倍更快 | 43% | -| Struct | 开启 | 24 倍更快 | 31% | -| Pojo | 关闭 | 12 倍更快 | 56% | -| Pojo | 开启 | 12 倍更快 | 48% | +| 类型 | 压缩 | 速度 | 大小 | +| ------ | ---- | --------- | ---- | +| Struct | 关闭 | 46 倍更快 | 43% | +| Struct | 开启 | 24 倍更快 | 31% | +| Pojo | 关闭 | 12 倍更快 | 56% | +| Pojo | 开启 | 12 倍更快 | 48% | 查看 [Benchmark.java](https://github.com/apache/fory/blob/main/integration_tests/graalvm_tests/src/main/java/org/apache/fory/graalvm/Benchmark.java) 获取基准测试代码。 diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-0.14/docs/guide/java/compression.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-0.14/docs/guide/java/compression.md index 3c18c78cd..6cd40685b 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-0.14/docs/guide/java/compression.md +++ b/i18n/zh-CN/docusaurus-plugin-content-docs/version-0.14/docs/guide/java/compression.md @@ -94,13 +94,13 @@ CompressedArraySerializers.registerSerializers(fory); ## 配置摘要 -| 选项 | 描述 | 默认值 | -| ------------------- | ------------------------------------- | ------- | -| `compressInt` | 启用 int 压缩 | `true` | -| `compressLong` | 启用 long 压缩 | `true` | -| `compressIntArray` | 启用 SIMD int 数组压缩(Java 16+) | `true` | -| `compressLongArray` | 启用 SIMD long 数组压缩(Java 16+) | `true` | -| `compressString` | 启用字符串压缩 | `false` | +| 选项 | 描述 | 默认值 | +| ------------------- | ----------------------------------- | ------- | +| `compressInt` | 启用 int 压缩 | `true` | +| `compressLong` | 启用 long 压缩 | `true` | +| `compressIntArray` | 启用 SIMD int 数组压缩(Java 16+) | `true` | +| `compressLongArray` | 启用 SIMD long 数组压缩(Java 16+) | `true` | +| `compressString` | 启用字符串压缩 | `false` | ## 性能考虑 diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-0.14/docs/guide/java/configuration.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-0.14/docs/guide/java/configuration.md index b8cf50216..6d47bb547 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-0.14/docs/guide/java/configuration.md +++ b/i18n/zh-CN/docusaurus-plugin-content-docs/version-0.14/docs/guide/java/configuration.md @@ -23,31 +23,31 @@ license: | ## ForyBuilder 选项 -| 选项名称 | 描述 [...] -| --------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- [...] -| `timeRefIgnored` | 当启用引用跟踪时,是否忽略在 `TimeSerializers` 中注册的所有时间类型及其子类的引用跟踪。如果忽略,可以通过调用 `Fory#registerSerializer(Class, Serializer)` 为每个时间类型启用引用跟踪。例如,`fory.registerSerializer(Date.class, new DateSerializer(fory, true))`。注意,启用引用跟踪应该在包含时间字段的任何类型的序列化器代码生成之前进行。否则,这些字段仍将跳过引用跟踪。 | `true` | -| `compressInt` | 启用或禁用 int 压缩以获得更小的大小。 [...] -| `compressLong` | 启用或禁用 long 压缩以获得更小的大小。 [...] -| `compressIntArray` | 当值可以适配较小数据类型时,启用或禁用 int 数组的 SIMD 加速压缩。需要 Java 16+。 | `true` [...] -| `compressLongArray` | 当值可以适配较小数据类型时,启用或禁用 long 数组的 SIMD 加速压缩。需要 Java 16+。 | `true` [...] -| `compressString` | 启用或禁用字符串压缩以获得更小的大小。 [...] -| `classLoader` | 不应更新类加载器;Fory 缓存类元数据。对于类加载器更新,请使用 `LoaderBinding` 或 `ThreadSafeFory`。 | `Threa [...] -| `compatibleMode` | 类型前向/后向兼容性配置。也与 `checkClassVersion` 配置相关。`SCHEMA_CONSISTENT`:序列化端和反序列化端之间的类 schema 必须一致。`COMPATIBLE`:序列化端和反序列化端之间的类 schema 可以不同。它们可以独立添加/删除字段。[查看更多](schema-evolution.md)。 | `CompatibleMode.SCHEMA_CONSISTENT` [...] -| `checkClassVersion` | 确定是否检查类 schema 的一致性。如果启用,Fory 会使用 `classVersionHash` 检查、写入和检查一致性。当启用 `CompatibleMode#COMPATIBLE` 时,它将自动禁用。除非你能确保类不会演化,否则不建议禁用。 | `false` [...] -| `checkJdkClassSerializable` | 启用或禁用对 `java.*` 下的类的 `Serializable` 接口检查。如果 `java.*` 下的类不是 `Serializable`,Fory 将抛出 `UnsupportedOperationException`。 | `tru [...] -| `registerGuavaTypes` | 是否预注册 Guava 类型,如 `RegularImmutableMap`/`RegularImmutableList`。这些类型不是公共 API,但似乎相当稳定。 | `tr [...] -| `requireClassRegistration` | 禁用可能允许未知类被反序列化,可能导致安全风险。 | [...] -| `maxDepth` | 设置反序列化的最大深度,当深度超过时,将抛出异常。这可用于拒绝反序列化 DDOS 攻击。 | `50` [...] -| `suppressClassRegistrationWarnings` | 是否抑制类注册警告。这些警告可用于安全审计,但可能很烦人,默认情况下将启用此抑制。 | `true` [...] -| `metaShareEnabled` | 启用或禁用元数据共享模式。 [...] -| `scopedMetaShareEnabled` | 作用域元数据共享专注于单个序列化过程。在此过程中创建或识别的元数据是它专有的,不会与其他序列化共享。 | 如果设置了 `CompatibleMode.Com [...] -| `metaCompressor` | 为元数据压缩设置压缩器。注意传递的 MetaCompressor 应该是线程安全的。默认情况下,将使用基于 `Deflater` 的压缩器 `DeflaterMetaCompressor`。用户可以传递其他压缩器,如 `zstd` 以获得更好的压缩率。 | `DeflaterMetaCompressor` [...] -| `deserializeNonexistentClass` | 启用或禁用对不存在类的数据的反序列化/跳过。 [...] -| `codeGenEnabled` | 禁用可能导致更快的初始序列化,但后续序列化会更慢。 | [...] -| `asyncCompilationEnabled` | 如果启用,序列化首先使用解释器模式,在类的异步序列化器 JIT 完成后切换到 JIT 序列化。 | `false` [...] -| `scalaOptimizationEnabled` | 启用或禁用 Scala 特定的序列化优化。 [...] -| `copyRef` | 禁用时,拷贝性能会更好。但 Fory 深拷贝将忽略循环引用和共享引用。对象图的相同引用将在一次 `Fory#copy` 中被复制为不同的对象。 | `true` [...] -| `serializeEnumByName` | 启用时,Fory 按名称而不是序数序列化枚举。 [...] +| 选项名称 | 描述 | 默认值 | +| ----------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------ | +| `timeRefIgnored` | 当启用引用跟踪时,是否忽略在 `TimeSerializers` 中注册的所有时间类型及其子类的引用跟踪。如果忽略,可以通过调用 `Fory#registerSerializer(Class, Serializer)` 为每个时间类型启用引用跟踪。例如,`fory.registerSerializer(Date.class, new DateSerializer(fory, true))`。注意,启用引用跟踪应该在包含时间字段的任何类型的序列化器代码生成之前进行。否则,这些字段仍将跳过引用跟踪。 | `true` | +| `compressInt` | 启用或禁用 int 压缩以获得更小的大小。 | `true` | +| `compressLong` | 启用或禁用 long 压缩以获得更小的大小。 | `true` | +| `compressIntArray` | 当值可以适配较小数据类型时,启用或禁用 int 数组的 SIMD 加速压缩。需要 Java 16+。 | `true` | +| `compressLongArray` | 当值可以适配较小数据类型时,启用或禁用 long 数组的 SIMD 加速压缩。需要 Java 16+。 | `true` | +| `compressString` | 启用或禁用字符串压缩以获得更小的大小。 | `false` | +| `classLoader` | 不应更新类加载器;Fory 缓存类元数据。对于类加载器更新,请使用 `LoaderBinding` 或 `ThreadSafeFory`。 | `Thread.currentThread().getContextClassLoader()` | +| `compatibleMode` | 类型前向/后向兼容性配置。也与 `checkClassVersion` 配置相关。`SCHEMA_CONSISTENT`:序列化端和反序列化端之间的类 schema 必须一致。`COMPATIBLE`:序列化端和反序列化端之间的类 schema 可以不同。它们可以独立添加/删除字段。[查看更多](schema-evolution.md)。 | `CompatibleMode.SCHEMA_CONSISTENT` | +| `checkClassVersion` | 确定是否检查类 schema 的一致性。如果启用,Fory 会使用 `classVersionHash` 检查、写入和检查一致性。当启用 `CompatibleMode#COMPATIBLE` 时,它将自动禁用。除非你能确保类不会演化,否则不建议禁用。 | `false` | +| `checkJdkClassSerializable` | 启用或禁用对 `java.*` 下的类的 `Serializable` 接口检查。如果 `java.*` 下的类不是 `Serializable`,Fory 将抛出 `UnsupportedOperationException`。 | `true` | +| `registerGuavaTypes` | 是否预注册 Guava 类型,如 `RegularImmutableMap`/`RegularImmutableList`。这些类型不是公共 API,但似乎相当稳定。 | `true` | +| `requireClassRegistration` | 禁用可能允许未知类被反序列化,可能导致安全风险。 | `true` | +| `maxDepth` | 设置反序列化的最大深度,当深度超过时,将抛出异常。这可用于拒绝反序列化 DDOS 攻击。 | `50` | +| `suppressClassRegistrationWarnings` | 是否抑制类注册警告。这些警告可用于安全审计,但可能很烦人,默认情况下将启用此抑制。 | `true` | +| `metaShareEnabled` | 启用或禁用元数据共享模式。 | 如果设置了 `CompatibleMode.Compatible` 则为 `true`,否则为 false。 | +| `scopedMetaShareEnabled` | 作用域元数据共享专注于单个序列化过程。在此过程中创建或识别的元数据是它专有的,不会与其他序列化共享。 | 如果设置了 `CompatibleMode.Compatible` 则为 `true`,否则为 false。 | +| `metaCompressor` | 为元数据压缩设置压缩器。注意传递的 MetaCompressor 应该是线程安全的。默认情况下,将使用基于 `Deflater` 的压缩器 `DeflaterMetaCompressor`。用户可以传递其他压缩器,如 `zstd` 以获得更好的压缩率。 | `DeflaterMetaCompressor` | +| `deserializeNonexistentClass` | 启用或禁用对不存在类的数据的反序列化/跳过。 | 如果设置了 `CompatibleMode.Compatible` 则为 `true`,否则为 false。 | +| `codeGenEnabled` | 禁用可能导致更快的初始序列化,但后续序列化会更慢。 | `true` | +| `asyncCompilationEnabled` | 如果启用,序列化首先使用解释器模式,在类的异步序列化器 JIT 完成后切换到 JIT 序列化。 | `false` | +| `scalaOptimizationEnabled` | 启用或禁用 Scala 特定的序列化优化。 | `false` | +| `copyRef` | 禁用时,拷贝性能会更好。但 Fory 深拷贝将忽略循环引用和共享引用。对象图的相同引用将在一次 `Fory#copy` 中被复制为不同的对象。 | `true` | +| `serializeEnumByName` | 启用时,Fory 按名称而不是序数序列化枚举。 | `false` | ## 示例配置 diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-0.14/docs/guide/java/row-format.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-0.14/docs/guide/java/row-format.md index b97c87458..45dc3adcf 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-0.14/docs/guide/java/row-format.md +++ b/i18n/zh-CN/docusaurus-plugin-content-docs/version-0.14/docs/guide/java/row-format.md @@ -82,13 +82,13 @@ Foo newFoo = encoder.fromRow(binaryRow); ## 主要优势 -| 特性 | 描述 | -| ------------------- | ------------------------------------------ | -| 零拷贝访问 | 读取嵌套字段而无需反序列化整个对象 | -| 内存效率 | 直接从磁盘内存映射大数据集 | -| 跨语言 | Java、Python、C++ 之间的二进制格式兼容 | -| 部分反序列化 | 只反序列化你需要的特定元素 | -| 高性能 | 跳过不必要的数据解析用于分析工作负载 | +| 特性 | 描述 | +| ------------ | -------------------------------------- | +| 零拷贝访问 | 读取嵌套字段而无需反序列化整个对象 | +| 内存效率 | 直接从磁盘内存映射大数据集 | +| 跨语言 | Java、Python、C++ 之间的二进制格式兼容 | +| 部分反序列化 | 只反序列化你需要的特定元素 | +| 高性能 | 跳过不必要的数据解析用于分析工作负载 | ## 何时使用行格式 @@ -169,12 +169,12 @@ std::string str = bar10->GetString(0); ## 性能比较 -| 操作 | 对象格式 | 行格式 | -| ---------------- | -------------------------- | ------------------------ | -| 完全反序列化 | 分配所有对象 | 零分配 | -| 单字段访问 | 需要完全反序列化 | 直接偏移读取 | -| 内存使用 | 完整对象图在内存中 | 仅访问的字段 | -| 适用于 | 小对象,完全访问 | 大对象,选择性访问 | +| 操作 | 对象格式 | 行格式 | +| ------------ | ------------------ | ------------------ | +| 完全反序列化 | 分配所有对象 | 零分配 | +| 单字段访问 | 需要完全反序列化 | 直接偏移读取 | +| 内存使用 | 完整对象图在内存中 | 仅访问的字段 | +| 适用于 | 小对象,完全访问 | 大对象,选择性访问 | ## 相关主题 diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-0.14/docs/guide/java/schema-evolution.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-0.14/docs/guide/java/schema-evolution.md index 5a440e650..1a431df79 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-0.14/docs/guide/java/schema-evolution.md +++ b/i18n/zh-CN/docusaurus-plugin-content-docs/version-0.14/docs/guide/java/schema-evolution.md @@ -192,14 +192,14 @@ public class DeserializeIntoType { ## 配置选项 -| 选项 | 描述 | 默认值 | -| --------------------------------- | -------------------------------- | --------------------------------- | -| `compatibleMode` | `SCHEMA_CONSISTENT` 或 `COMPATIBLE` | `SCHEMA_CONSISTENT` | -| `checkClassVersion` | 检查类 schema 一致性 | `false` | -| `metaShareEnabled` | 启用元数据共享 | 如果是兼容模式则为 `true` | -| `scopedMetaShareEnabled` | 每次序列化的作用域元数据共享 | 如果是兼容模式则为 `true` | -| `deserializeNonexistentClass` | 处理不存在的类 | 如果是兼容模式则为 `true` | -| `metaCompressor` | 元数据压缩的压缩器 | `DeflaterMetaCompressor` | +| 选项 | 描述 | 默认值 | +| ----------------------------- | ----------------------------------- | ------------------------- | +| `compatibleMode` | `SCHEMA_CONSISTENT` 或 `COMPATIBLE` | `SCHEMA_CONSISTENT` | +| `checkClassVersion` | 检查类 schema 一致性 | `false` | +| `metaShareEnabled` | 启用元数据共享 | 如果是兼容模式则为 `true` | +| `scopedMetaShareEnabled` | 每次序列化的作用域元数据共享 | 如果是兼容模式则为 `true` | +| `deserializeNonexistentClass` | 处理不存在的类 | 如果是兼容模式则为 `true` | +| `metaCompressor` | 元数据压缩的压缩器 | `DeflaterMetaCompressor` | ## 最佳实践 diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-0.14/docs/guide/kotlin/_category_.json b/i18n/zh-CN/docusaurus-plugin-content-docs/version-0.14/docs/guide/kotlin/_category_.json index 6122d8c5d..bd051cc65 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-0.14/docs/guide/kotlin/_category_.json +++ b/i18n/zh-CN/docusaurus-plugin-content-docs/version-0.14/docs/guide/kotlin/_category_.json @@ -3,4 +3,4 @@ "position": 8, "collapsible": true, "collapsed": true -} \ No newline at end of file +} diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-0.14/docs/guide/python/configuration.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-0.14/docs/guide/python/configuration.md index 84373f812..dbd09a4ad 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-0.14/docs/guide/python/configuration.md +++ b/i18n/zh-CN/docusaurus-plugin-content-docs/version-0.14/docs/guide/python/configuration.md @@ -55,13 +55,13 @@ class ThreadSafeFory: ## 参数 -| 参数 | 类型 | 默认值 | 描述 | -| ------------ | ------ | ------- | --------------------------------------------------------------------------------------------------------------- | +| 参数 | 类型 | 默认值 | 描述 | +| ------------ | ------ | ------- | --------------------------------------------------------------------------------------------------------------------------------------- | | `xlang` | `bool` | `False` | 启用跨语言序列化。当为 `False` 时,启用 Python 原生模式,支持所有 Python 对象。当为 `True` 时,启用跨语言模式,兼容 Java、Go、Rust 等。 | -| `ref` | `bool` | `False` | 启用引用跟踪以支持共享/循环引用。如果数据没有共享引用,禁用此选项可获得更好性能。 | -| `strict` | `bool` | `True` | 出于安全考虑需要类型注册。**生产环境强烈推荐**。仅在受信任的环境中禁用。 | -| `compatible` | `bool` | `False` | 在跨语言模式中启用 schema 演化,允许在保持兼容性的同时添加/删除字段。 | -| `max_depth` | `int` | `50` | 反序列化的最大深度,用于安全防护,防止栈溢出攻击。 | +| `ref` | `bool` | `False` | 启用引用跟踪以支持共享/循环引用。如果数据没有共享引用,禁用此选项可获得更好性能。 | +| `strict` | `bool` | `True` | 出于安全考虑需要类型注册。**生产环境强烈推荐**。仅在受信任的环境中禁用。 | +| `compatible` | `bool` | `False` | 在跨语言模式中启用 schema 演化,允许在保持兼容性的同时添加/删除字段。 | +| `max_depth` | `int` | `50` | 反序列化的最大深度,用于安全防护,防止栈溢出攻击。 | ## 核心方法 @@ -85,17 +85,17 @@ fory.register(MyClass, typename="my.package.MyClass", serializer=custom_serializ ## 语言模式比较 -| 特性 | Python 模式 (`xlang=False`) | 跨语言模式 (`xlang=True`) | -| ----------------- | -------------------------------- | ----------------------------------- | -| **使用场景** | 纯 Python 应用 | 多语言系统 | -| **兼容性** | 仅限 Python | Java、Go、Rust、C++、JavaScript 等 | -| **支持的类型** | 所有 Python 类型 | 仅限跨语言兼容类型 | -| **函数/Lambda** | ✓ 支持 | ✗ 不允许 | -| **本地类** | ✓ 支持 | ✗ 不允许 | -| **动态类** | ✓ 支持 | ✗ 不允许 | -| **Schema 演化** | ✓ 支持(需要 `compatible=True`) | ✓ 支持(需要 `compatible=True`) | -| **性能** | 极快 | 非常快 | -| **数据大小** | 紧凑 | 紧凑(带类型元数据) | +| 特性 | Python 模式 (`xlang=False`) | 跨语言模式 (`xlang=True`) | +| --------------- | -------------------------------- | ---------------------------------- | +| **使用场景** | 纯 Python 应用 | 多语言系统 | +| **兼容性** | 仅限 Python | Java、Go、Rust、C++、JavaScript 等 | +| **支持的类型** | 所有 Python 类型 | 仅限跨语言兼容类型 | +| **函数/Lambda** | ✓ 支持 | ✗ 不允许 | +| **本地类** | ✓ 支持 | ✗ 不允许 | +| **动态类** | ✓ 支持 | ✗ 不允许 | +| **Schema 演化** | ✓ 支持(需要 `compatible=True`) | ✓ 支持(需要 `compatible=True`) | +| **性能** | 极快 | 非常快 | +| **数据大小** | 紧凑 | 紧凑(带类型元数据) | ## Python 模式 (`xlang=False`) diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-0.14/docs/guide/python/migration.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-0.14/docs/guide/python/migration.md index e4bbbe14b..7ceb761f6 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-0.14/docs/guide/python/migration.md +++ b/i18n/zh-CN/docusaurus-plugin-content-docs/version-0.14/docs/guide/python/migration.md @@ -63,13 +63,13 @@ result = f.loads(data) ## 主要区别 -| 特性 | pickle | JSON | pyfory | -| ---------- | -------- | ---- | ---------------- | -| 性能 | 中等 | 慢 | 快 | -| 数据大小 | 大 | 大 | 紧凑 | -| 类型支持 | 所有 Python | 受限 | 所有 Python | -| 跨语言 | 否 | 是 | 是(xlang 模式) | -| 安全性 | 低 | 高 | 可配置 | +| 特性 | pickle | JSON | pyfory | +| -------- | ----------- | ---- | ---------------- | +| 性能 | 中等 | 慢 | 快 | +| 数据大小 | 大 | 大 | 紧凑 | +| 类型支持 | 所有 Python | 受限 | 所有 Python | +| 跨语言 | 否 | 是 | 是(xlang 模式) | +| 安全性 | 低 | 高 | 可配置 | ## 迁移提示 diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-0.14/docs/guide/python/row-format.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-0.14/docs/guide/python/row-format.md index 92c5cfdce..d6e415734 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-0.14/docs/guide/python/row-format.md +++ b/i18n/zh-CN/docusaurus-plugin-content-docs/version-0.14/docs/guide/python/row-format.md @@ -27,13 +27,13 @@ Apache Fory™ 提供随机访问行格式,可以在不完全反序列化的 **核心优势:** -| 特性 | 描述 | -| ---------------- | ------------------------------------------ | -| 零拷贝访问 | 无需反序列化整个对象即可读取嵌套字段 | -| 内存效率 | 直接从磁盘内存映射大型数据集 | -| 跨语言 | Python、Java、C++ 之间的二进制格式兼容 | -| 部分反序列化 | 仅反序列化所需的特定元素 | -| 高性能 | 跳过不必要的数据解析,适用于分析工作负载 | +| 特性 | 描述 | +| ------------ | ---------------------------------------- | +| 零拷贝访问 | 无需反序列化整个对象即可读取嵌套字段 | +| 内存效率 | 直接从磁盘内存映射大型数据集 | +| 跨语言 | Python、Java、C++ 之间的二进制格式兼容 | +| 部分反序列化 | 仅反序列化所需的特定元素 | +| 高性能 | 跳过不必要的数据解析,适用于分析工作负载 | ## 基础用法 diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-0.14/docs/guide/python/security.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-0.14/docs/guide/python/security.md index b44ba48d9..faef4668b 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-0.14/docs/guide/python/security.md +++ b/i18n/zh-CN/docusaurus-plugin-content-docs/version-0.14/docs/guide/python/security.md @@ -122,15 +122,15 @@ result = fory.deserialize(data) # 将调用策略钩子 ## 可用的策略钩子 -| 钩子 | 描述 | -| -------------------------------------------- | ------------------------------ | -| `validate_class(cls, is_local)` | 在反序列化期间验证/阻止类类型 | -| `validate_module(module, is_local)` | 验证/阻止模块导入 | -| `validate_function(func, is_local)` | 验证/阻止函数引用 | -| `intercept_reduce_call(callable_obj, args)` | 拦截 `__reduce__` 调用 | +| 钩子 | 描述 | +| -------------------------------------------- | ------------------------------------- | +| `validate_class(cls, is_local)` | 在反序列化期间验证/阻止类类型 | +| `validate_module(module, is_local)` | 验证/阻止模块导入 | +| `validate_function(func, is_local)` | 验证/阻止函数引用 | +| `intercept_reduce_call(callable_obj, args)` | 拦截 `__reduce__` 调用 | | `inspect_reduced_object(obj)` | 检查/替换通过 `__reduce__` 创建的对象 | -| `intercept_setstate(obj, state)` | 在 `__setstate__` 之前清理状态 | -| `authorize_instantiation(cls, args, kwargs)` | 控制类实例化 | +| `intercept_setstate(obj, state)` | 在 `__setstate__` 之前清理状态 | +| `authorize_instantiation(cls, args, kwargs)` | 控制类实例化 | **另请参阅:** `pyfory/policy.py` 包含每个钩子的详细文档和示例。 diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-0.14/docs/guide/rust/basic-serialization.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-0.14/docs/guide/rust/basic-serialization.md index b569868be..f35f7e0f0 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-0.14/docs/guide/rust/basic-serialization.md +++ b/i18n/zh-CN/docusaurus-plugin-content-docs/version-0.14/docs/guide/rust/basic-serialization.md @@ -81,52 +81,52 @@ assert_eq!(person, decoded); ### 原始类型 -| Rust 类型 | 描述 | -| ------------------------- | -------------- | -| `bool` | 布尔值 | -| `i8`, `i16`, `i32`, `i64` | 有符号整数 | -| `f32`, `f64` | 浮点数 | -| `String` | UTF-8 字符串 | +| Rust 类型 | 描述 | +| ------------------------- | ------------ | +| `bool` | 布尔值 | +| `i8`, `i16`, `i32`, `i64` | 有符号整数 | +| `f32`, `f64` | 浮点数 | +| `String` | UTF-8 字符串 | ### 集合类型 -| Rust 类型 | 描述 | -| ---------------- | -------------- | -| `Vec<T>` | 动态数组 | -| `VecDeque<T>` | 双端队列 | -| `LinkedList<T>` | 双向链表 | -| `HashMap<K, V>` | 哈希映射 | -| `BTreeMap<K, V>` | 有序映射 | -| `HashSet<T>` | 哈希集合 | -| `BTreeSet<T>` | 有序集合 | -| `BinaryHeap<T>` | 二叉堆 | -| `Option<T>` | 可选值 | +| Rust 类型 | 描述 | +| ---------------- | -------- | +| `Vec<T>` | 动态数组 | +| `VecDeque<T>` | 双端队列 | +| `LinkedList<T>` | 双向链表 | +| `HashMap<K, V>` | 哈希映射 | +| `BTreeMap<K, V>` | 有序映射 | +| `HashSet<T>` | 哈希集合 | +| `BTreeSet<T>` | 有序集合 | +| `BinaryHeap<T>` | 二叉堆 | +| `Option<T>` | 可选值 | ### 智能指针 -| Rust 类型 | 描述 | -| ------------ | ------------------------------------------ | -| `Box<T>` | 堆分配 | -| `Rc<T>` | 引用计数(跟踪共享引用) | -| `Arc<T>` | 线程安全引用计数(跟踪共享引用) | -| `RcWeak<T>` | 指向 `Rc<T>` 的弱引用(打破循环引用) | -| `ArcWeak<T>` | 指向 `Arc<T>` 的弱引用(打破循环引用) | -| `RefCell<T>` | 内部可变性(运行时借用检查) | -| `Mutex<T>` | 线程安全内部可变性 | +| Rust 类型 | 描述 | +| ------------ | -------------------------------------- | +| `Box<T>` | 堆分配 | +| `Rc<T>` | 引用计数(跟踪共享引用) | +| `Arc<T>` | 线程安全引用计数(跟踪共享引用) | +| `RcWeak<T>` | 指向 `Rc<T>` 的弱引用(打破循环引用) | +| `ArcWeak<T>` | 指向 `Arc<T>` 的弱引用(打破循环引用) | +| `RefCell<T>` | 内部可变性(运行时借用检查) | +| `Mutex<T>` | 线程安全内部可变性 | ### 日期和时间 -| Rust 类型 | 描述 | -| ----------------------- | -------------------- | -| `chrono::NaiveDate` | 不带时区的日期 | -| `chrono::NaiveDateTime` | 不带时区的时间戳 | +| Rust 类型 | 描述 | +| ----------------------- | ---------------- | +| `chrono::NaiveDate` | 不带时区的日期 | +| `chrono::NaiveDateTime` | 不带时区的时间戳 | ### 自定义类型 -| 宏 | 描述 | -| ----------------------- | ------------------ | -| `#[derive(ForyObject)]` | 对象图序列化 | -| `#[derive(ForyRow)]` | 行格式序列化 | +| 宏 | 描述 | +| ----------------------- | ------------ | +| `#[derive(ForyObject)]` | 对象图序列化 | +| `#[derive(ForyRow)]` | 行格式序列化 | ## 序列化 API diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-0.14/docs/guide/rust/configuration.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-0.14/docs/guide/rust/configuration.md index 336a87e0c..6e2a99225 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-0.14/docs/guide/rust/configuration.md +++ b/i18n/zh-CN/docusaurus-plugin-content-docs/version-0.14/docs/guide/rust/configuration.md @@ -112,11 +112,11 @@ let fory = Fory::default() ## 配置摘要 -| 选项 | 描述 | 默认值 | -| -------------------- | ---------------------------- | ------- | -| `compatible(bool)` | 启用 schema 演化 | `false` | -| `xlang(bool)` | 启用跨语言模式 | `false` | -| `max_dyn_depth(u32)` | 动态类型的最大嵌套深度 | `5` | +| 选项 | 描述 | 默认值 | +| -------------------- | ---------------------- | ------- | +| `compatible(bool)` | 启用 schema 演化 | `false` | +| `xlang(bool)` | 启用跨语言模式 | `false` | +| `max_dyn_depth(u32)` | 动态类型的最大嵌套深度 | `5` | ## 相关主题 diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-0.14/docs/guide/rust/cross-language.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-0.14/docs/guide/rust/cross-language.md index 265b8d9f7..c114176d1 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-0.14/docs/guide/rust/cross-language.md +++ b/i18n/zh-CN/docusaurus-plugin-content-docs/version-0.14/docs/guide/rust/cross-language.md @@ -133,16 +133,16 @@ person = fory.deserialize(bytes_from_rust) ### 常见类型映射 -| Rust | Java | Python | -| -------------- | ------------ | ------------- | -| `i32` | `int` | `int32` | -| `i64` | `long` | `int64` | -| `f32` | `float` | `float32` | -| `f64` | `double` | `float64` | -| `String` | `String` | `str` | -| `Vec<T>` | `List<T>` | `List[T]` | -| `HashMap<K,V>` | `Map<K,V>` | `Dict[K,V]` | -| `Option<T>` | 可空 `T` | `Optional[T]` | +| Rust | Java | Python | +| -------------- | ---------- | ------------- | +| `i32` | `int` | `int32` | +| `i64` | `long` | `int64` | +| `f32` | `float` | `float32` | +| `f64` | `double` | `float64` | +| `String` | `String` | `str` | +| `Vec<T>` | `List<T>` | `List[T]` | +| `HashMap<K,V>` | `Map<K,V>` | `Dict[K,V]` | +| `Option<T>` | 可空 `T` | `Optional[T]` | ## 最佳实践 diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-0.14/docs/guide/rust/index.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-0.14/docs/guide/rust/index.md index 071bc7cac..26ef86502 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-0.14/docs/guide/rust/index.md +++ b/i18n/zh-CN/docusaurus-plugin-content-docs/version-0.14/docs/guide/rust/index.md @@ -35,11 +35,11 @@ Rust 实现提供多功能的高性能序列化,具有自动内存管理和编 ## Crate 列表 -| Crate | 描述 | 版本 | -| --------------------------------------------------------------------------- | ----------------------- | ----------------------------------------------------------------------------------------------------- | +| Crate | 描述 | 版本 | +| --------------------------------------------------------------------------- | ---------------------------- | ----------------------------------------------------------------------------------------------------- | | [`fory`](https://github.com/apache/fory/blob/main/rust/fory) | 带有 derive macro 的高级 API | [](https://crates.io/crates/fory) | -| [`fory-core`](https://github.com/apache/fory/blob/main/rust/fory-core/) | 核心序列化引擎 | [](https://crates.io/crates/fory-core) | -| [`fory-derive`](https://github.com/apache/fory/blob/main/rust/fory-derive/) | 过程宏 | [](https://crates.io/crates/fory-derive) | +| [`fory-core`](https://github.com/apache/fory/blob/main/rust/fory-core/) | 核心序列化引擎 | [](https://crates.io/crates/fory-core) | +| [`fory-derive`](https://github.com/apache/fory/blob/main/rust/fory-derive/) | 过程宏 | [](https://crates.io/crates/fory-derive) | ## 快速开始 diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-0.14/docs/guide/rust/references.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-0.14/docs/guide/rust/references.md index 2240280a2..1ff6b9171 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-0.14/docs/guide/rust/references.md +++ b/i18n/zh-CN/docusaurus-plugin-content-docs/version-0.14/docs/guide/rust/references.md @@ -190,14 +190,14 @@ for child in &decoded.lock().unwrap().children { ## 支持的智能指针类型 -| 类型 | 描述 | -| ------------ | ------------------------------------------ | -| `Rc<T>` | 引用计数,跟踪共享引用 | -| `Arc<T>` | 线程安全引用计数,跟踪共享引用 | -| `RcWeak<T>` | 指向 `Rc<T>` 的弱引用,打破循环引用 | -| `ArcWeak<T>` | 指向 `Arc<T>` 的弱引用,打破循环引用 | -| `RefCell<T>` | 内部可变性,运行时借用检查 | -| `Mutex<T>` | 线程安全内部可变性 | +| 类型 | 描述 | +| ------------ | ------------------------------------ | +| `Rc<T>` | 引用计数,跟踪共享引用 | +| `Arc<T>` | 线程安全引用计数,跟踪共享引用 | +| `RcWeak<T>` | 指向 `Rc<T>` 的弱引用,打破循环引用 | +| `ArcWeak<T>` | 指向 `Arc<T>` 的弱引用,打破循环引用 | +| `RefCell<T>` | 内部可变性,运行时借用检查 | +| `Mutex<T>` | 线程安全内部可变性 | ## 最佳实践 diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-0.14/docs/guide/rust/row-format.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-0.14/docs/guide/rust/row-format.md index 27aeb4cfd..5f08c0048 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-0.14/docs/guide/rust/row-format.md +++ b/i18n/zh-CN/docusaurus-plugin-content-docs/version-0.14/docs/guide/rust/row-format.md @@ -103,21 +103,21 @@ assert_eq!(prefs.values().get(0), "en"); ## 性能比较 -| 操作 | 对象格式 | 行格式 | -| ---------------- | ------------------------ | ------------------------ | -| 完整反序列化 | 分配所有对象 | 零分配 | -| 单字段访问 | 需要完整反序列化 | 直接偏移读取 | -| 内存使用 | 内存中的完整对象图 | 仅已访问字段在内存中 | -| 适用于 | 小对象,完整访问 | 大对象,选择性访问 | +| 操作 | 对象格式 | 行格式 | +| ------------ | ------------------ | -------------------- | +| 完整反序列化 | 分配所有对象 | 零分配 | +| 单字段访问 | 需要完整反序列化 | 直接偏移读取 | +| 内存使用 | 内存中的完整对象图 | 仅已访问字段在内存中 | +| 适用于 | 小对象,完整访问 | 大对象,选择性访问 | ## ForyRow vs ForyObject -| 功能 | `#[derive(ForyRow)]` | `#[derive(ForyObject)]` | -| ---------------- | --------------------- | ----------------------- | -| 反序列化 | 零拷贝,延迟 | 完整对象重构 | -| 字段访问 | 直接从二进制 | 正常结构体访问 | -| 内存使用 | 最小 | 完整对象 | -| 最适合 | 分析,大数据 | 通用序列化 | +| 功能 | `#[derive(ForyRow)]` | `#[derive(ForyObject)]` | +| -------- | -------------------- | ----------------------- | +| 反序列化 | 零拷贝,延迟 | 完整对象重构 | +| 字段访问 | 直接从二进制 | 正常结构体访问 | +| 内存使用 | 最小 | 完整对象 | +| 最适合 | 分析,大数据 | 通用序列化 | ## 相关主题 diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-0.14/docs/guide/rust/troubleshooting.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-0.14/docs/guide/rust/troubleshooting.md index ddf48626f..5bb317a93 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-0.14/docs/guide/rust/troubleshooting.md +++ b/i18n/zh-CN/docusaurus-plugin-content-docs/version-0.14/docs/guide/rust/troubleshooting.md @@ -151,11 +151,11 @@ cargo test --features tests ## 快速参考 -| 环境变量 | 目的 | -| ---------------------------- | -------------------------- | -| `RUST_BACKTRACE=1` | 启用堆栈跟踪 | -| `FORY_PANIC_ON_ERROR=1` | 在错误位置 panic 以调试 | -| `ENABLE_FORY_DEBUG_OUTPUT=1` | 打印字段级读/写事件 | +| 环境变量 | 目的 | +| ---------------------------- | ----------------------- | +| `RUST_BACKTRACE=1` | 启用堆栈跟踪 | +| `FORY_PANIC_ON_ERROR=1` | 在错误位置 panic 以调试 | +| `ENABLE_FORY_DEBUG_OUTPUT=1` | 打印字段级读/写事件 | ## 相关主题 diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-0.14/docs/guide/scala/_category_.json b/i18n/zh-CN/docusaurus-plugin-content-docs/version-0.14/docs/guide/scala/_category_.json index fb421bf73..6cc51ddde 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-0.14/docs/guide/scala/_category_.json +++ b/i18n/zh-CN/docusaurus-plugin-content-docs/version-0.14/docs/guide/scala/_category_.json @@ -3,4 +3,4 @@ "position": 7, "collapsible": true, "collapsed": true -} \ No newline at end of file +} diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-0.14/docs/guide/xlang/_category_.json b/i18n/zh-CN/docusaurus-plugin-content-docs/version-0.14/docs/guide/xlang/_category_.json index 94a6d63a6..bd191529c 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-0.14/docs/guide/xlang/_category_.json +++ b/i18n/zh-CN/docusaurus-plugin-content-docs/version-0.14/docs/guide/xlang/_category_.json @@ -3,4 +3,4 @@ "position": 9, "collapsible": true, "collapsed": true -} \ No newline at end of file +} diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-0.14/docs/guide/xlang/index.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-0.14/docs/guide/xlang/index.md index 0f7199a23..050f20431 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-0.14/docs/guide/xlang/index.md +++ b/i18n/zh-CN/docusaurus-plugin-content-docs/version-0.14/docs/guide/xlang/index.md @@ -101,14 +101,14 @@ print(f"{person.name}, {person.age}") # Alice, 30 ## 文档 -| 主题 | 描述 | -| --------------------------------------------------------------------------------- | ---------------------------- | -| [入门指南](getting-started.md) | 所有语言的安装和基本设置 | -| [类型映射](https://fory.apache.org/docs/specification/xlang_type_mapping) | 跨语言类型映射参考 | -| [序列化](serialization.md) | 内置类型、自定义类型、引用处理 | -| [零拷贝](zero-copy.md) | 大型数据的带外序列化 | -| [行格式](row_format.md) | 具有随机访问的缓存友好二进制格式 | -| [故障排查](troubleshooting.md) | 常见问题及解决方案 | +| 主题 | 描述 | +| ------------------------------------------------------------------------- | -------------------------------- | +| [入门指南](getting-started.md) | 所有语言的安装和基本设置 | +| [类型映射](https://fory.apache.org/docs/specification/xlang_type_mapping) | 跨语言类型映射参考 | +| [序列化](serialization.md) | 内置类型、自定义类型、引用处理 | +| [零拷贝](zero-copy.md) | 大型数据的带外序列化 | +| [行格式](row_format.md) | 具有随机访问的缓存友好二进制格式 | +| [故障排查](troubleshooting.md) | 常见问题及解决方案 | ## 特定语言指南 --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
