You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@fory.apache.org by ch...@apache.org on 2026/08/07 07:59:10 UTC

(fory-site) branch release_1.6.0 created (now 3f545c8d7c)

This is an automated email from the ASF dual-hosted git repository.

chaokunyang pushed a change to branch release_1.6.0
in repository https://gitbox.apache.org/repos/asf/fory-site.git


      at 3f545c8d7c Version Apache Fory 1.6.0 documentation

This branch includes the following new commits:

     new 938d5d5e1a Release Apache Fory 1.6.0 site content
     new da5eab631e Translate Apache Fory 1.6.0 release content
     new 3f545c8d7c Version Apache Fory 1.6.0 documentation

The 3 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@fory.apache.org
For additional commands, e-mail: commits-help@fory.apache.org


(fory-site) 02/03: Translate Apache Fory 1.6.0 release content

Posted by ch...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

chaokunyang pushed a commit to branch release_1.6.0
in repository https://gitbox.apache.org/repos/asf/fory-site.git

commit da5eab631e616050f2d250dbf431b79965e17834
Author: chaokunyang <sh...@gmail.com>
AuthorDate: Fri Aug 7 15:35:17 2026 +0800

    Translate Apache Fory 1.6.0 release content
---
 .../2026-08-07-fory_1_6_0_released.md              | 191 +++++++++++++++++++++
 .../current/benchmarks/index.md                    |   2 +-
 .../current/benchmarks/methodology.md              |   2 +-
 .../object-serialization/xlang/_category_.json     |   1 -
 .../object-serialization/xlang/go/README.md        |  58 +++----
 .../object-serialization/xlang/swift/README.md     |  34 ++--
 .../current/compiler/build-integration.md          |   2 +-
 .../current/compiler/cli.md                        |   2 +-
 .../current/compiler/generated-code/index.md       |   8 +-
 .../current/compiler/index.md                      |   2 +-
 .../current/development/index.md                   |   2 +-
 .../current/grpc/cpp.md                            |   2 +-
 .../current/grpc/csharp.md                         |   6 +-
 .../current/grpc/dart.md                           |   2 +-
 .../current/grpc/go.md                             |   2 +-
 .../current/grpc/index.md                          |  20 +--
 .../current/grpc/java.md                           |   2 +-
 .../current/grpc/javascript.md                     |   2 +-
 .../current/grpc/kotlin.md                         |   2 +-
 .../current/grpc/python.md                         |   2 +-
 .../current/grpc/rust.md                           |   4 +-
 .../current/grpc/scala.md                          |   2 +-
 .../current/grpc/troubleshooting.md                |   4 +-
 .../current/index.md                               |  10 +-
 .../current/introduction/choose-a-format.md        |  14 +-
 .../current/introduction/index.md                  |  14 +-
 .../current/introduction/product-model.md          |  45 -----
 .../current/introduction/support-matrix.md         |   6 +-
 .../current/json/android.md                        |  10 +-
 .../current/json/annotations.md                    |   8 +-
 .../current/json/getting-started.md                |   4 +-
 .../current/json/graalvm.md                        |   6 +-
 .../current/json/index.md                          |  30 ++--
 .../current/json/object-mapping.md                 |   6 +-
 .../current/object-serialization/core-concepts.md  |  22 +--
 .../cpp/basic-serialization.md                     |   2 +-
 .../object-serialization/cpp/configuration.md      |   2 +-
 .../current/object-serialization/cpp/index.md      |   8 +-
 .../object-serialization/cpp/polymorphism.md       |   2 +-
 .../current/object-serialization/cpp/security.md   |   6 +-
 .../csharp/basic-serialization.md                  |   2 +-
 .../object-serialization/csharp/configuration.md   |   2 +-
 .../object-serialization/csharp/external-types.md  |   4 +-
 .../current/object-serialization/csharp/index.md   |   2 +-
 .../object-serialization/csharp/schema-metadata.md |   2 +-
 .../object-serialization/csharp/security.md        |   6 +-
 .../dart/basic-serialization.md                    |   2 +-
 .../object-serialization/dart/configuration.md     |   2 +-
 .../object-serialization/dart/external-types.md    |   2 +-
 .../current/object-serialization/dart/index.md     |   2 +-
 .../object-serialization/dart/schema-evolution.md  |   2 +-
 .../current/object-serialization/dart/security.md  |   6 +-
 .../object-serialization/dart/type-registration.md |   4 +-
 .../object-serialization/go/basic-serialization.md |   2 +-
 .../object-serialization/go/configuration.md       |   4 +-
 .../current/object-serialization/go/security.md    |   6 +-
 .../current/object-serialization/index.md          |  38 ++--
 .../current/object-serialization/java/android.md   |   2 +-
 .../java/basic-serialization.md                    |   2 +-
 .../current/object-serialization/java/index.md     |   4 +-
 .../object-serialization/java/schema-evolution.md  |   2 +-
 .../current/object-serialization/java/security.md  |   6 +-
 .../java/static-generated-serializers.md           |   2 +-
 .../object-serialization/java/troubleshooting.md   |   2 +-
 .../javascript/basic-serialization.md              |   2 +-
 .../javascript/configuration.md                    |   2 +-
 .../object-serialization/javascript/security.md    |   6 +-
 .../kotlin/basic-serialization.md                  |   2 +-
 .../current/object-serialization/kotlin/index.md   |   4 +-
 .../current/object-serialization/kotlin/native.md  |   4 +-
 .../object-serialization/kotlin/security.md        |   6 +-
 .../current/object-serialization/native.md         | 131 +++++++++++++-
 .../python/basic-serialization.md                  |   2 +-
 .../object-serialization/python/schema-metadata.md |   2 +-
 .../object-serialization/python/security.md        |   6 +-
 .../rust/basic-serialization.md                    |   2 +-
 .../object-serialization/rust/configuration.md     |   2 +-
 .../object-serialization/rust/external-types.md    |   2 +-
 .../current/object-serialization/rust/index.md     |   8 +-
 .../current/object-serialization/rust/native.md    |   2 +-
 .../object-serialization/rust/polymorphism.md      |   2 +-
 .../current/object-serialization/rust/security.md  |   6 +-
 .../object-serialization/rust/type-registration.md |   2 +-
 .../current/object-serialization/scala/index.md    |   2 +-
 .../current/object-serialization/scala/native.md   |   4 +-
 .../current/object-serialization/scala/security.md |   6 +-
 .../swift/basic-serialization.md                   |   2 +-
 .../object-serialization/swift/configuration.md    |   2 +-
 .../current/object-serialization/swift/security.md |   6 +-
 .../current/object-serialization/xlang.md          |  60 +++----
 .../current/row-format/index.md                    |   8 +-
 .../current/row-format/java.md                     |   4 +-
 .../current/row-format/troubleshooting.md          |   2 +-
 .../specification/xlang_implementation_guide.md    |  42 ++---
 .../specification/xlang_serialization_spec.md      |  10 +-
 .../current/specification/xlang_type_mapping.md    |   4 +-
 .../current/start/cpp.md                           |   2 +-
 .../current/start/csharp.md                        |   2 +-
 .../current/start/dart.md                          |   2 +-
 .../current/start/go.md                            |   2 +-
 .../current/start/index.md                         |  22 +--
 .../current/start/java.md                          |   6 +-
 .../current/start/javascript.md                    |   4 +-
 .../current/start/kotlin.md                        |   2 +-
 .../current/start/python.md                        |   2 +-
 .../current/start/rust.md                          |   2 +-
 .../current/start/scala.md                         |   2 +-
 .../current/start/swift.md                         |   2 +-
 .../download/index.md                              |  14 +-
 109 files changed, 664 insertions(+), 402 deletions(-)

diff --git a/i18n/zh-CN/docusaurus-plugin-content-blog/2026-08-07-fory_1_6_0_released.md b/i18n/zh-CN/docusaurus-plugin-content-blog/2026-08-07-fory_1_6_0_released.md
new file mode 100644
index 0000000000..b4a29bf479
--- /dev/null
+++ b/i18n/zh-CN/docusaurus-plugin-content-blog/2026-08-07-fory_1_6_0_released.md
@@ -0,0 +1,191 @@
+---
+slug: fory_1_6_0_release
+title: Apache Fory 1.6.0 正式发布
+authors: [chaokunyang]
+tags: [fory, java, cpp, rust, csharp, swift, dart]
+---
+
+Apache Fory 团队很高兴地宣布 1.6.0 版本正式发布。本次发布包含 [23 个 PR](https://github.com/apache/fory/compare/v1.5.0...v1.6.0)。请访问[快速开始](https://fory.apache.org/zh-CN/docs/start/)页面,获取适用于您所用平台的库。
+
+## 亮点
+
+- 增强 Fory JSON,新增日期/时间格式注解与 GraalVM 代码生成支持,并进一步提升性能。
+- 新增 C++ gRPC 代码生成支持。
+- 对齐并增强 Rust Row Format 支持。
+
+## 增强 Fory JSON
+
+Fory 1.6.0 扩展了 Fory JSON 的映射与部署能力,并进一步优化序列化和反序列化路径。新的 `JsonFormat` 注解在序列化和反序列化两个方向应用 `DateTimeFormatter` 格式,还可以为带时刻语义的值指定时区。该注解既支持直接的日期/时间字段,也支持一层直接包装,包括集合元素、`Optional` 值和 Map 值。
+
+```java
+import java.time.Instant;
+import java.time.LocalDate;
+import java.util.List;
+import org.apache.fory.json.ForyJson;
+import org.apache.fory.json.annotation.JsonFormat;
+
+public final class Schedule {
+  @JsonFormat(pattern = "dd/MM/uuuu")
+  public LocalDate day;
+
+  @JsonFormat(pattern = "dd/MM/uuuu")
+  public List<LocalDate> days;
+
+  @JsonFormat(pattern = "uuuu-MM-dd HH:mm:ss XXX", timezone = "Asia/Shanghai")
+  public Instant timestamp;
+}
+
+ForyJson json = ForyJson.builder().build();
+Schedule schedule = json.fromJson(
+    "{\"day\":\"02/01/2024\",\"days\":[\"03/01/2024\"],"
+        + "\"timestamp\":\"2024-01-02 11:04:05 +08:00\"}",
+    Schedule.class);
+String encoded = json.toJson(schedule);
+```
+
+Fory JSON 现在还支持在 GraalVM Native Image 中使用生成的 codec。使用 `JsonType` 标注可达模型;若要在镜像构建期间为某个完整配置生成 codec,可通过可达的 `ForyJsonProvider` 暴露该配置。未由 provider 返回的配置仍会使用预先准备好的解释执行 codec,无需应用添加反射配置。
+
+```java
+import org.apache.fory.json.ForyJson;
+import org.apache.fory.json.annotation.ForyJsonProvider;
+import org.apache.fory.json.annotation.JsonType;
+
+@JsonType
+public final class User {
+  public long id;
+  public String name;
+}
+
+@ForyJsonProvider
+public final class JsonConfigs {
+  public JsonConfigs() {}
+
+  public ForyJson api() {
+    return ForyJson.builder().writeNullFields(true).build();
+  }
+}
+```
+
+经过优化的序列化和反序列化路径降低了常见 JSON 工作负载的开销。完整行为与约束请参阅 [Fory JSON 注解](/zh-CN/docs/json/annotations#jsonformat)和 [GraalVM Native Image](/zh-CN/docs/json/graalvm)指南。
+
+## C++ gRPC 代码生成
+
+Fory Compiler 现在可以从 Fory IDL、protobuf IDL 或 FlatBuffers IDL 生成同步 C++ gRPC service 配套代码。gRPC C++ 负责传输,生成的 Fory codec 负责序列化请求和响应载荷,因此 service 实现无需手动执行序列化或类型注册。
+
+在 Fory IDL 中定义 service,并将 `--grpc` 与 C++ 输出选项一起传入:
+
+```protobuf
+package demo.greeter;
+
+message HelloRequest {
+  string name = 1;
+}
+
+message HelloReply {
+  string reply = 1;
+}
+
+service Greeter {
+  rpc SayHello (HelloRequest) returns (HelloReply);
+}
+```
+
+```bash
+foryc service.fdl --cpp_out=./generated/cpp --grpc
+```
+
+编译器会生成 C++ 模型、service 接口、Fory codec、client stub、server adapter 和路由实现。应用只需实现生成的接口,再向常规 gRPC C++ server 注册对应 adapter:
+
+```cpp
+#include "demo_greeter.service.grpc.h"
+
+class MyGreeter final : public demo::greeter::service::Greeter {
+ public:
+  ::grpc::Status SayHello(
+      ::grpc::ServerContext* context,
+      const ::demo::greeter::HelloRequest* request,
+      ::demo::greeter::HelloReply* response) override {
+    (void)context;
+    response->set_reply("Hello, " + request->name());
+    return ::grpc::Status::OK;
+  }
+};
+
+MyGreeter implementation;
+demo::greeter::service::grpc::GreeterServiceGrpc service(&implementation);
+::grpc::ServerBuilder builder;
+builder.AddListeningPort("0.0.0.0:50051", ::grpc::InsecureServerCredentials());
+builder.RegisterService(&service);
+std::unique_ptr<::grpc::Server> server = builder.BuildAndStart();
+```
+
+该能力通过同步 gRPC C++ API 支持一元、客户端流式、服务端流式和双向流式 RPC。依赖、生成文件、客户端用法和构建集成请参阅 [C++ gRPC 指南](/zh-CN/docs/grpc/cpp)。
+
+## 对齐并增强 Rust Row Format
+
+Rust Row Format 现在与 Java、C++ 和 Python 共享的 Standard Row Format 保持一致。它支持由 Schema 驱动的 struct、array、map、嵌套 row、可空值、时间值和经过检查的借用 view。读取端无需重建完整值,即可直接从编码字节访问指定字段和集合元素。
+
+```rust
+use fory::{from_row, to_row, Error, ForyRow, RowView};
+use std::collections::BTreeMap;
+
+#[derive(ForyRow)]
+struct UserProfile {
+    id: i64,
+    name: String,
+    scores: Vec<i32>,
+    labels: BTreeMap<String, String>,
+}
+
+fn main() -> Result<(), Error> {
+    let bytes = to_row(&UserProfile {
+        id: 42,
+        name: "Ada".to_owned(),
+        scores: vec![98, 100],
+        labels: BTreeMap::from([("team".to_owned(), "compiler".to_owned())]),
+    })?;
+
+    let row = from_row::<UserProfile>(&bytes)?;
+    assert_eq!(row.id()?, 42);
+    assert_eq!(row.name()?, "Ada");
+    assert_eq!(row.scores()?.get(1)?, 100);
+    assert_eq!(row.labels()?.value(0)?, "compiler");
+    assert_eq!(row.as_bytes(), bytes);
+    Ok(())
+}
+```
+
+生成的字段方法、array 迭代和 map 索引访问都会返回 `Result`,并在访问时校验所引用的字节。重复编码时,可以使用 `to_row_into` 复用调用方持有的缓冲区。支持的类型矩阵、二进制布局和跨语言 Schema 要求请参阅 [Rust Row Format 指南](/zh-CN/docs/row-format/rust)。
+
+## 新功能
+
+- feat(java): use fixed Fory JSON execution states,由 @chaokunyang 在 https://github.com/apache/fory/pull/3897 提交
+- feat: add more read checks,由 @chaokunyang 在 https://github.com/apache/fory/pull/3898 提交
+- feat(compiler): support C++ gRPC code generation,由 @BaldDemian 在 https://github.com/apache/fory/pull/3877 提交
+- feat(java): add JSON date/time format annotation,由 @chaokunyang 在 https://github.com/apache/fory/pull/3908 提交
+- feat: bound unbacked container deserialization,由 @chaokunyang 在 https://github.com/apache/fory/pull/3910 提交
+- feat(json): add GraalVM codegen support for json,由 @chaokunyang 在 https://github.com/apache/fory/pull/3907 提交
+- feat(java): support timezone in JSON date formats,由 @chaokunyang 在 https://github.com/apache/fory/pull/3911 提交
+- refactor: unify read progress capability naming,由 @chaokunyang 在 https://github.com/apache/fory/pull/3912 提交
+- feat(java): add JSON graph budgets and validators,由 @chaokunyang 在 https://github.com/apache/fory/pull/3909 提交
+- feat(rust): align row format with specification,由 @chaokunyang 在 https://github.com/apache/fory/pull/3913 提交
+- feat(rust): enhance rust row format,由 @chaokunyang 在 https://github.com/apache/fory/pull/3915 提交
+- perf(json): optimize json performance,由 @chaokunyang 在 https://github.com/apache/fory/pull/3914 提交
+
+## Bug 修复
+
+- fix(ci): pin Ruff version to 0.15.22,由 @BaldDemian 在 https://github.com/apache/fory/pull/3900 提交
+
+## 其他改进
+
+- docs(java): publish JSON benchmark results,由 @chaokunyang 在 https://github.com/apache/fory/pull/3895 提交
+- docs: rename manual serializers to custom serializers,由 @chaokunyang 在 https://github.com/apache/fory/pull/3896 提交
+- chore(release): bump versions after 1.5.0,由 @chaokunyang 在 https://github.com/apache/fory/pull/3905 提交
+- docs(java): document cyclic container limitation,由 @chaokunyang 在 https://github.com/apache/fory/pull/3906 提交
+- docs: reorganize documentation by capability,由 @chaokunyang 在 https://github.com/apache/fory/pull/3916 提交
+- docs: update start docs,由 @chaokunyang 在 https://github.com/apache/fory/pull/3918 提交
+- chore: Bump brace-expansion in /javascript,由 @dependabot[bot] 在 https://github.com/apache/fory/pull/3917 提交
+- docs(json): update docs,由 @chaokunyang 在 https://github.com/apache/fory/pull/3919 提交
+- chore: Bump brace-expansion, @typescript-eslint/eslint-plugin, @typescript-eslint/parser, eslint, jest and ts-jest in /javascript,由 @dependabot[bot] 在 https://github.com/apache/fory/pull/3920 提交
+
+**完整变更日志**:https://github.com/apache/fory/compare/v1.5.0...v1.6.0
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/benchmarks/index.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/benchmarks/index.md
index c196520e50..d6536bc154 100644
--- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/benchmarks/index.md
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/benchmarks/index.md
@@ -122,5 +122,5 @@ Java 基准测试使用 `docs/benchmarks/object-serialization/native/java` 中
 
 ## 正确解读结果
 
-请先阅读[方法论](methodology.md),再打开能力、运行时、Schema、模式和操作均与自身工作负载匹配的报告。
+请先阅读[方法论](methodology.md),再打开能力、语言、Schema、模式和操作均与自身工作负载匹配的报告。
 仓库中保存的结果只是其记录环境下的历史证据,并不保证适用于其他应用或当前 main 分支。
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/benchmarks/methodology.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/benchmarks/methodology.md
index c0ce670822..aa7647b0e5 100644
--- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/benchmarks/methodology.md
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/benchmarks/methodology.md
@@ -34,7 +34,7 @@ license: |
 ## 解读报告
 
 只比较同一种操作和等价的数据语义。不要在不说明语义差异的情况下,将 xlang 载荷与 native 载荷比较,
-或将完整对象重建与 Row Format 字段访问比较。基于 JIT 和代码生成的运行时需要有代表性的预热。
+或将完整对象重建与 Row Format 字段访问比较。基于 JIT 和代码生成的实现需要有代表性的预热。
 
 如果决策依赖当前代码,请运行当前有效的 benchmark harness。仓库中保存的报告只代表其记录的
 commit 和环境。
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/benchmarks/object-serialization/xlang/_category_.json b/i18n/zh-CN/docusaurus-plugin-content-docs/current/benchmarks/object-serialization/xlang/_category_.json
index 147b2ed6ea..d2418b5e5e 100644
--- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/benchmarks/object-serialization/xlang/_category_.json
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/benchmarks/object-serialization/xlang/_category_.json
@@ -1,6 +1,5 @@
 {
   "position": 1,
-  "key": "benchmark-object-serialization-xlang",
   "label": "Xlang",
   "collapsible": true,
   "collapsed": true
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/benchmarks/object-serialization/xlang/go/README.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/benchmarks/object-serialization/xlang/go/README.md
index 1d00b31563..3ec8c1d2da 100644
--- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/benchmarks/object-serialization/xlang/go/README.md
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/benchmarks/object-serialization/xlang/go/README.md
@@ -1,6 +1,6 @@
 # Go 序列化基准测试报告
 
-生成时间:2026-05-08 17:55:12
+生成时间:2026-08-07 12:14:23
 
 ## 性能图表
 
@@ -16,35 +16,35 @@
 
 | 数据类型          | 操作     | Fory (ops/s) | Protobuf (ops/s) | Msgpack (ops/s) | Fory 对比 PB | Fory 对比 MP |
 | ----------------- | -------- | ------------ | ---------------- | --------------- | ------------ | ------------ |
-| NumericStruct     | 序列化   | 12.74M       | 7.16M            | 3.63M           | 1.78x        | 3.51x        |
-| NumericStruct     | 反序列化 | 10.63M       | 8.40M            | 1.78M           | 1.27x        | 5.98x        |
-| Sample            | 序列化   | 7.16M        | 2.53M            | 646K            | 2.84x        | 11.10x       |
-| Sample            | 反序列化 | 3.27M        | 2.10M            | 343K            | 1.56x        | 9.54x        |
-| MediaContent      | 序列化   | 3.74M        | 1.75M            | 1.14M           | 2.14x        | 3.27x        |
-| MediaContent      | 反序列化 | 2.03M        | 1.23M            | 646K            | 1.66x        | 3.15x        |
-| NumericStructList | 序列化   | 1.10M        | 386K             | 201K            | 2.84x        | 5.44x        |
-| NumericStructList | 反序列化 | 1.09M        | 368K             | 103K            | 2.96x        | 10.54x       |
-| SampleList        | 序列化   | 496K         | 126K             | 36K             | 3.93x        | 13.83x       |
-| SampleList        | 反序列化 | 195K         | 96K              | 17K             | 2.04x        | 11.73x       |
-| MediaContentList  | 序列化   | 250K         | 91K              | 57K             | 2.73x        | 4.38x        |
-| MediaContentList  | 反序列化 | 112K         | 74K              | 31K             | 1.53x        | 3.65x        |
+| NumericStruct     | 序列化   | 18.49M       | 7.63M            | 3.78M           | 2.42x        | 4.90x        |
+| NumericStruct     | 反序列化 | 13.57M       | 8.55M            | 1.99M           | 1.59x        | 6.82x        |
+| Sample            | 序列化   | 8.2M         | 2.72M            | 683.53K         | 3.01x        | 12.00x       |
+| Sample            | 反序列化 | 3.91M        | 2.25M            | 372.3K          | 1.74x        | 10.50x       |
+| MediaContent      | 序列化   | 3.89M        | 2.07M            | 1.22M           | 1.87x        | 3.19x        |
+| MediaContent      | 反序列化 | 2.35M        | 1.77M            | 704.23K         | 1.32x        | 3.33x        |
+| NumericStructList | 序列化   | 1.5M         | 412.88K          | 212.81K         | 3.64x        | 7.06x        |
+| NumericStructList | 反序列化 | 1.18M        | 396.83K          | 104.62K         | 2.98x        | 11.29x       |
+| SampleList        | 序列化   | 484.73K      | 145.75K          | 38.43K          | 3.33x        | 12.61x       |
+| SampleList        | 反序列化 | 225.89K      | 103.72K          | 18.56K          | 2.18x        | 12.17x       |
+| MediaContentList  | 序列化   | 243.43K      | 110.25K          | 68.82K          | 2.21x        | 3.54x        |
+| MediaContentList  | 反序列化 | 132.59K      | 86.84K           | 35.41K          | 1.53x        | 3.74x        |
 
 ## 详细耗时(ns/op)
 
 | 数据类型          | 操作     | Fory   | Protobuf | Msgpack |
 | ----------------- | -------- | ------ | -------- | ------- |
-| NumericStruct     | 序列化   | 78.5   | 139.6    | 275.5   |
-| NumericStruct     | 反序列化 | 94.0   | 119.0    | 562.5   |
-| Sample            | 序列化   | 139.6  | 395.9    | 1549.0  |
-| Sample            | 反序列化 | 306.0  | 475.9    | 2919.0  |
-| MediaContent      | 序列化   | 267.3  | 571.6    | 875.1   |
-| MediaContent      | 反序列化 | 492.4  | 815.8    | 1549.0  |
-| NumericStructList | 序列化   | 912.8  | 2594.0   | 4970.0  |
-| NumericStructList | 反序列化 | 919.9  | 2721.0   | 9698.0  |
-| SampleList        | 序列化   | 2018.0 | 7927.0   | 27909.0 |
-| SampleList        | 反序列化 | 5126.0 | 10460.0  | 60118.0 |
-| MediaContentList  | 序列化   | 4006.0 | 10939.0  | 17553.0 |
-| MediaContentList  | 反序列化 | 8893.0 | 13588.0  | 32439.0 |
+| NumericStruct     | 序列化   | 54.1   | 131.1    | 264.9   |
+| NumericStruct     | 反序列化 | 73.7   | 117.0    | 502.2   |
+| Sample            | 序列化   | 121.9  | 367.4    | 1463.0  |
+| Sample            | 反序列化 | 255.8  | 444.6    | 2686.0  |
+| MediaContent      | 序列化   | 257.4  | 482.0    | 820.0   |
+| MediaContent      | 反序列化 | 426.3  | 564.3    | 1420.0  |
+| NumericStructList | 序列化   | 665.8  | 2422.0   | 4699.0  |
+| NumericStructList | 反序列化 | 846.8  | 2520.0   | 9558.0  |
+| SampleList        | 序列化   | 2063.0 | 6861.0   | 26023.0 |
+| SampleList        | 反序列化 | 4427.0 | 9641.0   | 53893.0 |
+| MediaContentList  | 序列化   | 4108.0 | 9070.0   | 14530.0 |
+| MediaContentList  | 反序列化 | 7542.0 | 11515.0  | 28241.0 |
 
 ### 序列化数据大小(字节)
 
@@ -52,7 +52,7 @@
 | ----------------- | ---- | -------- | ------- |
 | NumericStruct     | 78   | 93       | 88      |
 | Sample            | 445  | 375      | 524     |
-| MediaContent      | 340  | 301      | 400     |
-| NumericStructList | 819  | 1900     | 1766    |
-| SampleList        | 7599 | 7560     | 10486   |
-| MediaContentList  | 5774 | 6080     | 8006    |
+| MediaContent      | 362  | 301      | 400     |
+| NumericStructList | 855  | 1900     | 1766    |
+| SampleList        | 7663 | 7560     | 10486   |
+| MediaContentList  | 5851 | 6080     | 8006    |
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/benchmarks/object-serialization/xlang/swift/README.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/benchmarks/object-serialization/xlang/swift/README.md
index 64f4c57901..ddd72b8129 100644
--- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/benchmarks/object-serialization/xlang/swift/README.md
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/benchmarks/object-serialization/xlang/swift/README.md
@@ -2,10 +2,10 @@
 
 本基准测试比较 Apache Fory、Protocol Buffers 和 JSON 在 Swift 中的序列化与反序列化吞吐量。
 
-## 基准测试产物
+## 基准测试范围
 
-常规/xlang 测试用例由 `swift-benchmark` 构建。外部类型与载体的对比由独立的
-`swift-external-benchmark` 产物构建,因此构建常规产物时不会编译这些模型或序列化器特化实现。
+以下结果涵盖 `swift-benchmark` 运行的常规/xlang 测试用例。外部类型与载体对比使用独立的
+`swift-external-benchmark` 可执行文件,仅在明确请求时才会包含。
 
 ## 吞吐量图
 
@@ -15,9 +15,9 @@
 
 | 项目                   | 值                            |
 | ---------------------- | ----------------------------- |
-| 时间戳                 | 2026-05-08T09:05:32Z          |
+| 时间戳                 | 2026-08-04T09:52:12Z          |
 | 操作系统               | Version 15.7.2 (Build 24G325) |
-| 主机                   | macbook-pro.local             |
+| 主机                   | MacBook-Pro.local             |
 | CPU 核心数(逻辑)     | 12                            |
 | 内存 (GB)              | 48.00                         |
 | 每个测试用例的时长 (s) | 3                             |
@@ -26,18 +26,18 @@
 
 | 数据类型          | 操作     |   Fory TPS | Protobuf TPS | JSON TPS | 最快         |
 | ----------------- | -------- | ---------: | -----------: | -------: | ------------ |
-| NumericStruct     | 序列化   |  9,435,623 |    6,175,939 |  408,960 | fory (1.53x) |
-| NumericStruct     | 反序列化 | 11,037,225 |    6,842,676 |  328,302 | fory (1.61x) |
-| Sample            | 序列化   |  3,596,835 |    1,257,100 |   79,781 | fory (2.86x) |
-| Sample            | 反序列化 |    982,255 |      733,588 |   41,274 | fory (1.34x) |
-| MediaContent      | 序列化   |  1,561,376 |      609,896 |   98,677 | fory (2.56x) |
-| MediaContent      | 反序列化 |    523,836 |      395,202 |   70,528 | fory (1.33x) |
-| NumericStructList | 序列化   |  2,910,846 |      918,363 |   82,965 | fory (3.17x) |
-| NumericStructList | 反序列化 |  2,436,636 |      701,656 |   69,353 | fory (3.47x) |
-| SampleList        | 序列化   |    694,557 |      202,040 |   16,679 | fory (3.44x) |
-| SampleList        | 反序列化 |    187,109 |      131,947 |    8,236 | fory (1.42x) |
-| MediaContentList  | 序列化   |    348,238 |       98,007 |   18,698 | fory (3.55x) |
-| MediaContentList  | 反序列化 |    104,990 |       74,422 |   16,298 | fory (1.41x) |
+| NumericStruct     | 序列化   | 14,759,606 |    7,572,190 |  481,278 | fory (1.95x) |
+| NumericStruct     | 反序列化 | 18,155,795 |    7,317,942 |  377,802 | fory (2.48x) |
+| Sample            | 序列化   |  5,633,231 |    1,380,130 |  102,372 | fory (4.08x) |
+| Sample            | 反序列化 |  1,509,740 |      916,626 |   52,897 | fory (1.65x) |
+| MediaContent      | 序列化   |  2,987,821 |      784,863 |  111,200 | fory (3.81x) |
+| MediaContent      | 反序列化 |  1,072,345 |      549,726 |   97,799 | fory (1.95x) |
+| NumericStructList | 序列化   |  5,515,769 |    1,093,924 |   93,635 | fory (5.04x) |
+| NumericStructList | 反序列化 |  2,598,609 |      746,527 |   76,161 | fory (3.48x) |
+| SampleList        | 序列化   |  1,201,868 |      220,772 |   20,772 | fory (5.44x) |
+| SampleList        | 反序列化 |    286,949 |      161,192 |   10,777 | fory (1.78x) |
+| MediaContentList  | 序列化   |    657,276 |      118,004 |   22,744 | fory (5.57x) |
+| MediaContentList  | 反序列化 |    215,726 |       99,445 |   19,521 | fory (2.17x) |
 
 ## 序列化大小 (bytes)
 
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/compiler/build-integration.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/compiler/build-integration.md
index c391e7d184..6d7b2de5c0 100644
--- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/compiler/build-integration.md
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/compiler/build-integration.md
@@ -211,7 +211,7 @@ cc_library(
 
 ```yaml
 dependencies:
-  fory: ^1.5.0
+  fory: ^1.6.0
 
 dev_dependencies:
   build_runner: ^2.4.0
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/compiler/cli.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/compiler/cli.md
index cc145e0148..e5004f9c1d 100644
--- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/compiler/cli.md
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/compiler/cli.md
@@ -666,5 +666,5 @@ fory = "x.y.z"
 
 ```yaml
 dependencies:
-  fory: ^1.5.0
+  fory: ^1.6.0
 ```
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/compiler/generated-code/index.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/compiler/generated-code/index.md
index e730d92252..1af56c7e1b 100644
--- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/compiler/generated-code/index.md
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/compiler/generated-code/index.md
@@ -155,12 +155,12 @@ union Wrapper {
 | Swift                 | `toBytes` / `fromBytes`     |
 | Dart                  | (通过 `fory.serialize()`) |
 
-## 运行时参考
+## 语言参考
 
-请选择输出运行时对应的生成代码参考。生成的模型仍是运行时拥有的普通类型,并使用该运行时
-支持的 Fory 序列化 API。
+请选择目标语言对应的生成代码参考。生成的模型仍是普通的语言原生类型,并使用该语言支持的
+Fory 序列化 API。
 
-| 运行时                | 生成代码参考                           |
+| 语言                  | 生成代码参考                           |
 | --------------------- | -------------------------------------- |
 | Java                  | [Java](java.md)                        |
 | Python                | [Python](python.md)                    |
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/compiler/index.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/compiler/index.md
index f86309410a..9cf8d2df64 100644
--- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/compiler/index.md
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/compiler/index.md
@@ -93,7 +93,7 @@ service AnimalService {
 foryc animals.fdl --java_out=./generated/java --python_out=./generated/python --go_out=./generated/go --rust_out=./generated/rust --cpp_out=./generated/cpp --csharp_out=./generated/csharp --dart_out=./generated/dart --scala_out=./generated/scala --kotlin_out=./generated/kotlin --javascript_out=./generated/javascript --grpc
 ```
 
-生成的服务代码使用常规 gRPC API,但请求和响应对象通过 Fory 序列化。运行时依赖项、
+生成的服务代码使用常规 gRPC API,但请求和响应对象通过 Fory 序列化。各语言的依赖项、
 服务端和客户端设置、流式模式、浏览器支持及互操作性边界请参阅
 [Fory gRPC](../grpc/index.md)。
 
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/development/index.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/development/index.md
index b70e93b825..d053f8a8be 100644
--- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/development/index.md
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/development/index.md
@@ -129,7 +129,7 @@ npx prettier --write "**/*.md"
 
 仓库中的 VS Code、Bazel、LLDB 和 GDB 配置请参阅[调试 C++](cpp-debugging.md)。
 
-不属于共享仓库构建的运行时特定贡献者说明,仍保留在各运行时的源代码树和贡献者
+不属于共享仓库构建的语言特定贡献者说明,仍保留在各语言的源代码树和贡献者
 README 中。
 
 ## 参与贡献
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/grpc/cpp.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/grpc/cpp.md
index b2aca81c3d..163dbf30b4 100644
--- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/grpc/cpp.md
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/grpc/cpp.md
@@ -233,7 +233,7 @@ while (reader->Read(&reply)) {
 
 生成的描述符会为 gRPC 路径保留 IDL 中准确的服务名和方法名。
 
-## gRPC 运行时行为
+## gRPC 栈行为
 
 生成的服务配套代码只提供 Fory 序列化和 gRPC C++ 绑定。运行行为仍遵循标准 gRPC C++
 行为:
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/grpc/csharp.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/grpc/csharp.md
index 6cea928975..f601800ff4 100644
--- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/grpc/csharp.md
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/grpc/csharp.md
@@ -36,7 +36,7 @@ gRPC 客户端、服务基类、方法描述符、元数据、截止时间、取
 
 ```xml
 <ItemGroup>
-  <PackageReference Include="Apache.Fory" Version="1.5.0" />
+  <PackageReference Include="Apache.Fory" Version="1.6.0" />
   <PackageReference Include="Grpc.AspNetCore" Version="2.71.0" />
 </ItemGroup>
 ```
@@ -45,7 +45,7 @@ gRPC 客户端、服务基类、方法描述符、元数据、截止时间、取
 
 ```xml
 <ItemGroup>
-  <PackageReference Include="Apache.Fory" Version="1.5.0" />
+  <PackageReference Include="Apache.Fory" Version="1.6.0" />
   <PackageReference Include="Grpc.Core.Api" Version="2.71.0" />
   <PackageReference Include="Grpc.Net.Client" Version="2.71.0" />
 </ItemGroup>
@@ -275,7 +275,7 @@ C# Schema 模块名称来自源文件的主文件名,而不是 `csharp_namespa
 模块名称。这样,多个 Schema 文件就可以指向同一个 C# 命名空间而不会发生冲突。生成器
 不会生成基于命名空间或服务名派生的模块别名。
 
-## gRPC 运行时行为
+## gRPC 栈行为
 
 生成的服务代码只替换请求和响应的序列化。所有常规 gRPC 运行功能仍由你的 gRPC 技术栈
 负责:
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/grpc/dart.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/grpc/dart.md
index 1bb3261cdc..ccaca126e9 100644
--- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/grpc/dart.md
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/grpc/dart.md
@@ -29,7 +29,7 @@ license: |
 
 ```yaml
 dependencies:
-  fory: ^1.5.0
+  fory: ^1.6.0
   grpc: ^4.0.0
 
 dev_dependencies:
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/grpc/go.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/grpc/go.md
index a5928f2f64..96b208ad6c 100644
--- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/grpc/go.md
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/grpc/go.md
@@ -184,7 +184,7 @@ service Greeter {
 - 双向流式方法使用生成的流式客户端和流式服务端接口。
 - 每个消息帧(包括流式帧)都使用生成的编解码器。
 
-## gRPC 运行行为
+## gRPC 栈行为
 
 生成的配套服务代码只负责提供 Fory 序列化。运行行为仍遵循标准的 grpc-go 行为:
 
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/grpc/index.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/grpc/index.md
index eb86718878..29964b9906 100644
--- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/grpc/index.md
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/grpc/index.md
@@ -24,8 +24,8 @@ Fory gRPC 将标准 gRPC 传输语义与 Fory 编译器生成的请求和响应
 
 ## 适用场景
 
-当每个对端都基于同一份 Fory IDL、protobuf IDL 或 FlatBuffers IDL 契约生成,并支持匹配的
-Fory 运行时时,请使用 Fory gRPC。如果需要通用 protobuf 客户端、反射工具或 protobuf 消息字节,
+当每个对端都基于同一份 Fory IDL、protobuf IDL 或 FlatBuffers IDL 契约生成,并支持对应语言的
+匹配 Fory 实现时,请使用 Fory gRPC。如果需要通用 protobuf 客户端、反射工具或 protobuf 消息字节,
 请使用普通 protobuf gRPC。
 
 ## Schema 前端
@@ -43,7 +43,7 @@ Fory gRPC 配套代码可以从以下输入生成:
 
 1. 在受支持的编译器前端中定义消息和服务。
 2. 使用 `foryc` 生成模型和 gRPC 配套代码。
-3. 添加所选运行时的标准 gRPC 依赖。
+3. 添加所选语言的标准 gRPC 依赖。
 4. 实现生成的 server base,并调用生成的客户端。
 5. 验证生成对端之间的一元调用和流式调用。
 
@@ -58,15 +58,15 @@ JavaScript 在 Node.js 中使用 `@grpc/grpc-js`;浏览器客户端通过 `--g
 
 ### 职责边界
 
-Fory 可以为应用提供的 gRPC 运行时生成服务配套代码。这些代码为请求和响应对象提供 Fory 序列化;
+Fory 可以为应用提供的 gRPC 实现生成服务配套代码。这些代码为请求和响应对象提供 Fory 序列化;
 listener、channel、credential、身份认证、授权、deadline、重试和传输生命周期仍由应用和 gRPC 技术栈负责。
 
-Fory 软件包不会将某个 gRPC 实现作为强制依赖。应用负责选择和配置运行时的 gRPC 库。
+Fory 软件包不会将某个 gRPC 实现作为强制依赖。应用负责选择和配置相应的 gRPC 库。
 
 ### 生成的服务接口
 
-编译器会生成符合运行时习惯的 service base、client 或 stub、方法元数据和 Fory marshaller。
-模型生成详见[生成代码](../compiler/generated-code/index.md);各运行时页面介绍 server 与 client 集成。
+编译器会生成符合语言习惯的 service base、client 或 stub、方法元数据和 Fory marshaller。
+模型生成详见[生成代码](../compiler/generated-code/index.md);各语言页面介绍 server 与 client 集成。
 
 ## 互操作性
 
@@ -83,13 +83,13 @@ Fory 软件包不会将某个 gRPC 实现作为强制依赖。应用负责选择
 至少测试一个一元调用,以及服务使用的每种流式调用形式。protobuf `UNIMPLEMENTED` 或解码失败
 通常表示对端使用了普通 protobuf stub,或使用了不同的生成服务契约。
 
-## 运行时指南
+## 语言指南
 
 Java、Python、C++、Go、Rust、JavaScript/TypeScript、C#、Dart、Scala 和 Kotlin 均有相应的
 gRPC 配套代码文档。当前依赖和流式调用支持请参阅[支持矩阵](../introduction/support-matrix.md)
-以及所选运行时页面。
+以及所选语言页面。
 
-| 运行时                | 指南                                 |
+| 语言                  | 指南                                 |
 | --------------------- | ------------------------------------ |
 | Java                  | [Java](java.md)                      |
 | Python                | [Python](python.md)                  |
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/grpc/java.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/grpc/java.md
index a7028991b0..72def86dca 100644
--- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/grpc/java.md
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/grpc/java.md
@@ -350,7 +350,7 @@ final class StreamingClient {
 
 生成的描述符会为 gRPC 路径保留 IDL 中准确的服务名和方法名。
 
-## gRPC 运行时行为
+## gRPC 栈行为
 
 生成的服务代码只会替换请求和响应的序列化方式。所有常规的 gRPC 运维功能仍由 grpc-java 负责:
 
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/grpc/javascript.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/grpc/javascript.md
index 704635f7c5..e8f26bbf76 100644
--- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/grpc/javascript.md
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/grpc/javascript.md
@@ -273,7 +273,7 @@ stream.on("end", () => {
 });
 ```
 
-## gRPC 运行时行为
+## gRPC 栈行为
 
 生成的服务代码只替换请求和响应的序列化方式。标准 gRPC 的各项运行能力仍由传输包负责:
 
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/grpc/kotlin.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/grpc/kotlin.md
index c857eae1e3..6812f4ae60 100644
--- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/grpc/kotlin.md
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/grpc/kotlin.md
@@ -211,7 +211,7 @@ stub.chat(
 }
 ```
 
-## gRPC 运行时行为
+## gRPC 栈行为
 
 生成的服务代码只替换请求和响应的序列化方式。标准 gRPC 的所有运行能力仍由 grpc-java 和 grpc-kotlin 负责:
 
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/grpc/python.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/grpc/python.md
index f08119de6f..507ed57c95 100644
--- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/grpc/python.md
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/grpc/python.md
@@ -256,7 +256,7 @@ with grpc.insecure_channel("localhost:50051") as channel:
 
 同步流式调用遵循常规的 `grpcio` 迭代器和生成器约定。
 
-## gRPC 运行时行为
+## gRPC 栈行为
 
 生成的服务配套代码只提供 Fory 序列化回调。运维行为仍遵循标准的 `grpcio` 行为:
 
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/grpc/rust.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/grpc/rust.md
index 7b3d69d617..3460884e9b 100644
--- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/grpc/rust.md
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/grpc/rust.md
@@ -29,7 +29,7 @@ license: |
 
 ```toml
 [dependencies]
-fory = "1.5.0"
+fory = "1.6.0"
 bytes = "1"
 tonic = { version = "0.14", features = ["transport"] }
 tokio = { version = "1", features = ["macros", "rt-multi-thread"] }
@@ -277,7 +277,7 @@ while let Some(reply) = chat.message().await? {
 
 生成的 Rust gRPC 载荷必须满足 `Send + 'static`,以便 tonic 能够跨异步任务移动请求值和响应值。如果某个 Schema 对请求或响应类型使用了非线程安全的引用元数据,Rust gRPC 代码生成会拒绝该服务。请为 gRPC 载荷使用线程安全的引用形式,或者不要让非线程安全类型跨越 RPC 边界。
 
-## gRPC 运行时行为
+## gRPC 栈行为
 
 生成的服务配套代码只提供 Fory 序列化和 tonic 绑定。运行时行为仍遵循标准 tonic 行为:
 
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/grpc/scala.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/grpc/scala.md
index cdd76d4d4b..9124c1df66 100644
--- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/grpc/scala.md
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/grpc/scala.md
@@ -320,7 +320,7 @@ final class GreeterService extends GreeterGrpc.GreeterImplBase {
 
 服务器流式、客户端流式和双向流式服务器方法使用 grpc-java `StreamObserver` API,因为流的完成、请求流量控制、取消和背压都遵循 grpc-java 行为。
 
-## gRPC 运行时行为
+## gRPC 栈行为
 
 生成的服务代码只会替换请求和响应的序列化方式。所有常规 gRPC 运行功能仍由 grpc-java 负责:
 
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/grpc/troubleshooting.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/grpc/troubleshooting.md
index c786a92b76..baa846ba40 100644
--- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/grpc/troubleshooting.md
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/grpc/troubleshooting.md
@@ -19,7 +19,7 @@ license: |
   limitations under the License.
 ---
 
-依赖和 API 相关诊断请参阅所选运行时指南。
+依赖和 API 相关诊断请参阅所选语言指南。
 
 ## `UNIMPLEMENTED`
 
@@ -31,4 +31,4 @@ Fory gRPC 使用 Fory 消息字节。请基于同一契约生成 Fory gRPC 对
 
 ## 生成文件无法编译
 
-检查运行时页面要求的 gRPC 软件包和版本,然后使用同一编译器版本重新生成所有模型和服务文件。
+检查语言页面要求的 gRPC 软件包和版本,然后使用同一编译器版本重新生成所有模型和服务文件。
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/index.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/index.md
index d29d9edfb7..fcc11f1947 100644
--- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/index.md
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/index.md
@@ -25,7 +25,7 @@ Schema 驱动的模型以及由 Fory 支持的 gRPC 服务。
 ## 从这里开始
 
 1. 阅读[介绍](introduction/index.md)并[选择格式](introduction/choose-a-format.md)。
-2. 按照[快速开始](start/index.md)安装所选运行时。
+2. 按照[快速开始](start/index.md)安装所选语言的 Fory 实现。
 3. 查看[基准测试](benchmarks/index.md)及其方法论,了解相关性能依据。
 4. 继续阅读对应能力的指南。
 
@@ -33,15 +33,15 @@ Schema 驱动的模型以及由 Fory 支持的 gRPC 服务。
 
 | 功能              | 适用场景                               | 文档                                        |
 | ----------------- | -------------------------------------- | ------------------------------------------- |
-| 对象序列化        | 重建 xlang 或运行时原生对象图          | [对象序列化](object-serialization/index.md) |
+| 对象序列化        | 重建 xlang 或语言原生对象图            | [对象序列化](object-serialization/index.md) |
 | Row Format        | 随机和部分访问可信分析数据             | [行格式](row-format/index.md)               |
 | Fory JSON         | 将高吞吐量标准 JSON 映射到 Java 对象   | [Fory JSON](json/index.md)                  |
-| Fory IDL 与编译器 | 从共享 Schema 生成运行时原生模型       | [编译器](compiler/index.md)                 |
+| Fory IDL 与编译器 | 从共享 Schema 生成语言原生模型         | [编译器](compiler/index.md)                 |
 | Fory gRPC         | 生成用于编组 Fory 模型的 gRPC 配套代码 | [Fory gRPC](grpc/index.md)                  |
 
-## 运行时文档
+## 语言指南
 
-二进制对象序列化为以下运行时提供多页指南:
+二进制对象序列化为以下语言提供多页指南:
 [Java](object-serialization/java/index.md)、[Python](object-serialization/python/index.md)、
 [C++](object-serialization/cpp/index.md)、[Go](object-serialization/go/index.md)、
 [Rust](object-serialization/rust/index.md)、
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/introduction/choose-a-format.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/introduction/choose-a-format.md
index a4e762440e..cdf96ea5c4 100644
--- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/introduction/choose-a-format.md
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/introduction/choose-a-format.md
@@ -21,18 +21,18 @@ license: |
 
 | 格式或模式    | 数据模型                    | 适用场景                             | 互操作范围                                                          | 入门文档                                       |
 | ------------- | --------------------------- | ------------------------------------ | ------------------------------------------------------------------- | ---------------------------------------------- |
-| Xlang 二进制  | 可移植对象图                | 数据需要跨语言传输                   | 支持的运行时共享同一种线格式                                        | [跨语言指南](../object-serialization/xlang.md) |
-| Native 二进制 | 运行时原生对象图            | 生产端和消费端使用同一种语言         | 仅限同一运行时家族                                                  | [对象序列化](../object-serialization/index.md) |
+| Xlang 二进制  | 可移植对象图                | 数据需要跨语言传输                   | 受支持的 Fory 实现共享同一种编码格式                                 | [跨语言指南](../object-serialization/xlang.md) |
+| Native 二进制 | 语言原生对象图              | 生产端和消费端使用同一 Fory 实现家族 | 仅限一个 Fory 实现家族                                              | [对象序列化](../object-serialization/index.md) |
 | Row Format    | 可随机访问的二进制行        | 需要随机字段访问或分析场景的部分读取 | Standard Row 由 Java、Python、C++ 和 Rust 共享;Compact 仅支持 Java | [Row Format 指南](../row-format/index.md)      |
 | Fory JSON     | 映射到 Java 对象的标准 JSON | Java 应用需要高性能标准 JSON         | 标准 JSON 文本                                                      | [Fory JSON 指南](../json/index.md)             |
 
 Xlang 和 native 是对象序列化的两种并列模式,适用于接收端需要重建对象图的场景。Row Format
 和 Fory JSON 是独立格式,不是额外的对象序列化模式。
 
-对于 Java、Scala、Kotlin、Python、C++、Go 和 Rust,同语言通信应使用 native 模式。它避开
-xlang 的跨语言类型映射和元数据限制,更贴近各语言的原生类型系统,并支持更丰富的语言特定
-对象图。当生产端和消费端属于同一语言家族,并且需要原生对象模型而非可移植的跨语言 Schema
-时,请使用此模式。
+对于 Java、Scala、Kotlin、Python、C++、Go 和 Rust,同一 Fory 实现家族内的通信应使用
+native 模式。它避开 xlang 的跨语言类型映射和元数据限制,更贴近各语言的原生类型系统,并支持
+更丰富的语言特定对象图。当生产端和消费端使用同一种 native 编码格式,并且需要原生对象模型
+而非可移植的跨语言 Schema 时,请使用此模式。
 
 对于仅使用 Java/JVM 的系统,native 模式可以替代 JDK serialization、Kryo、FST、Hessian
 和仅供 Java 使用的 Protocol Buffers 载荷。对于仅使用 Python 的系统,native 模式可以替代
@@ -57,7 +57,7 @@ Schema 优先契约时,请使用 Fory IDL 和编译器;它会生成使用相
 
 ## 相关能力
 
-[Fory IDL 和编译器](../compiler/index.md)可以为支持的运行时生成原生模型。服务定义还可以生成
+[Fory IDL 和编译器](../compiler/index.md)可以为支持的语言生成原生模型。服务定义还可以生成
 [Fory gRPC](../grpc/index.md)代码。这两项能力都不会定义新的序列化格式。
 
 协议实现者应遵循 [Specifications](../specification/xlang_serialization_spec.md) 中的规范性格式文档。
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/introduction/index.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/introduction/index.md
index 07770b0cc7..c33712a997 100644
--- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/introduction/index.md
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/introduction/index.md
@@ -22,8 +22,8 @@ license: |
 **Apache Fory™** 是一个速度极快的多语言序列化框架,面向符合语言习惯的领域对象、
 Schema IDL 和跨语言数据交换。
 
-Fory 专为跨语言、跨运行时的紧凑高吞吐序列化而设计。它可以直接处理应用对象,在需要稳定
-契约时支持共享 Schema,并保留共享引用、循环引用和多态运行时类型等对象图特性。
+Fory 专为跨语言、跨执行平台的紧凑高吞吐序列化而设计。它可以直接处理应用对象,在需要稳定
+契约时支持共享 Schema,并保留共享引用、循环引用和多态值的具体类型等对象图特性。
 
 ## 快速示例
 
@@ -80,7 +80,7 @@ print(decoded)  # User(name='Alice', age=30)
 
 - **紧凑元数据**:对类型元数据和字段信息进行紧凑编码,减小载荷体积。
 - **Schema 演进**:兼容模式支持应用 Schema 向前和向后演进。
-- **对象图语义**:跨运行时保留共享引用、循环引用和多态运行时类型。
+- **对象图语义**:跨语言保留共享引用、循环引用和多态值的具体类型。
 - **类型映射**:通过共享的[类型映射](../specification/xlang_type_mapping.md)转换语言特定值。
 
 ### 领域对象优先
@@ -100,7 +100,7 @@ Fory 直接序列化原生领域对象,不强制应用使用包装类型:
 - 建模数值、字符串、list、map、array、enum、struct 和 union。
 - 直接在 Schema 中表达共享引用和循环引用。
 - 生成符合宿主语言习惯的代码,无需在用户代码中引入传输特定的包装类型。
-- 服务需要在独立维护的运行时之间建立稳定契约时,使用 Schema IDL。
+- 服务需要在独立维护的 Fory 实现之间建立稳定契约时,使用 Schema IDL。
 
 ### Row Format 随机访问
 
@@ -112,11 +112,11 @@ Fory 直接序列化原生领域对象,不强制应用使用包装类型:
 - **Apache Arrow 集成**:转换为列式数据,供分析 pipeline 使用。
 - **多语言支持**:在 Java、Python、C++ 和 Rust 之间交换 Standard Row Format 数据。
 
-### 运行时优化
+### 优化的 Fory 实现
 
-Fory 保持热路径高效,同时不强制每个运行时使用相同实现策略:
+Fory 保持热路径高效,同时不强制每个 Fory 实现使用相同策略:
 
 - **Java JIT 序列化器**:运行时代码生成消除反射开销,并内联热路径。
-- **生成序列化器和静态序列化器**:其他运行时根据需要使用生成或静态序列化器。
+- **生成序列化器和静态序列化器**:其他 Fory 实现根据需要使用生成或静态序列化器。
 - **零拷贝路径**:Row Format 和带外缓冲区避免对大值进行不必要的复制。
 - **元数据共享**:共享或紧凑编码重复的类型信息,降低序列化开销。
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/introduction/product-model.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/introduction/product-model.md
deleted file mode 100644
index f67e79673d..0000000000
--- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/introduction/product-model.md
+++ /dev/null
@@ -1,45 +0,0 @@
----
-title: 产品模型
-sidebar_position: 3
-id: product-model
-license: |
-  Licensed to the Apache Software Foundation (ASF) under one or more
-  contributor license agreements.  See the NOTICE file distributed with
-  this work for additional information regarding copyright ownership.
-  The ASF licenses this file to You under the Apache License, Version 2.0
-  (the "License"); you may not use this file except in compliance with
-  the License.  You may obtain a copy of the License at
-
-     http://www.apache.org/licenses/LICENSE-2.0
-
-  Unless required by applicable law or agreed to in writing, software
-  distributed under the License is distributed on an "AS IS" BASIS,
-  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  See the License for the specific language governing permissions and
-  limitations under the License.
----
-
-Apache Fory 提供三种序列化产品和一套 Schema 工具链。请先确定所需的数据契约,再选择
-运行时 API。
-
-## 序列化产品
-
-| 产品                          | 数据模型                    | 互操作边界                                                           |
-| ----------------------------- | --------------------------- | -------------------------------------------------------------------- |
-| 二进制对象序列化:xlang 模式  | 可移植对象图                | 受支持运行时共享编码格式                                             |
-| 二进制对象序列化:native 模式 | 运行时原生对象图            | 仅限同一运行时家族                                                   |
-| Row Format                    | 支持随机访问的二进制行      | Java、Python、C++ 和 Rust 共享 Standard Row;Compact Row 仅支持 Java |
-| Fory JSON                     | 映射到 Java 对象的标准 JSON | 具有文本互操作能力的 Java API                                        |
-
-Xlang 和 native 是二进制对象序列化的并列模式。Row Format 和 Fory JSON 是独立产品,二者都
-不是第三种对象序列化模式。
-
-## Schema 与服务
-
-[Fory IDL 和编译器](../compiler/index.md)为受支持的运行时生成原生模型。服务定义还可以生成
-[Fory gRPC](../grpc/index.md)配套代码。编译器和 gRPC 集成不会定义额外的序列化格式。
-
-## 规范格式
-
-协议实现者应使用保持不变的[规范](../specification/xlang_serialization_spec.md)页面。用户指南
-负责说明任务并链接到确切规范,而不是重复编码格式层面的规则。
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/introduction/support-matrix.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/introduction/support-matrix.md
index 91c44820b7..d22f189c2d 100644
--- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/introduction/support-matrix.md
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/introduction/support-matrix.md
@@ -19,13 +19,13 @@ license: |
   limitations under the License.
 ---
 
-选择能力前,请使用此矩阵确认文档所覆盖的 API。存在某个运行时页面,并不表示该运行时
+选择能力前,请使用此矩阵确认文档所覆盖的 API。存在某个语言页面,并不表示该语言
 支持所有 Fory 能力。
 
-| 能力                | 已有文档的运行时                                                                   | 互操作能力                             |
+| 能力                | 已有文档的语言                                                                     | 互操作能力                             |
 | ------------------- | ---------------------------------------------------------------------------------- | -------------------------------------- |
 | Xlang 对象序列化    | Java、Python、C++、Go、Rust、JavaScript/TypeScript、C#、Swift、Dart、Scala、Kotlin | 共享一种 xlang 编码格式                |
-| Native 对象序列化   | Java、Python、C++、Go、Rust、Scala、Kotlin                                         | 仅限同一运行时家族                     |
+| Native 对象序列化   | Java、Python、C++、Go、Rust、Scala、Kotlin                                         | 仅限一个 Fory 实现家族                 |
 | Standard Row Format | Java、Python、C++、Rust                                                            | 共享 Standard Row 布局                 |
 | Compact Row Format  | Java                                                                               | 仅供 Java 使用的紧凑布局               |
 | Fory JSON           | Java                                                                               | 标准 JSON 文本                         |
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/json/android.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/json/android.md
index 47ad1141ed..8e9c7fb4bd 100644
--- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/json/android.md
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/json/android.md
@@ -21,7 +21,7 @@ license: |
 
 从 Android API level 26 开始,Fory JSON 可通过常规的 `fory-json` artifact 支持普通类。运行时 JSON 代码生成和异步编译会被自动禁用,因此 `ForyJson.builder().build()` 会使用解释执行的对象映射器。
 
-## 安装与运行时模型
+## 安装与 Codec 模型
 
 将 Fory JSON 添加到应用中:
 
@@ -83,7 +83,7 @@ public final class Invoice {
 
 ## Mixin
 
-同一个处理器也支持 Fory JSON Mixin。Mixin 声明一个明确的目标,并在需要使用它的运行时上注册:
+同一个处理器也支持 Fory JSON Mixin。Mixin 声明一个明确的目标,并在需要使用它的 `ForyJson` builder 上注册:
 
 ```java
 import org.apache.fory.json.ForyJson;
@@ -99,13 +99,13 @@ ForyJson json =
     ForyJson.builder().registerMixin(ThirdPartyInvoiceMixin.class).build();
 ```
 
-使用 `fory-annotation-processor` 编译每个非空 Mixin 源。处理器会生成精确的 R8 规则,以及运行时可使用的、特定于该 Mixin 与目标配对的操作。已注册的 Codec、有效的类型 Codec 和内置映射仍遵循其常规的运行时优先级。空 Mixin 不会生成任何输出。
+使用 `fory-annotation-processor` 编译每个非空 Mixin 源。处理器会生成精确的 R8 规则,以及构建完成的 `ForyJson` 实例可使用的、特定于该 Mixin 与目标配对的操作。已注册的 Codec、有效的类型 Codec 和内置映射仍遵循其常规的 Codec 选择优先级。空 Mixin 不会生成任何输出。
 
 Mixin 可以将 `JsonValidator` 放在一个 public abstract、无参数、返回 `void` 的方法上,该方法必须与目标类中的一个 public 方法完全匹配。生成的配对代码会直接调用该目标方法。目标类不需要仅为了 Mixin validator 而添加 `JsonType`。
 
-目标类也不需要仅因为拥有 Mixin 而添加 `JsonType`。`JsonMixin` 本身就是该配对的处理器入口。如果目标类同时使用 `JsonType`,运行时会为已注册的非空 Mixin 选择特定于该配对的 companion,而不是将 overlay 与目标类的直接 companion 组合起来。
+目标类也不需要仅因为拥有 Mixin 而添加 `JsonType`。`JsonMixin` 本身就是该配对的处理器入口。如果目标类同时使用 `JsonType`,构建完成的 `ForyJson` 实例会为已注册的非空 Mixin 选择特定于该配对的 companion,而不是将 overlay 与目标类的直接 companion 组合起来。
 
-在一次构建出的运行时中,一个明确的目标只能启用一个源。在 builder 上,针对该目标的后续注册会替换先前注册,`build()` 会对选定映射生成快照。处理器可以为多个候选源生成 artifact;运行时只使用最后注册的源。
+在一个构建完成的 `ForyJson` 实例中,一个明确的目标只能启用一个源。在 builder 上,针对该目标的后续注册会替换先前注册,`build()` 会对选定映射生成快照。处理器可以为多个候选源生成 artifact;构建完成的实例只使用最后注册的源。
 
 对于非空 Mixin,请使用处理器生成的 R8 规则,而不要使用宽泛的 package keep 规则。
 
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/json/annotations.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/json/annotations.md
index b95a3ca0fd..78310d9b89 100644
--- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/json/annotations.md
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/json/annotations.md
@@ -26,7 +26,7 @@ Fory JSON 在 `org.apache.fory.json.annotation` 中提供以下映射和校验
 并非 Jackson、Gson 或用于兼容 Fory 二进制协议的注解。
 
 `JsonType` 要求注解处理器生成直接的属性与创建器操作,以及适用于 JVM 和 Android 的精确保留规则。
-该注解不可继承,因此在这些运行时上,每个需要生成配套类且符合条件的具体模型都必须单独添加注解。
+该注解不可继承,因此在这些平台上,每个需要生成配套类且符合条件的具体模型都必须单独添加注解。
 直接标注的 `JsonValue` Record 也会为其值访问器和规范构造函数生成配套类。普通的未标注类仍可使用反射;
 在 Android 上,则需要应用自行编写精确的 R8 规则。经过 Android desugar 的 Record 必须通过直接声明
 `JsonType` 或编译后的精确 `JsonMixin` 配对获得处理器生成的操作。在 Native Image 之外,若直接标注的
@@ -614,7 +614,7 @@ Mixin 方法采用与其他 Mixin 方法相同的精确方法签名匹配规则
 - 使用精确 Java 二进制名称的 `className = "com.example.shape.Circle"`。
 
 当 API JAR 不能依赖实现 JAR 时,`className` 很有用。构建子类型表时,它由固定的构建器类加载器解析。
-JSON 输入绝不会提供 Java 类名,也无法添加条目。不支持运行时注册和开放式子类型发现。
+JSON 输入绝不会提供 Java 类名,也无法添加条目。不支持构建后的子类型注册和开放式子类型发现。
 
 默认的 `PROPERTY` 包含方式会将内联判别字段写为第一个输出成员:
 
@@ -678,8 +678,8 @@ public interface Shape {}
 唯一例外是编解码器优先级为声明的基类型选择了自定义完整值编解码器,从而替代该注解。
 
 基类型必须是接口或抽象类。每个条目都必须解析为唯一、具体且可赋值的类,序列化只接受表中精确列出的
-运行时类。列出父类不会隐式允许其后代。该注解从声明的基类型本身读取,不会从其他带注解的接口或抽象类
+具体类。列出父类不会隐式允许其后代。该注解从声明的基类型本身读取,不会从其他带注解的接口或抽象类
 继承。读取器只接受已配置的包含方式;更改包含方式会改变编码格式,并且不存在兼容两种形式的读取回退。
 
-在 GraalVM native-image 运行时,请使用 `JsonType` 标注基类型,并使用类字面量条目而不是 `className`
+在 GraalVM native-image 中,请使用 `JsonType` 标注基类型,并使用类字面量条目而不是 `className`
 条目。列出的类字面量子类型会自动注册。
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/json/getting-started.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/json/getting-started.md
index 95ed5ad277..6d232b3156 100644
--- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/json/getting-started.md
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/json/getting-started.md
@@ -32,14 +32,14 @@ Maven:
 <dependency>
   <groupId>org.apache.fory</groupId>
   <artifactId>fory-json</artifactId>
-  <version>1.5.0</version>
+  <version>1.6.0</version>
 </dependency>
 ```
 
 Gradle:
 
 ```kotlin
-implementation("org.apache.fory:fory-json:1.5.0")
+implementation("org.apache.fory:fory-json:1.6.0")
 ```
 
 同一应用中的所有 Fory 模块应使用相同版本。
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/json/graalvm.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/json/graalvm.md
index d3c8568613..14d495fa89 100644
--- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/json/graalvm.md
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/json/graalvm.md
@@ -82,7 +82,7 @@ provider 类必须是 public 的具体类,并且具有 public 无参数构造
 
 Provider 对象仅在镜像构建期间存在。建议像上例一样使用带有实例字段和方法的专用配置类;不需要应用添加 `native-image.properties` 条目,也不需要将 provider package export 或 open 给 Fory。不支持 static provider 方法和字段。
 
-只有 provider 返回的配置会获得生成的 Codec。默认配置不会隐式生成。如果某项启用了代码生成的运行时配置未被包含,Fory JSON 会使用已准备好的解释执行 Codec,并在整个进程范围内记录一条警告,建议提供可达的 `@ForyJsonProvider`。`withCodegen(false)` 会明确选择解释执行的 Codec,且不会请求查找生成的 Codec。原生可执行文件中会禁用异步编译。
+只有 provider 返回的配置会获得生成的 Codec。默认配置不会隐式生成。如果某项启用了代码生成的 `ForyJson` 配置未被包含,Fory JSON 会使用已准备好的解释执行 Codec,并在整个进程范围内记录一条警告,建议提供可达的 `@ForyJsonProvider`。`withCodegen(false)` 会明确选择解释执行的 Codec,且不会请求查找生成的 Codec。原生可执行文件中会禁用异步编译。
 
 ## Mixin
 
@@ -111,11 +111,11 @@ public class JsonExample {
 
 `JsonMixin` 是其明确声明目标的构建时入口,因此目标类不需要仅为了使用 Mixin 而添加 `JsonType`。已注册的 Mixin 类字面量必须从应用代码中可达。Native Image Feature 会保留目标元数据,并准备与直接 `JsonType` 模型相同的访问方式。仅当返回的 `ForyJson` 中注册了该明确的 Mixin 时,provider 配置才会为 Mixin 的目标生成代码。
 
-在构建出的一个 `ForyJson` 中,一个明确的目标只能启用一个源。后续注册会替换先前的源,并影响之后的 `build()` 调用;运行时会保留构建时生成的不可变快照。
+在构建出的一个 `ForyJson` 中,一个明确的目标只能启用一个源。后续注册会替换先前的源,并影响之后的 `build()` 调用;每个构建完成的 `ForyJson` 实例都会保留构建时生成的不可变快照。
 
 ## 类型发现与构造
 
-`fory-json` artifact 会自动激活其 Native Image Feature。`@JsonType` 不会被继承,因此请标注每个具体的运行时模型。带有 class-literal `@JsonSubTypes` 表的已标注基类会自动注册表中列出的子类型。专门支持的容器(包括 `EnumMap` 和 `EnumSet`)使用其内置 factory。其他可达的具体 `Collection` 和 `Map` 根类型需要 public 无参数构造函数。仅由运行时字符串引用的类是不可达的;因此原生镜像不支持 `JsonSubTypes.Type.className`。
+`fory-json` artifact 会自动激活其 Native Image Feature。`@JsonType` 不会被继承,因此请标注每个具体的应用模型。带有 class-literal `@JsonSubTypes` 表的已标注基类会自动注册表中列出的子类型。专门支持的容器(包括 `EnumMap` 和 `EnumSet`)使用其内置 factory。其他可达的具体 `Collection` 和 `Map` 根类型需要 public 无参数构造函数。仅由运行时解析的类名引用的类是不可达的;因此原生镜像不支持 `JsonSubTypes.Type.className`。
 
 不要添加应用反射配置来替代生成的配置。原生可执行文件会解析与 JVM 相同的有效注解。
 
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/json/index.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/json/index.md
index 71bc8b99d4..9bed731944 100644
--- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/json/index.md
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/json/index.md
@@ -20,8 +20,8 @@ license: |
 ---
 
 Fory JSON 是 Apache Fory 提供的线程安全 Java JSON 编解码器。它为 Java 对象、record、
-基于 creator 的不可变类、常见 JDK 类型、泛型容器、自定义完整值 codec,以及通过注解声明的
-有限多态提供解释执行和运行时生成的 codec。
+基于 creator 的不可变类、常见 JDK 类型、泛型容器和自定义完整值 codec 提供解释执行和
+运行时生成的 codec。
 
 Fory JSON 与 Fory 的 native 和 xlang 二进制协议是不同的数据格式。当系统需要与浏览器、API、
 日志、配置或其他 JSON 实现交换普通 JSON 时,请使用 Fory JSON。需要跨语言 Schema 元数据、
@@ -33,27 +33,29 @@ Fory JSON 与 Fory 的 native 和 xlang 二进制协议是不同的数据格式
 | ----------------------------------------- | ---------------------------------- |
 | 运行第一个 JSON 往返示例                  | [快速开始](getting-started.md)     |
 | 了解 Java 对象映射和配置                  | [对象映射](object-mapping.md)      |
-| 配置属性、creator、值、validator 和子类型 | [注解](annotations.md)             |
+| 配置属性、creator、值、validator 和 Mixin  | [注解](annotations.md)             |
 | 扩展完整值、子值和 Map 键                 | [自定义 Codec](custom-codecs.md)   |
 | 部署到 Android                            | [Android](android.md)              |
 | 构建 GraalVM Native Image                 | [GraalVM Native Image](graalvm.md) |
 | 安全解码输入                              | [安全](security.md)                |
 | 诊断故障                                  | [故障排查](troubleshooting.md)     |
 
-## 限制和不支持的功能
+## 性能
 
-Fory JSON 有意提供比 Fory 二进制协议和通用 Jackson 对象映射更小的语义范围:
+Java JSON 基准测试使用相同数据对比 fory-json、Jackson 和 Gson。以下结果是在 Apple M4 Pro
+与 JDK 26.0.1 上测得的单线程吞吐量,数值越高越好。完整命令、环境和测量配置请参阅
+[完整基准测试报告](../benchmarks/json/java/README.md)。
 
-- 不支持共享引用标识或循环引用协议;
-- 不支持开放多态、JSON 类名 ID、运行时子类型发现,也不支持在运行时扩展子类型表;
-- 不提供 `InputStream` 解析器或增量式 `OutputStream` writer;这些能力不在 `ForyJson` 根 API 中;
-- 不提供美化输出配置;
-- 不提供 Jackson/Gson 注解兼容层;
-- 不支持别名、view、filter、注入、managed/back reference、对象标识注解或根包装;
-- 不处理 Fory core 的 `Expose`。
+![Java JSON String 基准测试吞吐量](../benchmarks/json/java/string_throughput.png)
 
-循环对象图最终会因 `maxDepth` 而失败,不会被重建。需要引用标识或循环引用时,请使用
-Fory core 的 native 或 xlang 二进制协议。
+![Java JSON UTF-8 字节基准测试吞吐量](../benchmarks/json/java/utf8_bytes_throughput.png)
+
+| 表示形式   | 操作       | fory-json ops/sec | jackson ops/sec | gson ops/sec |
+| ---------- | ---------- | ----------------: | --------------: | -----------: |
+| String     | 序列化     |         7,387,465 |       2,049,368 |    1,084,042 |
+| String     | 反序列化   |         2,897,955 |       1,074,885 |      902,772 |
+| UTF-8 字节 | 序列化     |        10,375,498 |       1,868,614 |    1,037,211 |
+| UTF-8 字节 | 反序列化   |         3,077,158 |       1,268,397 |      933,079 |
 
 ## 相关 Java 指南
 
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/json/object-mapping.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/json/object-mapping.md
index f778422e68..8fb83d766e 100644
--- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/json/object-mapping.md
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/json/object-mapping.md
@@ -22,7 +22,7 @@ license: |
 ## 线程安全、复用与代码生成
 
 `ForyJson` 在调用 `build()` 后不可变且线程安全。应复用同一个实例,而不是为每次操作都创建
-builder 和运行时。已注册及通过注解选定的 `JsonValueCodec` 实例和 `JsonTypeChecker` 可能被
+builder 和 `ForyJson` 实例。已注册及通过注解选定的 `JsonValueCodec` 实例和 `JsonTypeChecker` 可能被
 并发调用,因此也必须是线程安全的。
 
 默认启用代码生成和异步编译。在诊断问题或运行环境禁止运行时编译时,可以禁用代码生成:
@@ -113,7 +113,7 @@ Schema 仍应声明预期的 Java 类型。
 `LinkedHashMap`、`TreeMap`、`ConcurrentHashMap` 或 `ConcurrentSkipListMap`。无法重建
 `ArrayBlockingQueue`、`Arrays.asList` 的结果、JDK 不可变集合、空集合/单例集合/不可修改包装器、
 受构造函数约束的实现,以及未列出的 Guava 不可变实现。Guava 支持是可选的,并不会使 Guava
-成为必需的运行时依赖。
+成为必需的应用依赖。
 
 非有限 float 和 double 值使用带引号的字符串 `"NaN"`、`"Infinity"` 和 `"-Infinity"`。
 需要保留任意精度时,请使用显式的 `BigInteger` 或 `BigDecimal` 目标类型。
@@ -195,7 +195,7 @@ JSON 对象成员名都是字符串。声明的 Map 键支持 `String`、`byte`
 有关类加载、类型策略、嵌套深度、对象图内存限制和外部输入控制,请参阅
 [Fory JSON 安全](security.md)。
 
-调用 `build()` 之后再修改 builder,不会改变已有的 `ForyJson` 运行时。
+调用 `build()` 之后再修改 builder,不会改变已有的 `ForyJson` 实例。
 
 在 Android 上,运行时代码生成和异步编译会被禁用。在 GraalVM native image 中,运行时编译不可用;
 可达 `ForyJsonProvider` 返回的配置会使用构建 image 时生成的编解码器,其他配置则使用带有构建时
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/core-concepts.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/core-concepts.md
index c3654cf1d0..7b807badbd 100644
--- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/core-concepts.md
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/core-concepts.md
@@ -28,17 +28,17 @@ Fory 对象序列化把对象图转换为字节,并在读取时重建对象图
 一个根值可以包含标量字段、集合、Map、嵌套对象、重复引用和循环引用。序列化从根值开始遍历
 对象图,反序列化则根据编码的类型和字段数据创建新的对象图。
 
-这与序列化一行数据或 JSON 文档不同。对象序列化可以保留运行时类型和对象身份,使读取端能够
+这与序列化一行数据或 JSON 文档不同。对象序列化可以保留具体对象类型和对象身份,使读取端能够
 重建应用对象,而不只是读取值。可信的分析数据应使用[行格式](../row-format/index.md),JSON
 交换应使用 [Fory JSON](../json/index.md)。
 
-## 运行时实例和注册
+## Fory 实例和注册
 
 Fory 实例持有序列化模式、Schema 行为、引用设置、已注册类型、自定义序列化器和读取限制。
 应在第一次根序列化或反序列化之前完成配置和注册,然后复用该实例。第一次根操作开始后,注册
 会被冻结,从而保证同一个实例始终以相同方式解析类型。
 
-各运行时的线程安全方式不同。有些运行时提供线程安全包装器或对象池,另一些要求每个线程或任务
+各 Fory 实现的线程安全方式不同。有些实现提供线程安全包装器或对象池,另一些要求每个线程或任务
 使用独立实例。共享普通实例之前,请先查看对应语言文档中的并发约定。
 
 ## 类型和类型标识
@@ -46,12 +46,12 @@ Fory 实例持有序列化模式、Schema 行为、引用设置、已注册类
 内置类型的标识由 Fory 定义。应用的 Struct、Class、Enum、Union 和扩展类型使用注册的数字 ID
 或名称。类型标识决定“由哪个序列化器和模型读取该值”,字段 Schema 则描述“模型包含哪些数据”。
 
-静态已知字段可以直接使用其声明类型。动态字段还会携带具体运行时类型,用于接口、抽象类、
+静态已知字段可以直接使用其声明类型。动态字段还会携带具体类型,用于接口、抽象类、
 Trait Object、宽泛对象类型或异构值。动态类型更灵活,但所有可能的具体类型都必须完成注册,
 并且受到所选模式支持。
 
-xlang 模式要求所有通信方协调一致的可移植类型标识和类型映射;原生模式可以使用运行时特有的
-类型与标识。可移植规则请参阅 [Xlang 序列化](xlang.md),具体注册 API 请参阅各语言的类型注册页面。
+xlang 模式要求所有通信方协调一致的可移植类型标识和类型映射;原生模式可以使用特定于实现的
+标识和语言特定的类型。可移植规则请参阅 [Xlang 序列化](xlang.md),具体注册 API 请参阅各语言的类型注册页面。
 
 ## Schema 和演进
 
@@ -79,7 +79,7 @@ null 放入本地没有合法 null 或缺失值表示的载体。
 如果未启用,重复值可能被重建为多个不同对象,循环引用也可能递归直到操作失败。
 
 对于不关心对象身份的无环值型数据,应保持引用跟踪关闭,以避免额外的对象元数据和查找开销。
-有些运行时同时使用全局设置和字段级元数据,准确行为请参阅对应语言的“引用”或“基础序列化”页面。
+有些 Fory 实现同时使用全局设置和字段级元数据,准确行为请参阅对应语言的“引用”或“基础序列化”页面。
 
 ## 多态
 
@@ -87,19 +87,19 @@ null 放入本地没有合法 null 或缺失值表示的载体。
 类型,而且该类型必须能由所选模式表示。
 
 仅有宿主语言继承关系并不会自动形成可移植契约。跨语言数据只能使用所有通信方都有 xlang 映射的
-候选类型。同运行时数据可以通过原生模式使用更多语言特有的 Class、Trait 或钩子行为。
+候选类型。同一 Fory 实现家族内的数据可以通过原生模式使用更多语言特有的 Class、Trait 或钩子行为。
 
 ## 自定义序列化器
 
 当内置 Schema 推断无法表达某个类型时,可以使用自定义序列化器。注册操作把自定义序列化器与
 应用类型关联起来。自定义序列化器必须遵守所选模式的规则:xlang 序列化器需要可移植表示,原生
-序列化器可以使用运行时特有的数据和钩子。
+序列化器可以使用语言特有的数据和钩子。
 
 如果内置序列化器或生成模型已经能表达该类型,应优先使用它们,以便更容易理解 Schema 演进、
 引用处理和跨语言行为。
 
 ## 继续选择模式
 
-- [Xlang 序列化](xlang.md)是默认模式;不同语言运行时交换字节时必须使用它。
-- [原生序列化](native.md)用于受支持的同运行时场景,适合需要原生类型或原生行为的数据。
+- [Xlang 序列化](xlang.md)是默认模式;通信方使用不同 Fory 实现家族或需要可移植契约时必须使用它。
+- [原生序列化](native.md)用于同一 Fory 实现家族内受支持的场景,适合需要原生类型或原生行为的数据。
 - 选择模式后,再进入具体语言目录查看安装、API、配置、注册、平台、安全和故障排除文档。
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/cpp/basic-serialization.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/cpp/basic-serialization.md
index 1edad9254a..ce3e14ffca 100644
--- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/cpp/basic-serialization.md
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/cpp/basic-serialization.md
@@ -345,7 +345,7 @@ fory.register_struct<Outer>(2);
 
 ## 跨语言互操作 {#cross-language-interoperability}
 
-以下内容说明默认 xlang 格式的跨语言类型映射、类型标识和互操作要求。
+所有受支持的 Fory 实现都共用默认 xlang 格式。以下内容说明它的跨语言类型映射、类型标识和互操作要求。
 
 本文说明如何在 C++ 与其他语言之间使用 Fory 跨语言序列化。
 
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/cpp/configuration.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/cpp/configuration.md
index 8fbd8edfea..68f97e8639 100644
--- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/cpp/configuration.md
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/cpp/configuration.md
@@ -99,7 +99,7 @@ auto fory = Fory::builder()
     .build();
 ```
 
-默认限制固定为 `128 MiB`,适用于字节数组、`Buffer` 和流根。正值会覆盖默认值;运行时创建时会拒绝显式设置的非正值。
+默认限制固定为 `128 MiB`,适用于字节数组、`Buffer` 和流根。正值会覆盖默认值;创建 Fory 实例时会拒绝显式设置的非正值。
 
 该预算是对实例化对象图所有者的近似下界估计,主要包括集合、映射、数组、结构体和对象。它不是精确的进程堆限制,实际进程内存可能更高。独立的字符串、二进制、原始标量和原始稠密数组叶值不计入该预算,并继续依赖字节可用性检查:如果未读输入没有足够字节,Fory 不会读取或创建该叶值。
 
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/cpp/index.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/cpp/index.md
index 24fdcfd9d8..7ec5f672bf 100644
--- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/cpp/index.md
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/cpp/index.md
@@ -60,7 +60,7 @@ include(FetchContent)
 FetchContent_Declare(
     fory
     GIT_REPOSITORY https://github.com/apache/fory.git
-    GIT_TAG        v1.5.0
+    GIT_TAG        v1.6.0
     SOURCE_SUBDIR  cpp
 )
 FetchContent_MakeAvailable(fory)
@@ -90,11 +90,11 @@ module(
 
 bazel_dep(name = "rules_cc", version = "0.1.1")
 
-bazel_dep(name = "fory", version = "1.5.0")
+bazel_dep(name = "fory", version = "1.6.0")
 git_override(
     module_name = "fory",
     remote = "https://github.com/apache/fory.git",
-    commit = "v1.5.0",  # Or use a specific commit hash for reproducibility
+    commit = "v1.6.0",  # Or use a specific commit hash for reproducibility
 )
 ```
 
@@ -125,7 +125,7 @@ bazel run //:my_app
 本地开发时,可以改用 `local_path_override`:
 
 ```bazel
-bazel_dep(name = "fory", version = "1.5.0")
+bazel_dep(name = "fory", version = "1.6.0")
 local_path_override(
     module_name = "fory",
     path = "/path/to/fory",
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/cpp/polymorphism.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/cpp/polymorphism.md
index fe2e527669..19a0ae7c31 100644
--- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/cpp/polymorphism.md
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/cpp/polymorphism.md
@@ -204,7 +204,7 @@ static_cast<Dog*>(container.pet.get())->breed = "Beagle";
 auto bytes = fory.serialize(container).value();
 auto decoded = fory.deserialize<Container>(bytes).value();
 
-// Runtime type preserved
+// Dynamic type preserved
 auto* dog = dynamic_cast<Dog*>(decoded.pet.get());
 assert(dog != nullptr);
 assert(dog->breed == "Beagle");
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/cpp/security.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/cpp/security.md
index 6c36bb5f2f..7771b5a4a7 100644
--- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/cpp/security.md
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/cpp/security.md
@@ -31,7 +31,7 @@ license: |
 - 只注册端点允许的应用类型,并在第一次根操作之前完成读取端配置。
 - 使用反序列化结果之前,根据应用的授权规则和领域规则验证该值。
 
-## 运行时保护
+## 内置保护
 
 安全相关配置:
 
@@ -45,7 +45,7 @@ license: |
 ## 验证
 
 除正常往返测试外,还应为边界添加负向测试。确认配置后的读取端会拒绝意外的应用类型、
-过深的嵌套、超出资源限制的输入以及格式错误的输入。一次读取失败后,还应确认可复用运行时
+过深的嵌套、超出资源限制的输入以及格式错误的输入。一次读取失败后,还应确认同一 Fory 实例
 仍能正确读取下一个合法根值。
 
-完整选项请参阅[配置](configuration.md),运行时的注册 API 请参阅[类型注册](type-registration.md)。
+完整选项请参阅[配置](configuration.md),Fory 注册 API 请参阅[类型注册](type-registration.md)。
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/csharp/basic-serialization.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/csharp/basic-serialization.md
index 2c16aae5f4..1262efbc69 100644
--- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/csharp/basic-serialization.md
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/csharp/basic-serialization.md
@@ -150,7 +150,7 @@ fory.Serialize<object?>(dynamicWriter, value);
 
 ## 跨语言互操作 {#cross-language-interoperability}
 
-以下内容说明默认 xlang 格式的跨语言类型映射、类型标识和互操作要求。
+所有 Fory 实现都共用默认 xlang 格式。以下内容说明它的跨语言类型映射、类型标识和互操作要求。
 
 Apache Fory™ C# 支持与其他 Fory 实现进行跨语言序列化。
 
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/csharp/configuration.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/csharp/configuration.md
index 6e24e0cc19..a6f39f8f57 100644
--- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/csharp/configuration.md
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/csharp/configuration.md
@@ -104,7 +104,7 @@ Fory fory = Fory.Builder()
     .Build();
 ```
 
-所有根输入形式的默认限制固定为 `128 MiB`。正值会覆盖默认值。创建运行时时会拒绝显式的非正值。被排除在对象图内存估算之外的叶子值仍受剩余输入字节限制:如果未读输入不包含足够字节,Fory 不会读取或创建该叶子值。
+所有根输入形式的默认限制固定为 `128 MiB`。正值会覆盖默认值。创建 Fory 实例时会拒绝显式的非正值。被排除在对象图内存估算之外的叶子值仍受剩余输入字节限制:如果未读输入不包含足够字节,Fory 不会读取或创建该叶子值。
 
 ### `MaxUnbackedContainerItems(long value)`
 
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/csharp/external-types.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/csharp/external-types.md
index dcb42216aa..ac92a22760 100644
--- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/csharp/external-types.md
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/csharp/external-types.md
@@ -112,7 +112,7 @@ internal abstract class AccountSerializer
 - `Ignore = true` 将精确字段计入浅层存储,但不会将其加入编码 Schema。
 - 每个非公共实例字段必须且只能列出一次,使浅层对象图内存估算覆盖目标的完整实例存储。静态字段不属于实例存储。
 
-Fory 不会检查被引用包中的私有成员。精确私有映射是由应用负责的包 ABI 声明。请将包版本与声明一起固定并测试。如果映射的私有字段发生变化,生成的精确访问器会以 CLR 缺少字段错误失败;Fory 不会回退到反射或其他成员。被忽略的私有字段没有运行时访问器,因此请对照固定的包构建验证该存储声明。
+Fory 不会检查被引用包中的私有成员。精确私有映射是由应用负责的包 ABI 声明。请将包版本与声明一起固定并测试。如果映射的私有字段发生变化,生成的精确访问器会以 CLR 缺少字段错误失败;Fory 不会回退到反射或其他成员。被忽略的私有字段没有生成的访问器,因此请对照固定的包构建验证该存储声明。
 
 外部 struct 目标仅支持可见字段和属性映射。精确映射和 `Ignore` 仅适用于 class,因为值存储属于物化该 struct 的持有者。不可访问的指针字段也会被拒绝:生成器不读取私有包布局,因而无法区分指针存储和固定缓冲区。对于这些结构,请使用自定义序列化器。
 
@@ -258,7 +258,7 @@ List<ThirdParty.User> decoded =
     fory.Deserialize<List<ThirdParty.User>>(bytes);
 ```
 
-通过 C# 运行时已经支持的具体载体类型,可以支持外部子项:
+通过 Fory C# 已经支持的具体载体类型,可以支持外部子项:
 
 - 外部 struct 使用 `Nullable<T>`,一维数组使用 `T[]`;
 - `List<T>`、`LinkedList<T>`、`Queue<T>` 和 `Stack<T>`;
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/csharp/index.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/csharp/index.md
index 608ba1122f..6f09028142 100644
--- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/csharp/index.md
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/csharp/index.md
@@ -44,7 +44,7 @@ Apache Fory™ C# 是面向 .NET 的高性能跨语言序列化库。它支持
 
 ```xml
 <ItemGroup>
-  <PackageReference Include="Apache.Fory" Version="1.5.0" />
+  <PackageReference Include="Apache.Fory" Version="1.6.0" />
 </ItemGroup>
 ```
 
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/csharp/schema-metadata.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/csharp/schema-metadata.md
index dee5ad5582..7c625d85c5 100644
--- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/csharp/schema-metadata.md
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/csharp/schema-metadata.md
@@ -25,7 +25,7 @@ license: |
 
 使用 `[ForyStruct]` 启用源码生成序列化器。使用 `[ForyField]` 分配可选、稳定的非负字段 ID,或覆盖字段所用的 Fory Schema 类型。
 
-外部类型序列化在本地抽象序列化器声明上设置 `Target`。该声明的属性定义字段名称、ID、Schema 描述符和可空性。独立声明还定义其 `Evolving` 设置。外部 `BaseOnly` 声明不能设置 `Evolving`;该设置由每个具体派生类型负责。目标提供运行时值和直接访问的成员。
+外部类型序列化在本地抽象序列化器声明上设置 `Target`。该声明的属性定义字段名称、ID、Schema 描述符和可空性。独立声明还定义其 `Evolving` 设置。外部 `BaseOnly` 声明不能设置 `Evolving`;该设置由每个具体派生类型负责。目标提供目标类型的值和直接访问的成员。
 
 ```csharp
 [ForyStruct(Target = typeof(ThirdParty.User))]
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/csharp/security.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/csharp/security.md
index e29b9ce33f..c3e71d343e 100644
--- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/csharp/security.md
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/csharp/security.md
@@ -31,7 +31,7 @@ license: |
 - 只注册端点允许的应用类型,并在第一次根操作之前完成读取端配置。
 - 使用反序列化结果之前,根据应用的授权规则和领域规则验证该值。
 
-## 运行时保护
+## 内置保护
 
 安全相关配置:
 
@@ -45,7 +45,7 @@ license: |
 ## 验证
 
 除正常往返测试外,还应为边界添加负向测试。确认配置后的读取端会拒绝意外的应用类型、
-过深的嵌套、超出资源限制的输入以及格式错误的输入。一次读取失败后,还应确认可复用运行时
+过深的嵌套、超出资源限制的输入以及格式错误的输入。一次读取失败后,还应确认同一 Fory 实例
 仍能正确读取下一个合法根值。
 
-完整选项请参阅[配置](configuration.md),运行时的注册 API 请参阅[类型注册](type-registration.md)。
+完整选项请参阅[配置](configuration.md),Fory 注册 API 请参阅[类型注册](type-registration.md)。
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/dart/basic-serialization.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/dart/basic-serialization.md
index b00c64dec5..dd6459f85b 100644
--- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/dart/basic-serialization.md
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/dart/basic-serialization.md
@@ -140,7 +140,7 @@ PersonForyModule.register(
 
 ## 跨语言互操作 {#cross-language-interoperability}
 
-以下内容说明默认 xlang 格式的跨语言类型映射、类型标识和互操作要求。
+所有 Fory 实现都共用默认 xlang 格式。以下内容说明它的跨语言类型映射、类型标识和互操作要求。
 
 Apache Fory™ Dart 与 Java、Go、C#、Python、Rust 和 Swift 的 Fory 实现使用相同的二进制格式进行序列化。你可以在 Dart 中写入消息并在 Java 中读取,反之亦然,无需任何转换层。
 
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/dart/configuration.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/dart/configuration.md
index 7a40964aee..d10816e612 100644
--- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/dart/configuration.md
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/dart/configuration.md
@@ -115,7 +115,7 @@ final fory = Fory(
 final fory = Fory(maxGraphMemoryBytes: 256 * 1024 * 1024);
 ```
 
-创建运行时时会拒绝显式的非正值。
+创建 Fory 实例时会拒绝显式的非正值。
 
 ### `maxUnbackedContainerItems`
 
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/dart/external-types.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/dart/external-types.md
index 678b527ed2..db5d94bdbf 100644
--- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/dart/external-types.md
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/dart/external-types.md
@@ -193,7 +193,7 @@ Object? value;
 
 注册每个可能动态出现的具体外部类型。
 
-非空根 list、set 和 map 会将其元素、key 和 value 解码为已注册外部目标。Dart 根集合保留现有运行时结构,因此请将根集合作为 `Object?` 读取,再转换其外层载体:
+非空根 list、set 和 map 会将其元素、key 和 value 解码为已注册外部目标。Dart 根集合保留现有的无类型外层结构,因此请将根集合作为 `Object?` 读取,再转换其外层载体:
 
 ```dart
 final decoded =
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/dart/index.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/dart/index.md
index b9cb3aa8ac..faf0c89c47 100644
--- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/dart/index.md
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/dart/index.md
@@ -44,7 +44,7 @@ Apache Fory™ Dart 可以将 Dart 对象序列化为字节并反序列化,也
 
 ```yaml
 dependencies:
-  fory: ^1.5.0
+  fory: ^1.6.0
 
 dev_dependencies:
   build_runner: ^2.4.0
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/dart/schema-evolution.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/dart/schema-evolution.md
index 5ee1fb3502..81365b3d77 100644
--- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/dart/schema-evolution.md
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/dart/schema-evolution.md
@@ -97,7 +97,7 @@ final fory = Fory(compatible: false);
 
 启用 `ignoreInheritedPrivateFields` 会从该具体子类的生成 Schema 中删除每个私有祖先字段和所应用 mixin 字段。禁用它会将这些字段加回,并可能需要提供方配套类型。兼容 Schema 使用普通的缺失字段和未知字段行为。由于生成的字段列表不同,固定 Schema 通信方必须同步变更。父类注解不会将此设置传播给子类。
 
-此选项只改变生成字段选择,不会改变运行时引用协议或添加兼容读取器。
+此选项只改变生成字段选择,不会改变引用协议或添加兼容读取器。
 
 ## 相关主题
 
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/dart/security.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/dart/security.md
index a6f4946595..c75382c860 100644
--- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/dart/security.md
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/dart/security.md
@@ -31,7 +31,7 @@ license: |
 - 只注册端点允许的应用类型,并在第一次根操作之前完成读取端配置。
 - 使用反序列化结果之前,根据应用的授权规则和领域规则验证该值。
 
-## 运行时保护
+## 内置保护
 
 安全相关配置:
 
@@ -45,7 +45,7 @@ license: |
 ## 验证
 
 除正常往返测试外,还应为边界添加负向测试。确认配置后的读取端会拒绝意外的应用类型、
-过深的嵌套、超出资源限制的输入以及格式错误的输入。一次读取失败后,还应确认可复用运行时
+过深的嵌套、超出资源限制的输入以及格式错误的输入。一次读取失败后,还应确认同一 Fory 实例
 仍能正确读取下一个合法根值。
 
-完整选项请参阅[配置](configuration.md),运行时的注册 API 请参阅[类型注册](type-registration.md)。
+完整选项请参阅[配置](configuration.md),Fory 注册 API 请参阅[类型注册](type-registration.md)。
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/dart/type-registration.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/dart/type-registration.md
index a2281ade99..5c8b2dde5d 100644
--- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/dart/type-registration.md
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/dart/type-registration.md
@@ -64,9 +64,9 @@ ModelsForyModule.register(
 UserModelsForyModule.register(fory, User, id: 100);
 ```
 
-对于普通继承类型,请注册带注解的具体子类。其生成序列化器已经拥有完整的扁平子类 Schema;父类或 mixin 仅仅提供字段时,Fory 不要求在运行时注册它们。
+对于普通继承类型,请注册带注解的具体子类。其生成序列化器已经拥有完整的扁平子类 Schema;父类或 mixin 仅仅提供字段时,Fory 不要求单独注册它们。
 
-仅当运行时类型为独立带注解具体父类的值也会被序列化时,才注册该父类。仅作为提供方的 `@ForyStruct(exposePrivateFields: true)` 边界提供生成字段访问,自身没有注册条目。边界和子类 Schema 选项参见 [Struct 继承](inheritance.md)。
+仅当实际类型就是该独立带注解具体父类的值也会被序列化时,才注册该父类。仅作为提供方的 `@ForyStruct(exposePrivateFields: true)` 边界提供生成字段访问,自身没有注册条目。边界和子类 Schema 选项参见 [Struct 继承](inheritance.md)。
 
 外部结构化序列化器使用相同的生成注册 API。请传入外部目标类型:
 
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/go/basic-serialization.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/go/basic-serialization.md
index 1ff24ed131..4fd5b97d36 100644
--- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/go/basic-serialization.md
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/go/basic-serialization.md
@@ -400,7 +400,7 @@ func main() {
 
 ## 跨语言互操作 {#cross-language-interoperability}
 
-以下内容说明默认 xlang 格式的跨语言类型映射、类型标识和互操作要求。
+所有 Fory 实现都共用默认 xlang 格式。以下内容说明它的跨语言类型映射、类型标识和互操作要求。
 
 Fory Go 支持与 Java、Python、C++、Rust、JavaScript/TypeScript、C#、Swift、Dart、Scala 和 Kotlin 无缝交换数据。本指南介绍跨语言兼容性和类型映射。
 
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/go/configuration.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/go/configuration.md
index 1b123656f8..bef2122339 100644
--- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/go/configuration.md
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/go/configuration.md
@@ -139,7 +139,7 @@ f := fory.New(fory.WithMaxGraphMemoryBytes(256 * 1024 * 1024))
 
 该估算主要覆盖实例化的切片、映射、集合、数组、结构体和对象。字符串、二进制数据、原始标量和原始稠密数组等叶值不计入,因此实际进程内存可能高于此值。
 
-所有根输入形式的默认限制固定为 `128 MiB`。正值会覆盖默认值;运行时创建时会拒绝显式设置的非正值。对象图内存预留是字节可用性检查的补充,而不是替代。未计入的叶值仍受剩余输入字节限制:如果未读输入没有足够字节,Fory 不会读取或创建该叶值。
+所有根输入形式的默认限制固定为 `128 MiB`。正值会覆盖默认值;创建 Fory 实例时会拒绝显式设置的非正值。对象图内存预留是字节可用性检查的补充,而不是替代。未计入的叶值仍受剩余输入字节限制:如果未读输入没有足够字节,Fory 不会读取或创建该叶值。
 
 ### WithMaxUnbackedContainerItems
 
@@ -202,7 +202,7 @@ xlang := fory.New(fory.WithXlang(true))
 
 - Go 原生序列化模式
 - 支持更多 Go 原生类型行为
-- 与其他语言实现不兼容
+- 与其他 Fory 实现系列的线格式不兼容
 
 ## 线程安全
 
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/go/security.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/go/security.md
index 7da27f2bda..182bf5aa8b 100644
--- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/go/security.md
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/go/security.md
@@ -31,7 +31,7 @@ license: |
 - 只注册端点允许的应用类型,并在第一次根操作之前完成读取端配置。
 - 使用反序列化结果之前,根据应用的授权规则和领域规则验证该值。
 
-## 运行时保护
+## 内置保护
 
 安全相关配置:
 
@@ -43,7 +43,7 @@ license: |
 ## 验证
 
 除正常往返测试外,还应为边界添加负向测试。确认配置后的读取端会拒绝意外的应用类型、
-过深的嵌套、超出资源限制的输入以及格式错误的输入。一次读取失败后,还应确认可复用运行时
+过深的嵌套、超出资源限制的输入以及格式错误的输入。一次读取失败后,还应确认同一 Fory 实例
 仍能正确读取下一个合法根值。
 
-完整选项请参阅[配置](configuration.md),运行时的注册 API 请参阅[类型注册](type-registration.md)。
+完整选项请参阅[配置](configuration.md),Fory 注册 API 请参阅[类型注册](type-registration.md)。
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/index.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/index.md
index 8e98806629..8fa2b398e4 100644
--- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/index.md
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/index.md
@@ -25,8 +25,8 @@ license: |
 
 | 模式          | 适用场景                               | 从这里开始               |
 | ------------- | -------------------------------------- | ------------------------ |
-| Xlang(默认) | 字节需要跨越运行时边界                 | [Xlang 序列化](xlang.md) |
-| Native        | 所有写入端和读取端都使用同一运行时系列 | [原生序列化](native.md)  |
+| Xlang(默认) | 字节需要跨越语言边界                         | [Xlang 序列化](xlang.md) |
+| Native        | 所有写入端和读取端都使用一个 Fory 实现家族   | [原生序列化](native.md)  |
 
 Xlang 和原生模式是仅有的两种对象序列化模式。Row Format 是可随机访问的分析表示形式,
 Fory JSON 是 Java JSON codec;如果目标不是重建对象,请使用
@@ -34,31 +34,31 @@ Fory JSON 是 Java JSON codec;如果目标不是重建对象,请使用
 
 ## 阅读核心概念和序列化模式
 
-选择具体运行时 API 之前,请按以下顺序阅读:
+为某种语言选择具体 Fory API 之前,请按以下顺序阅读:
 
 1. [核心概念](core-concepts.md)介绍两种模式共用的对象图、类型、Schema、引用、多态和
    Schema 演进。
-2. [Xlang 序列化](xlang.md)介绍默认使用的可移植格式,以及不同语言运行时必须共同遵守的规则。
-3. [原生序列化](native.md)介绍适合使用同运行时原生格式的场景。
+2. [Xlang 序列化](xlang.md)介绍默认使用的可移植格式,以及不同语言的 Fory 实现必须共同遵守的规则。
+3. [原生序列化](native.md)介绍适合使用特定于实现的原生格式的场景。
 
-## 按运行时浏览
+## 按语言浏览
 
-选择运行时以查看其安装方式、生命周期、具体 API、配置、类型注册、Schema 行为、扩展、
+选择语言以查看其安装方式、生命周期、具体 API、配置、类型注册、Schema 行为、扩展、
 平台支持和故障排除信息:
 
-| 运行时                | 模式              | 文档                                                  |
+| 语言                  | 模式              | 文档                                                  |
 | --------------------- | ----------------- | ----------------------------------------------------- |
-| Java                  | xlang 和原生      | [Java 运行时](./java/index.md)                        |
-| Python                | xlang 和原生      | [Python 运行时](./python/index.md)                    |
-| C++                   | xlang 和原生      | [C++ 运行时](./cpp/index.md)                          |
-| Go                    | xlang 和原生      | [Go 运行时](./go/index.md)                            |
-| Rust                  | xlang 和原生      | [Rust 运行时](./rust/index.md)                        |
-| JavaScript/TypeScript | xlang             | [JavaScript/TypeScript 运行时](./javascript/index.md) |
-| C#                    | xlang             | [C# 运行时](./csharp/index.md)                        |
-| Swift                 | xlang             | [Swift 运行时](./swift/index.md)                      |
-| Dart                  | xlang             | [Dart 运行时](./dart/index.md)                        |
-| Scala                 | xlang 和 JVM 原生 | [Scala 运行时](./scala/index.md)                      |
-| Kotlin                | xlang 和 JVM 原生 | [Kotlin 运行时](./kotlin/index.md)                    |
+| Java                  | xlang 和原生      | [Java 指南](./java/index.md)                          |
+| Python                | xlang 和原生      | [Python 指南](./python/index.md)                      |
+| C++                   | xlang 和原生      | [C++ 指南](./cpp/index.md)                            |
+| Go                    | xlang 和原生      | [Go 指南](./go/index.md)                              |
+| Rust                  | xlang 和原生      | [Rust 指南](./rust/index.md)                          |
+| JavaScript/TypeScript | xlang             | [JavaScript/TypeScript 指南](./javascript/index.md)   |
+| C#                    | xlang             | [C# 指南](./csharp/index.md)                          |
+| Swift                 | xlang             | [Swift 指南](./swift/index.md)                        |
+| Dart                  | xlang             | [Dart 指南](./dart/index.md)                          |
+| Scala                 | xlang 和 JVM 原生 | [Scala 指南](./scala/index.md)                        |
+| Kotlin                | xlang 和 JVM 原生 | [Kotlin 指南](./kotlin/index.md)                      |
 
 ## 规范
 
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/java/android.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/java/android.md
index 7aead2fe04..e45eaff39d 100644
--- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/java/android.md
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/java/android.md
@@ -19,7 +19,7 @@ license: |
   limitations under the License.
 ---
 
-## Android 运行时
+## Android 支持
 
 Fory Java 通过常规 `fory-core` 构件支持 Android 8.0+(API 级别 26+)。核心对象序列化无需单独的 Android 构件。
 
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/java/basic-serialization.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/java/basic-serialization.md
index a042f0adfa..7c3818651a 100644
--- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/java/basic-serialization.md
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/java/basic-serialization.md
@@ -114,7 +114,7 @@ Fory fory = Fory.builder()
 
 ## 跨语言互操作 {#cross-language-interoperability}
 
-以下内容说明默认 xlang 格式的跨语言类型映射、类型标识和互操作要求。
+所有受支持的 Fory 实现都共用默认 xlang 格式。以下内容说明它的跨语言类型映射、类型标识和互操作要求。
 
 Apache Fory™ 跨语言序列化是 Java 为必须由 Python、Rust、Go、JavaScript/TypeScript、C++、C#、Swift、Dart、Scala、Kotlin 或其他非 Java Fory 实现读取的载荷提供的编码模式。Java 默认使用支持兼容 Schema 演进的跨语言模式,但示例会显式设置模式,以便在代码中清楚表达载荷契约。
 
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/java/index.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/java/index.md
index 708370bbe1..4f78c17fd2 100644
--- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/java/index.md
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/java/index.md
@@ -51,7 +51,7 @@ Fory core 支持 Java 8 及更高版本。Java Record 序列化需要 Java 17 
 <dependency>
   <groupId>org.apache.fory</groupId>
   <artifactId>fory-core</artifactId>
-  <version>1.5.0</version>
+  <version>1.6.0</version>
 </dependency>
 ```
 
@@ -59,7 +59,7 @@ Fory core 支持 Java 8 及更高版本。Java Record 序列化需要 Java 17 
 
 ```kotlin
 // Binary object serialization
-implementation("org.apache.fory:fory-core:1.5.0")
+implementation("org.apache.fory:fory-core:1.6.0")
 ```
 
 #### JDK 25 及更高版本
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/java/schema-evolution.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/java/schema-evolution.md
index 7f20c7d2a9..703014c492 100644
--- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/java/schema-evolution.md
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/java/schema-evolution.md
@@ -27,7 +27,7 @@ license: |
 
 ### 默认模式
 
-Java 原生模式(`xlang=false`)和跨语言模式均默认使用兼容模式。对于独立部署的服务,该默认设置更安全,因为滚动升级期间或不同语言实现之间,写入端和读取端的 Schema 可能不同。
+Java 原生模式(`xlang=false`)和跨语言模式均默认使用兼容模式。对于独立部署的服务,该默认设置更安全,因为滚动升级期间或不同语言的 Fory 实现之间,写入端和读取端的 Schema 可能不同。
 
 如果载荷的读取端和写入端 Schema 永远相同,请参见[相同 Schema 优化](#same-schema-optimization)。
 
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/java/security.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/java/security.md
index f4c2f408fd..9529476c87 100644
--- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/java/security.md
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/java/security.md
@@ -31,7 +31,7 @@ license: |
 - 只注册端点允许的应用类型,并在第一次根操作之前完成读取端配置。
 - 使用反序列化结果之前,根据应用的授权规则和领域规则验证该值。
 
-## 运行时保护
+## 内置保护
 
 在生产环境以及处理任何不可信载荷来源时,请保持类注册启用:
 
@@ -62,7 +62,7 @@ Fory fory = Fory.builder()
 ## 验证
 
 除正常往返测试外,还应为边界添加负向测试。确认配置后的读取端会拒绝意外的应用类型、
-过深的嵌套、超出资源限制的输入以及格式错误的输入。一次读取失败后,还应确认可复用运行时
+过深的嵌套、超出资源限制的输入以及格式错误的输入。一次读取失败后,还应确认同一 Fory 实例
 仍能正确读取下一个合法根值。
 
-完整选项请参阅[配置](configuration.md),运行时的注册 API 请参阅[类型注册](type-registration.md)。
+完整选项请参阅[配置](configuration.md),Fory 注册 API 请参阅[类型注册](type-registration.md)。
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/java/static-generated-serializers.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/java/static-generated-serializers.md
index 617b042264..7d125575ed 100644
--- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/java/static-generated-serializers.md
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/java/static-generated-serializers.md
@@ -97,7 +97,7 @@ public class DebugOrder {
 }
 ```
 
-## 运行时使用
+## 序列化器选择
 
 在以下环境中,静态生成的序列化器可用时,Fory 会使用它们:
 
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/java/troubleshooting.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/java/troubleshooting.md
index 3343aa5354..2b04dd80f8 100644
--- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/java/troubleshooting.md
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/java/troubleshooting.md
@@ -176,7 +176,7 @@ fory.registerSerializer(MyClass.class, new MyClassSerializer(fory.getTypeResolve
 
 ### JDK25+ 访问错误
 
-在 JDK25+ 上,如果错误中出现 `java.base/java.lang.invoke`,请向 Fory 开放 `java.lang.invoke`。Fory 位于 classpath 时使用 `ALL-UNNAMED`:
+在 JDK25+ 上,建议向 Fory core 开放 `java.lang.invoke`。如果错误中出现 `java.base/java.lang.invoke`,或者 Unsafe 访问被禁用或不可用(包括使用 `--sun-misc-unsafe-memory-access=deny` 时),请添加此开放配置。Fory 位于 classpath 时使用 `ALL-UNNAMED`:
 
 ```bash
 --add-opens=java.base/java.lang.invoke=ALL-UNNAMED
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/javascript/basic-serialization.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/javascript/basic-serialization.md
index 6d27626843..f1957f336c 100644
--- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/javascript/basic-serialization.md
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/javascript/basic-serialization.md
@@ -239,7 +239,7 @@ const fory = new Fory({
 
 ## 跨语言互操作 {#cross-language-interoperability}
 
-以下内容说明默认 xlang 格式的跨语言类型映射、类型标识和互操作要求。
+所有 Fory 实现都共用默认 xlang 格式。以下内容说明它的跨语言类型映射、类型标识和互操作要求。
 
 Fory JavaScript 序列化为与 Java、Python、C++、Go、Rust、C#、Swift、Dart、Scala 和 Kotlin Fory 实现相同的二进制格式。无需转换层,即可在 JavaScript 中写入消息并在 Java 中读取,也支持任意其他方向。
 
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/javascript/configuration.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/javascript/configuration.md
index 6b3326bc8f..46d00fdac3 100644
--- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/javascript/configuration.md
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/javascript/configuration.md
@@ -98,7 +98,7 @@ const fory = new Fory({
 });
 ```
 
-创建运行时时会拒绝显式的非正值。
+创建 Fory 实例时会拒绝显式的非正值。
 
 String、binary 和专用 dense primitive array 载荷保留普通字节大小检查,不消费此对象图预算。仅对确实包含非常紧凑对象图的可信工作负载提高限制。
 
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/javascript/security.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/javascript/security.md
index 09ba7195f5..5376748825 100644
--- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/javascript/security.md
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/javascript/security.md
@@ -31,7 +31,7 @@ license: |
 - 只注册端点允许的应用类型,并在第一次根操作之前完成读取端配置。
 - 使用反序列化结果之前,根据应用的授权规则和领域规则验证该值。
 
-## 运行时保护
+## 内置保护
 
 安全相关配置:
 
@@ -46,7 +46,7 @@ license: |
 ## 验证
 
 除正常往返测试外,还应为边界添加负向测试。确认配置后的读取端会拒绝意外的应用类型、
-过深的嵌套、超出资源限制的输入以及格式错误的输入。一次读取失败后,还应确认可复用运行时
+过深的嵌套、超出资源限制的输入以及格式错误的输入。一次读取失败后,还应确认同一 Fory 实例
 仍能正确读取下一个合法根值。
 
-完整选项请参阅[配置](configuration.md),运行时的注册 API 请参阅[类型注册](type-registration.md)。
+完整选项请参阅[配置](configuration.md),Fory 注册 API 请参阅[类型注册](type-registration.md)。
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/kotlin/basic-serialization.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/kotlin/basic-serialization.md
index 82674fad1e..71c2ac2a7b 100644
--- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/kotlin/basic-serialization.md
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/kotlin/basic-serialization.md
@@ -26,7 +26,7 @@ Xlang 是 Fory Kotlin 的默认序列化模式。本页介绍该默认模式的
 以下内容介绍默认 xlang 模式的模型生成、注册和跨语言往返。
 
 Kotlin xlang 序列化通过 `ForyKotlin` 使用 JVM Fory 实现。当 Kotlin 载荷需要由其他受支持
-的 Fory 运行时读取时,请使用该模式。在所有对端使用相同身份和字段 Schema 注册可移植
+的 Fory 实现读取时,请使用该模式。在所有对端使用相同身份和字段 Schema 注册可移植
 模型类型。
 
 Kotlin 数据类、枚举和密封类模型会在适用时使用 Kotlin 集成与生成的序列化器。确切的
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/kotlin/index.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/kotlin/index.md
index 313cbeb1da..05c5ea9eab 100644
--- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/kotlin/index.md
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/kotlin/index.md
@@ -53,14 +53,14 @@ Fory Kotlin 继承了 Fory Java 的全部功能,并增加了 Kotlin 特有优
 <dependency>
   <groupId>org.apache.fory</groupId>
   <artifactId>fory-kotlin</artifactId>
-  <version>1.5.0</version>
+  <version>1.6.0</version>
 </dependency>
 ```
 
 ### Gradle
 
 ```kotlin
-implementation("org.apache.fory:fory-kotlin:1.5.0")
+implementation("org.apache.fory:fory-kotlin:1.6.0")
 ```
 
 ### JDK25+
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/kotlin/native.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/kotlin/native.md
index 0cd50c1f04..f906887b7d 100644
--- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/kotlin/native.md
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/kotlin/native.md
@@ -189,6 +189,6 @@ println(fory.deserialize(fory.serialize(uuid)))
 
 请使用 `ForyKotlin.builder()` 处理无符号值、范围和 `Duration` 等 Kotlin 特有类型。
 
-对于仅限 Kotlin/JVM 且需要在 JVM 运行时路径上使用 Kotlin 数据类、可空类型、范围、
-无符号值或 Kotlin 集合的通信,请使用原生模式。请在
+对于仅限 Kotlin/JVM 且使用 Kotlin 数据类、可空类型、范围、无符号值或 Kotlin 集合的通信,
+请使用原生模式。请在
 [Kotlin 配置](configuration.md)中为应用选择注册和线程安全设置。
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/kotlin/security.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/kotlin/security.md
index 854edf8c97..f9391027c6 100644
--- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/kotlin/security.md
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/kotlin/security.md
@@ -31,7 +31,7 @@ license: |
 - 只注册端点允许的应用类型,并在第一次根操作之前完成读取端配置。
 - 使用反序列化结果之前,根据应用的授权规则和领域规则验证该值。
 
-## 运行时保护
+## 内置保护
 
 Kotlin 使用 Java 配置接口。在生产环境以及处理任何不可信载荷来源时,请保持启用类注册:
 
@@ -61,7 +61,7 @@ val fory = ForyKotlin.builder()
 ## 验证
 
 除正常往返测试外,还应为边界添加负向测试。确认配置后的读取端会拒绝意外的应用类型、
-过深的嵌套、超出资源限制的输入以及格式错误的输入。一次读取失败后,还应确认可复用运行时
+过深的嵌套、超出资源限制的输入以及格式错误的输入。一次读取失败后,还应确认同一 Fory 实例
 仍能正确读取下一个合法根值。
 
-完整选项请参阅[配置](configuration.md),运行时的注册 API 请参阅[Java 类型注册](../java/type-registration.md)。
+完整选项请参阅[配置](configuration.md),Fory 注册 API 请参阅[Java 类型注册](../java/type-registration.md)。
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/native.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/native.md
index f62a7e2fb0..5b9c60fad5 100644
--- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/native.md
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/native.md
@@ -19,17 +19,133 @@ license: |
   limitations under the License.
 ---
 
-原生序列化使用绑定特有的编码格式和所属运行时的原生类型系统。它不是共享的跨语言协议。
+原生序列化使用特定于实现的编码格式和宿主语言的原生类型系统。当所有写入端和读取端都使用
+同一个 Fory 实现家族,并且载荷需要保留语言特定的类型或行为时,应选择原生序列化。不同实现
+家族的原生载荷不能互换。
+
+只要使用不同原生编码格式的对等端需要读取这些字节,就应使用 [xlang 序列化](xlang.md)。
+Xlang 使用共享的类型系统和编码格式;原生模式则有意贴近该实现家族的原生对象模型。
+
+原生模式与 xlang 支持的类型存在重叠。本页列出的类型不一定只能用于原生模式;只要具有可移植
+映射,许多语言原生载体也可以用于 xlang。应先根据数据边界和所需编码契约选择模式,再检查相应
+语言对具体模型的类型映射。
 
 ## 何时使用原生模式
 
-当同一运行时之间的通信需要语言特有对象形状、从宿主序列化器迁移,或者需要不受 xlang
-类型映射约束且更小、更快的格式时,请使用原生模式。只要需要由不同运行时读取字节,
-就应使用 [xlang 模式](xlang.md)。
+以下场景适合使用原生模式:
+
+- 所有生产端和消费端都使用同一个 Fory 实现家族;
+- 对象图包含超出可移植 xlang 类型映射范围的语言特定类型或行为;
+- 应用从现有同语言序列化器迁移,并希望保留当前对象模型,而不是引入跨语言 Schema;或者
+- 存储或传输的数据只在一个实现家族内流转,而不是作为多个实现家族共享的契约。
+
+当通信方使用不同的 Fory 实现家族、契约必须与语言无关,或可移植性比完整原生对象范围更重要时,
+应改用 xlang。
+
+| 场景                                             | 推荐模式 |
+| ------------------------------------------------ | -------- |
+| 一个实现家族使用语言特定类型                     | Native   |
+| 替换现有同语言对象序列化器                       | Native   |
+| 数据在多个 Fory 实现家族之间交换                 | Xlang    |
+| 长期维护且希望保持语言无关的契约                 | Xlang    |
+
+## Java
+
+仅供 Java/JVM 使用的载荷若需要比可移植 xlang 映射更广的 Java 对象范围,请选择
+[Java 原生序列化](java/native.md)。这包括普通 Java 对象、record、enum、基本类型与对象数组、
+常见 JDK 集合和包装类型、接口、继承、共享引用和循环对象图。
+
+Java 原生模式还支持使用 JDK 序列化钩子的类:
+
+- `writeObject` 和 `readObject`;
+- `writeReplace` 和 `readResolve`;
+- `readObjectNoData`;
+- `Externalizable`。
+
+Fory 在写入 Fory 原生字节时遵循这些钩子,但不会生成 Java `ObjectOutputStream` 字节。准确语义
+请参阅 [JDK 自定义序列化](java/jdk-serialization.md)。
+
+如果要替换仅供 Java 使用的 Kryo、FST、Hessian 或 JDK serialization,并希望继续以现有 Java
+对象模型作为序列化模型,请使用 Java 原生模式。
+
+## Python
+
+仅供 Python 使用的载荷若需要超出可移植 xlang 范围的 Python 对象,请选择
+[Python 原生序列化](python/native.md)。原生模式支持 class、全局和局部函数、lambda、closure、
+实例方法、类方法、静态方法、共享引用和循环对象图。
+
+它还支持 Python 对象构造和状态钩子,包括:
+
+- `__getstate__` 和 `__setstate__`;
+- `__getnewargs__` 和 `__getnewargs_ex__`;
+- `__reduce__` 和 `__reduce_ex__`。
+
+替换仅供 Python 使用的 Pickle 或 cloudpickle 对象图时应使用此模式。如果 MessagePack 边界仅供
+Python 使用,并且两端都迁移到 Fory、应用希望直接序列化 Python 对象,也可以使用原生模式。
+如果 MessagePack 当前被用作与语言无关的交换格式,则应使用 xlang。
+
+支持的 Python 对象形状和重建行为请参阅[函数、类和方法](python/functions-classes-methods.md)以及
+[序列化钩子](python/serialization-hooks.md)。
+
+## Rust
+
+当所有端点都是 Rust,并且载荷应使用 Rust 特定的编码格式时,请选择
+[Rust 原生序列化](rust/native.md)。这并不表示常见 Rust 容器、`Rc<T>`、`Arc<T>`、trait object
+或 `dyn Any` 不能用于 xlang;只要选定具体类型具有可移植映射,这些载体也可以参与 xlang。
+准确模型请查阅 [Xlang 类型映射](../specification/xlang_type_mapping.md)和 Rust 语言指南。
+
+一种原生模式特有的形状是携带数据、采用 struct 风格且 variant 直接包含多个字段的 enum。在原生
+模式中,带有 `#[derive(ForyUnion)]` 的 enum 可以同时包含 unit variant、含一个或多个字段的
+tuple variant,以及含一个或多个字段的 named variant:
+
+```rust
+use fory::ForyUnion;
+
+#[derive(ForyUnion)]
+enum Command {
+    #[fory(default)]
+    Idle,
+    Move(i32, i32),
+    Create { id: u128, label: String },
+}
+```
+
+一个 xlang UNION 备选项最多携带一个已声明的载荷值。Xlang 中的多个逻辑字段必须包装在显式声明的
+struct 中,而 Rust 原生模式可以直接编码 tuple 或 named 字段。本地和第三方 enum 形状请参阅
+[Rust Enum 支持](rust/schema-evolution.md#enum-support)和
+[外部类型序列化](rust/external-types.md#native-struct-style-enums)。
+
+## C++
+
+当所有端点都是 C++,并且数据模型应使用 C++ 特定的编码格式时,请选择
+[C++ 原生序列化](cpp/native.md)。标准容器、struct 和 class、`std::optional`、`std::variant`、
+tuple-like 值、智能指针和受支持的标量载体并非都只能用于原生模式;只要存在对应的可移植映射,
+它们也可以用于 xlang。
+
+应当因为边界仅供 C++ 使用或具体模型需要 C++ 特定表示而选择原生模式,而不能仅仅因为模型使用了
+C++ 标准库类型。准确的原生和 xlang 映射请参阅[支持的类型](cpp/supported-types.md)。
+
+## 从其他序列化器迁移
+
+原生模式是一条替代序列化路径,并不是其他库编码格式的解码器。Kryo、FST、Hessian、JDK
+serialization、Pickle、cloudpickle 和 MessagePack 字节不会自动变成 Fory 原生字节。
+
+应将写入端和读取端一起迁移到对应的 Fory 实现家族。如果迁移期间仍需读取已有存储数据,请在该
+边界保留先前的解码器,并在数据迁移时用 Fory 重新序列化。只要某个边界仍有读取端使用不同的原生
+编码格式,就不要使用原生模式。
+
+## 启用原生模式
+
+| 语言   | 原生模式配置                              |
+| ------ | ----------------------------------------- |
+| Java   | `Fory.builder().withXlang(false).build()` |
+| Python | `pyfory.Fory(xlang=False)`                |
+| C++    | `Fory::builder().xlang(false).build()`    |
+| Rust   | `Fory::builder().xlang(false).build()`    |
 
-## 支持的运行时系列
+## 语言指南
 
-- [Java](java/native.md),包括 Scala 和 Kotlin 使用的 JVM 路径
+- [Java](java/native.md)
 - [Python](python/native.md)
 - [C++](cpp/native.md)
 - [Go](go/native.md)
@@ -37,5 +153,4 @@ license: |
 - [Scala](scala/native.md)
 - [Kotlin](kotlin/native.md)
 
-每个运行时页面负责介绍其具体对象模型、Schema 规则、配置、扩展 API 和诊断方式。不同
-运行时系列的原生载荷不能互换。
+每份语言指南分别说明其准确的支持类型、配置、Schema 行为、扩展 API 和诊断方式。
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/python/basic-serialization.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/python/basic-serialization.md
index 228a810d53..54b9679be5 100644
--- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/python/basic-serialization.md
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/python/basic-serialization.md
@@ -104,7 +104,7 @@ for obj in objects:
 
 ## 跨语言互操作 {#cross-language-interoperability}
 
-以下内容说明默认 xlang 格式的跨语言类型映射、类型标识和互操作要求。
+所有受支持的 Fory 实现都共用默认 xlang 格式。以下内容说明它的跨语言类型映射、类型标识和互操作要求。
 
 `pyfory` 支持跨语言对象图序列化,可以在 Python 中序列化数据,再由 Java、C++、Go、Rust、JavaScript/TypeScript、C#、Swift、Dart、Scala、Kotlin 或其他受支持语言进行反序列化。
 
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/python/schema-metadata.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/python/schema-metadata.md
index e786c9d9a5..dfda648e72 100644
--- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/python/schema-metadata.md
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/python/schema-metadata.md
@@ -314,7 +314,7 @@ class Counters:
     values: Dict[pyfory.FixedInt32, List[pyfory.TaggedInt64]] = field(default_factory=dict)
 ```
 
-对于 `values`,映射键以定长 int32 值写入,每个嵌套列表元素以 tagged int64 写入。运行时类型推断仅用于动态或未知容器 Schema。
+对于 `values`,映射键以定长 int32 值写入,每个嵌套列表元素以 tagged int64 写入。基于值的类型推断仅用于动态或未知容器 Schema。
 
 在兼容模式下,读取端使用远程 Schema 元数据消费字段字节。只有解码值能安全满足本地声明的 Schema 时,Python 才进行赋值。标量转换和整数编码适配仅适用于直接匹配的字段 Schema。除命名与未命名结构体元数据等用户类型族归一化外,嵌套集合元素、映射键和映射值必须保持精确的可空性、引用跟踪和类型形态元数据。
 
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/python/security.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/python/security.md
index a88fc17f5f..00946d718a 100644
--- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/python/security.md
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/python/security.md
@@ -31,7 +31,7 @@ license: |
 - 只注册端点允许的应用类型,并在第一次根操作之前完成读取端配置。
 - 使用反序列化结果之前,根据应用的授权规则和领域规则验证该值。
 
-## 运行时保护
+## 内置保护
 
 应像对待不可信 pickle 字节一样对待来自不可信来源的原生模式字节。设置 `strict=False` 时,原生模式可以重建 Python 对象、导入模块、调用归约钩子以及重建动态类或函数。
 
@@ -138,7 +138,7 @@ fory = pyfory.Fory(xlang=False, ref=True, strict=False, policy=policy)
 ## 验证
 
 除正常往返测试外,还应为边界添加负向测试。确认配置后的读取端会拒绝意外的应用类型、
-过深的嵌套、超出资源限制的输入以及格式错误的输入。一次读取失败后,还应确认可复用运行时
+过深的嵌套、超出资源限制的输入以及格式错误的输入。一次读取失败后,还应确认同一 Fory 实例
 仍能正确读取下一个合法根值。
 
-完整选项请参阅[配置](configuration.md),运行时的注册 API 请参阅[类型注册](type-registration.md)。
+完整选项请参阅[配置](configuration.md),Fory 注册 API 请参阅[类型注册](type-registration.md)。
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/rust/basic-serialization.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/rust/basic-serialization.md
index df6be5f49f..cc58f12d7b 100644
--- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/rust/basic-serialization.md
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/rust/basic-serialization.md
@@ -145,7 +145,7 @@ Rust 启用 `chrono::NaiveDate`、`chrono::NaiveDateTime` 和 `chrono::Duration`
 
 ```toml
 [dependencies]
-fory = { version = "1.5.0", features = ["chrono"] }
+fory = { version = "1.6.0", features = ["chrono"] }
 ```
 
 ### 自定义类型
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/rust/configuration.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/rust/configuration.md
index 05fcf6ac75..05c5ae3bc3 100644
--- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/rust/configuration.md
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/rust/configuration.md
@@ -110,7 +110,7 @@ let fory = Fory::builder()
     .build();
 ```
 
-运行时创建时会拒绝零值。
+创建 Fory 实例时会拒绝零值。
 
 ### 无输入支撑容器工作预算
 
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/rust/external-types.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/rust/external-types.md
index 0913feaf2d..0210879861 100644
--- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/rust/external-types.md
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/rust/external-types.md
@@ -84,7 +84,7 @@ enum ValueSerializer {
 }
 ```
 
-为了无损读取 xlang union,目标必须表示相同的运行时未知 case 载体。第三方 crate 可以通过声明 `Value<U>` 等泛型枚举来保持对 Fory 的独立;应用将序列化器目标设置为 `Value<UnknownCase>`。无法承载未知 case 的目标不能用于无损外部 xlang union 序列化。
+为了无损读取 xlang union,目标必须表示相同的内存中未知 case 载体。第三方 crate 可以通过声明 `Value<U>` 等泛型枚举来保持对 Fory 的独立;应用将序列化器目标设置为 `Value<UnknownCase>`。无法承载未知 case 的目标不能用于无损外部 xlang union 序列化。
 
 ### 原生结构体风格枚举
 
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/rust/index.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/rust/index.md
index 539923f3fb..f05cffd9bd 100644
--- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/rust/index.md
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/rust/index.md
@@ -36,9 +36,9 @@ Rust 实现通过自动内存管理和编译期类型安全提供灵活的高性
 
 | Crate                                                                       | 说明                               | 版本                                          |
 | --------------------------------------------------------------------------- | ---------------------------------- | --------------------------------------------- |
-| [`fory`](https://github.com/apache/fory/blob/main/rust/fory)                | 面向用户的 API、运行时类型和派生宏 | [1.5.0](https://crates.io/crates/fory)        |
-| [`fory-core`](https://github.com/apache/fory/blob/main/rust/fory-core/)     | 用于高级集成的底层运行时 crate     | [1.5.0](https://crates.io/crates/fory-core)   |
-| [`fory-derive`](https://github.com/apache/fory/blob/main/rust/fory-derive/) | 供直接使用运行时的底层过程宏 crate | [1.5.0](https://crates.io/crates/fory-derive) |
+| [`fory`](https://github.com/apache/fory/blob/main/rust/fory)                | 面向用户的 API、运行时类型和派生宏 | [1.6.0](https://crates.io/crates/fory)        |
+| [`fory-core`](https://github.com/apache/fory/blob/main/rust/fory-core/)     | 用于高级集成的底层运行时 crate     | [1.6.0](https://crates.io/crates/fory-core)   |
+| [`fory-derive`](https://github.com/apache/fory/blob/main/rust/fory-derive/) | 供直接使用运行时的底层过程宏 crate | [1.6.0](https://crates.io/crates/fory-derive) |
 
 大多数应用程序只需依赖 `fory`。它重新导出生成代码所需的派生宏和公共运行时类型。只有明确要基于底层运行时 crate 构建时,才直接使用 `fory-core` 或 `fory-derive`。
 
@@ -48,7 +48,7 @@ Rust 实现通过自动内存管理和编译期类型安全提供灵活的高性
 
 ```toml
 [dependencies]
-fory = "1.5.0"
+fory = "1.6.0"
 ```
 
 ### 基本示例
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/rust/native.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/rust/native.md
index a9eea80c24..d421b3deae 100644
--- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/rust/native.md
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/rust/native.md
@@ -96,7 +96,7 @@ fory.register::<Order>(100)?;
 - `RefCell<T>` 和 `Mutex<T>`。
 - `Box<dyn Trait>`、`Rc<dyn Trait>` 和 `Arc<dyn Trait>` 等特征对象。
 - 对已注册的非容器载荷,通过 `Box<dyn Any>`、`Rc<dyn Any>` 和
-  `Arc<dyn Any + Send + Sync>` 进行运行时类型分派。请将容器包装在已注册的结构体、枚举或 union 中;当不透明的 EXT/NAMED_EXT 表示合适时,也可以注册精确目标类型的自定义序列化器。
+  `Arc<dyn Any + Send + Sync>` 进行动态类型分派。请将容器包装在已注册的结构体、枚举或 union 中;当不透明的 EXT/NAMED_EXT 表示合适时,也可以注册精确目标类型的自定义序列化器。
 - 日期和时间载体,包括可选的 `chrono` 支持。
 
 相关示例参见[基本序列化](basic-serialization.md)、[引用](references.md)和[特征对象序列化](polymorphism.md)。
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/rust/polymorphism.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/rust/polymorphism.md
index 4a72a67342..a2123c0d16 100644
--- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/rust/polymorphism.md
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/rust/polymorphism.md
@@ -59,7 +59,7 @@ impl Animal for Cat {
 register_trait_type!(Animal, Dog, Cat);
 ```
 
-具体类型列表包含运行时值类型。每个类型还必须向 `Fory` 实例注册:
+具体类型列表包含具体的 Rust 值类型。每个类型还必须向 `Fory` 实例注册:
 
 ```rust
 let mut fory = Fory::builder().xlang(false).build();
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/rust/security.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/rust/security.md
index 126799f446..f078c0b018 100644
--- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/rust/security.md
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/rust/security.md
@@ -31,7 +31,7 @@ license: |
 - 只注册端点允许的应用类型,并在第一次根操作之前完成读取端配置。
 - 使用反序列化结果之前,根据应用的授权规则和领域规则验证该值。
 
-## 运行时保护
+## 内置保护
 
 安全相关配置:
 
@@ -45,7 +45,7 @@ license: |
 ## 验证
 
 除正常往返测试外,还应为边界添加负向测试。确认配置后的读取端会拒绝意外的应用类型、
-过深的嵌套、超出资源限制的输入以及格式错误的输入。一次读取失败后,还应确认可复用运行时
+过深的嵌套、超出资源限制的输入以及格式错误的输入。一次读取失败后,还应确认同一 Fory 实例
 仍能正确读取下一个合法根值。
 
-完整选项请参阅[配置](configuration.md),运行时的注册 API 请参阅[类型注册](type-registration.md)。
+完整选项请参阅[配置](configuration.md),Fory 注册 API 请参阅[类型注册](type-registration.md)。
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/rust/type-registration.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/rust/type-registration.md
index 08b1203145..109e95acea 100644
--- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/rust/type-registration.md
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/rust/type-registration.md
@@ -73,7 +73,7 @@ fory.register_serializer::<UuidSerializer>(100)?;
 fory.register::<UserSerializer>(101)?;
 ```
 
-序列化器的 `Target` 是运行时值类型。注册不需要单独的外部类型 API。在字段上,`with` 可以选择 `VecSerializer<UserSerializer>` 等确切载体序列化器,而递归 `list`、`map` 或 `tuple` 注解在子节点选择序列化器。在根上组合相同的载体序列化器。载体序列化器不注册。
+序列化器的 `Target` 是 Rust 值类型。注册不需要单独的外部类型 API。在字段上,`with` 可以选择 `VecSerializer<UserSerializer>` 等确切载体序列化器,而递归 `list`、`map` 或 `tuple` 注解在子节点选择序列化器。在根上组合相同的载体序列化器。载体序列化器不注册。
 
 ## 注册一致性
 
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/scala/index.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/scala/index.md
index ab090662ac..bfa88e61ad 100644
--- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/scala/index.md
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/scala/index.md
@@ -49,7 +49,7 @@ Fory Scala 继承了 Fory Java 的全部功能,并增加了 Scala 特有优化
 使用 sbt 添加依赖:
 
 ```sbt
-libraryDependencies += "org.apache.fory" %% "fory-scala" % "1.5.0"
+libraryDependencies += "org.apache.fory" %% "fory-scala" % "1.6.0"
 ```
 
 ### JDK25+
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/scala/native.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/scala/native.md
index cbd1639db6..5a90f7d0ff 100644
--- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/scala/native.md
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/scala/native.md
@@ -176,6 +176,6 @@ val employee = Employee(
 println(fory.deserialize(fory.serialize(employee)))
 ```
 
-对于仅限 Scala/JVM 且需要在 JVM 运行时路径上使用 Scala case class、集合、tuple、option
-或枚举的通信,请使用原生模式。生产环境 builder 设置请参阅
+对于仅限 Scala/JVM 且使用 Scala case class、集合、tuple、option 或枚举的通信,
+请使用原生模式。生产环境 builder 设置请参阅
 [Scala 配置](configuration.md)。
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/scala/security.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/scala/security.md
index 9fc85fbed5..fdea6f7a8e 100644
--- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/scala/security.md
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/scala/security.md
@@ -31,7 +31,7 @@ license: |
 - 只注册端点允许的应用类型,并在第一次根操作之前完成读取端配置。
 - 使用反序列化结果之前,根据应用的授权规则和领域规则验证该值。
 
-## 运行时保护
+## 内置保护
 
 Scala 使用 Java 配置接口。在生产环境以及处理任何不可信载荷来源时,请保持启用类注册:
 
@@ -61,7 +61,7 @@ val fory = ForyScala.builder()
 ## 验证
 
 除正常往返测试外,还应为边界添加负向测试。确认配置后的读取端会拒绝意外的应用类型、
-过深的嵌套、超出资源限制的输入以及格式错误的输入。一次读取失败后,还应确认可复用运行时
+过深的嵌套、超出资源限制的输入以及格式错误的输入。一次读取失败后,还应确认同一 Fory 实例
 仍能正确读取下一个合法根值。
 
-完整选项请参阅[配置](configuration.md),运行时的注册 API 请参阅[Java 类型注册](../java/type-registration.md)。
+完整选项请参阅[配置](configuration.md),Fory 注册 API 请参阅[Java 类型注册](../java/type-registration.md)。
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/swift/basic-serialization.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/swift/basic-serialization.md
index 8305dcc367..c754dba42f 100644
--- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/swift/basic-serialization.md
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/swift/basic-serialization.md
@@ -171,7 +171,7 @@ let decoded = try fory.deserialize(
 
 ## 跨语言互操作 {#cross-language-interoperability}
 
-以下内容说明默认 xlang 格式的跨语言类型映射、类型标识和互操作要求。
+所有 Fory 实现都共用默认 xlang 格式。以下内容说明它的跨语言类型映射、类型标识和互操作要求。
 
 Fory Swift 可以使用 xlang 协议与其他 Fory 实现交换载荷。
 
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/swift/configuration.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/swift/configuration.md
index db55cba6e4..0c170cfb1d 100644
--- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/swift/configuration.md
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/swift/configuration.md
@@ -102,7 +102,7 @@ TypeMeta 泛型元数据的最大嵌套深度固定为 `20`。写入端拒绝超
 array、dictionary、set、struct、class 和对象。字符串、二进制数据、基本标量和基本类型
 密集数组等叶子值不计入,因此实际进程内存可能高于此值。叶子值仍受可用字节数检查保护:
 如果未读取的输入没有足够字节,Fory 不会读取或创建该叶子值。所有根输入形式的默认限制
-固定为 `128 MiB`。正数会覆盖默认值。创建运行时时会拒绝显式指定的非正数。
+固定为 `128 MiB`。正数会覆盖默认值。创建 Fory 实例时会拒绝显式指定的非正数。
 
 `maxUnbackedContainerItems` 限制一次根反序列化期间,重复读取主体未消耗成比例输入的集合元素
 和 map entry 数量。默认值为 `8192`;零表示严格禁止。
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/swift/security.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/swift/security.md
index 0322a98d39..9454e1942b 100644
--- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/swift/security.md
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/swift/security.md
@@ -31,7 +31,7 @@ license: |
 - 只注册端点允许的应用类型,并在第一次根操作之前完成读取端配置。
 - 使用反序列化结果之前,根据应用的授权规则和领域规则验证该值。
 
-## 运行时保护
+## 内置保护
 
 安全相关配置:
 
@@ -46,7 +46,7 @@ license: |
 ## 验证
 
 除正常往返测试外,还应为边界添加负向测试。确认配置后的读取端会拒绝意外的应用类型、
-过深的嵌套、超出资源限制的输入以及格式错误的输入。一次读取失败后,还应确认可复用运行时
+过深的嵌套、超出资源限制的输入以及格式错误的输入。一次读取失败后,还应确认同一 Fory 实例
 仍能正确读取下一个合法根值。
 
-完整选项请参阅[配置](configuration.md),运行时的注册 API 请参阅[类型注册](type-registration.md)。
+完整选项请参阅[配置](configuration.md),Fory 注册 API 请参阅[类型注册](type-registration.md)。
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/xlang.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/xlang.md
index 06401304ed..6bd2a977b8 100644
--- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/xlang.md
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/xlang.md
@@ -21,14 +21,14 @@ license: |
 
 Xlang 是 Fory 默认的对象序列化模式。Java、Python、C++、Go、Rust、
 JavaScript/TypeScript、C#、Swift、Dart、Scala 和 Kotlin 共用同一种可移植二进制格式。
-各运行时的[基础序列化](#runtime-guides)页面负责介绍 API 和模型示例;本页说明所有通信方必须
+各语言的[基础序列化](#language-guides)页面介绍相应 API 和模型示例;本页说明所有通信方必须
 共同遵循的规则。
 
 请先阅读[核心概念](core-concepts.md),了解 xlang 和原生模式共用的对象图、Schema、引用和多态概念。
 
 ## 概述 {#overview}
 
-当字节需要跨运行时传输时,应使用 xlang 序列化,例如多语言服务、数据管道以及前后端通信。
+当字节需要跨语言边界传输时,应使用 xlang 序列化,例如多语言服务、数据管道以及前后端通信。
 它提供以下能力:
 
 - 直接序列化各语言的原生模型,无需预先定义 IDL。
@@ -36,14 +36,14 @@ JavaScript/TypeScript、C#、Swift、Dart、Scala 和 Kotlin 共用同一种可
 - 使用兼容模式支持独立部署的通信方演进 Schema。
 - 按需保留共享引用和循环引用。
 - 当每个具体类型都有可移植映射时支持多态值。
-- 在运行时支持的情况下,通过带外缓冲区传输大型二进制和数值数据。
+- 在 Fory 实现支持的情况下,通过带外缓冲区传输大型二进制和数值数据。
 
-如果写入端和读取端始终使用同一种受支持的运行时,并且对象图需要 Java 序列化钩子、Python
-pickle 兼容对象等语言特有行为,请改用[原生序列化](native.md)。
+如果写入端和读取端始终使用同一个受支持的 Fory 实现系列,并且对象图需要 Java 序列化钩子、
+Python pickle 兼容对象等语言特有行为,请改用[原生序列化](native.md)。
 
-### 支持的运行时 {#supported-runtimes}
+### 支持的语言 {#supported-languages}
 
-| 运行时                | 包或目标                                  | 模式         |
+| 语言                  | 包或目标                                  | 模式         |
 | --------------------- | ----------------------------------------- | ------------ |
 | Java                  | `org.apache.fory:fory-core`               | xlang/native |
 | Python                | `pyfory`                                  | xlang/native |
@@ -120,7 +120,7 @@ message Person {
 }
 ```
 
-使用 `foryc` 生成所需的运行时目标;生成的模型在这些目标之间使用一致的字段和类型元数据。
+使用 `foryc` 生成所需的语言目标;生成的模型在这些目标之间使用一致的字段和类型元数据。
 
 ## 类型系统和类型标识 {#type-system-and-type-identity}
 
@@ -135,8 +135,8 @@ message Person {
 
 - 当 Python 原生类型无法表达所需位宽时,使用 `pyfory.Int32`、`pyfory.Float16`、
   `pyfory.BFloat16` 等标记。
-- 当一个宿主类型能够表示多个 xlang 类型时,Java、Dart 等运行时使用注解或 Schema 元数据区分。
-- `float16`、`bfloat16` 及其稠密数组使用运行时特有的载体。
+- 当一个宿主类型能够表示多个 xlang 类型时,Java、Dart 等语言使用注解或 Schema 元数据区分。
+- `float16`、`bfloat16` 及其稠密数组使用语言特有的载体。
 - `list<T>` 和稠密 `array<T>` 是不同的 Schema。在兼容模式下,如果元素域兼容,直接结构体字段
   可以在列表和稠密布尔值/数值数组之间适配,但实际列表不能包含目标数组无法表示的 null 或
   引用跟踪元素。
@@ -154,11 +154,11 @@ message Person {
 
 ### 静态字段和动态字段 {#static-and-dynamic-fields}
 
-静态已知字段直接使用声明类型的序列化器,不写入具体运行时类型;动态字段则携带足够的类型信息,
+静态已知字段直接使用声明类型的序列化器,不写入具体类型;动态字段则携带足够的类型信息,
 用于选择已注册的具体类型。接口、抽象类型、trait object 和其他多态位置需要动态元数据;原始类型
 和准确的 final 类型不需要。
 
-| 运行时 | 动态字段模型                                         |
+| 语言   | 动态字段模型                                         |
 | ------ | ---------------------------------------------------- |
 | Java   | `@ForyField(dynamic = ...)` 控制自动或强制写入元数据 |
 | Python | `pyfory.field(dynamic=...)` 控制对象字段元数据       |
@@ -167,7 +167,7 @@ message Person {
 | Rust   | trait object 载体表达动态值                          |
 
 写入动态元数据会增加空间和类型解析开销。只有在字段绝不可能包含其他具体类型时才能禁用它。准确的
-注解和注册示例请参阅各运行时的 Schema 元数据、类型注册和多态文档。
+注解和注册示例请参阅各语言的 Schema 元数据、类型注册和多态文档。
 
 ## 可空性和引用跟踪 {#nullability-and-reference-tracking}
 
@@ -178,8 +178,8 @@ message Person {
 | 可空性   | 允许字段或值位置不包含值     |
 | 引用跟踪 | 保留重复对象身份并支持对象环 |
 
-线格式帧由 [xlang 序列化规范](../specification/xlang_serialization_spec.md)定义。应用应通过运行时 API
-配置语义行为,不要依赖具体的标志值。
+线格式帧由 [xlang 序列化规范](../specification/xlang_serialization_spec.md)定义。应用应通过各语言专用的
+Fory API 配置语义行为,不要依赖具体的标志值。
 
 ### 可空性 {#nullability}
 
@@ -216,9 +216,9 @@ Fory fory = Fory.builder()
     .build();
 ```
 
-全局引用跟踪启用运行时机制,字段元数据决定哪些位置参与跟踪。常见的字段级控制包括 Java 和
+全局引用跟踪启用引用跟踪机制,字段元数据决定哪些位置参与跟踪。常见的字段级控制包括 Java 和
 Scala `@Ref`、Go `fory:"ref"` 标签、Rust `#[fory(ref = true)]`,以及 C++ 智能指针或
-`fory::F().ref()` 元数据。不同语言和载体的默认行为不同,请参阅对应运行时指南。
+`fory::F().ref()` 元数据。不同语言和载体的默认行为不同,请参阅对应语言指南。
 
 引用支持还受宿主语言所有权模型约束。例如 Rust 可以保留受支持的共享引用载体,但循环引用必须
 使用可表达的所有权和弱引用形状。
@@ -230,11 +230,11 @@ Scala `@Ref`、Go `fory:"ref"` 标签、Rust `#[fory(ref = true)]`,以及 C++
 
 1. 注册相同的具体类型标识。
 2. 为该具体类型提供兼容字段 Schema。
-3. 当运行时无法推断时,将该位置标记或建模为动态。
+3. 当 Fory 实现无法推断时,将该位置标记或建模为动态。
 4. 使用具有可移植 xlang 映射的具体类型。
 
-仅有宿主语言继承关系并不能让类型自动变得可移植。如果某种形状没有 xlang 映射,请为同语言流量
-使用原生模式,或者定义可移植模型。接口、trait object、联合和生成代码的语法请参阅各运行时的
+仅有宿主语言继承关系并不能让类型自动变得可移植。如果某种形状没有 xlang 映射,请对同一个
+Fory 实现系列内的流量使用原生模式,或者定义可移植模型。接口、trait object、联合和生成代码的语法请参阅各语言的
 多态文档。
 
 ## Schema 演进 {#schema-evolution}
@@ -256,7 +256,7 @@ Scala `@Ref`、Go `fory:"ref"` 标签、Rust `#[fory(ref = true)]`,以及 C++
 
 ## 零拷贝序列化 {#zero-copy-serialization}
 
-部分运行时可以把大型二进制或数值缓冲区移出主序列化字节流,从而避免将这些缓冲区复制到一个连续
+部分 Fory 实现可以把大型二进制或数值缓冲区移出主序列化字节流,从而避免将这些缓冲区复制到一个连续
 载荷中。
 
 传输流程如下:
@@ -285,8 +285,8 @@ buffers = [obj.to_buffer() for obj in objects]
 decoded = fory.deserialize(metadata, buffers=buffers)
 ```
 
-Go 通过其序列化和缓冲区 API 提供等价的回调缓冲区流程。当前方法名和支持的缓冲区载体请以运行时
-文档为准。
+Go 通过其序列化和缓冲区 API 提供等价的回调缓冲区流程。当前方法名和支持的缓冲区载体请以语言
+指南为准。
 
 当缓冲区很大并且传输层能够避免额外复制时,带外序列化收益明显。对于小数组,回调和多缓冲区传输
 的开销可能高于复制。应用负责缓冲区顺序、生命周期和传输帧。Python 和 NumPy 的详细用法请参阅
@@ -302,7 +302,7 @@ Go 通过其序列化和缓冲区 API 提供等价的回调缓冲区流程。当
 | 字段解码错误           | 字段 ID、名称或类型不同               | 对齐字段元数据,或从同一份 IDL 重新生成所有通信方 |
 | 循环对象图出现栈溢出   | 未启用引用跟踪                        | 启用全局和字段级引用跟踪                          |
 | 共享对象被复制         | 值位置不跟踪引用                      | 为对应载体或字段启用引用跟踪                      |
-| 宿主类型不受支持       | 类型没有可移植的 xlang 表示           | 改用可移植模型,或为同语言流量使用原生模式        |
+| 宿主类型不受支持       | 类型没有可移植的 xlang 表示           | 改用可移植模型,或在同一个 Fory 实现系列内使用原生模式 |
 | Schema/hash 不匹配     | 同 Schema 通信方使用了不同 Schema     | 对齐所有通信方,或恢复兼容模式                    |
 | 升级后失败             | 通信方运行了不兼容的协议版本          | 对齐受支持的 Fory 版本并查看发布说明              |
 | 载荷立即被拒绝         | 一端写入原生字节,另一端按 xlang 读取 | 跨语言契约的所有通信方都应使用 xlang              |
@@ -311,15 +311,15 @@ Go 通过其序列化和缓冲区 API 提供等价的回调缓冲区流程。当
 
 1. 确认每个通信方都使用 xlang 模式和相互支持的 Fory 版本。
 2. 比较注册的类型标识、字段 ID 或名称、数值位宽、可空性和引用元数据。
-3. 在测试跨运行时方向前,先复现同运行时往返。
+3. 在测试跨语言方向前,先在每个 Fory 实现中复现本地往返。
 4. 对生产环境使用的每一种语言组合测试双向传输。
 5. 将值缩减为一个类型和一个字段,然后逐步恢复字段,直到差异再次出现。
-6. 对于生成代码、平台或 API 错误,请查看对应运行时的故障排除页面。
+6. 对于生成代码、平台或 API 错误,请查看对应语言的故障排除页面。
 
-诊断二进制布局时,应使用规范和运行时调试工具。不要把十六进制转储或内部标志值当作稳定的应用
+诊断二进制布局时,应使用规范和具体实现提供的调试工具。不要把十六进制转储或内部标志值当作稳定的应用
 API。
 
-## 运行时指南 {#runtime-guides}
+## 语言指南 {#language-guides}
 
 - [Java](java/basic-serialization.md#cross-language-interoperability)
 - [Python](python/basic-serialization.md#cross-language-interoperability)
@@ -336,9 +336,9 @@ API。
 ## 相关文档 {#related-documentation}
 
 - [Xlang 序列化格式](../specification/xlang_serialization_spec.md) — 规范性的线格式
-- [Xlang 类型映射](../specification/xlang_type_mapping.md) — 各运行时准确的载体映射
+- [Xlang 类型映射](../specification/xlang_type_mapping.md) — 各宿主语言准确的载体映射
 - [Fory IDL 和编译器](../compiler/index.md) — Schema 优先的模型和代码生成
-- [快速开始](../start/index.md) — 各运行时的安装和第一次序列化
+- [快速开始](../start/index.md) — 各语言的安装和第一次序列化
 - [行格式](../row-format/index.md) — 用于可信分析数据的随机访问行
 
 ## 运维最佳实践 {#operational-best-practices}
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/row-format/index.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/row-format/index.md
index c3db15c2c7..54d400a135 100644
--- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/row-format/index.md
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/row-format/index.md
@@ -28,7 +28,7 @@ Row Format 仅用于可信的分析数据,包括内存映射数据、选择性
 
 ## 选择布局
 
-| 布局         | 运行时支持              | 兼容性                      |
+| 布局         | 语言支持                | 兼容性                      |
 | ------------ | ----------------------- | --------------------------- |
 | Standard Row | Java、Python、C++、Rust | 共享的 Standard Row 布局    |
 | Compact Row  | Java                    | 仅 Java、面向空间优化的布局 |
@@ -50,16 +50,16 @@ Standard Row 内联存储固定宽度值,并通过偏移量和大小存储变
 Schema 解析字段位置和元素类型。规范性的字节布局、对齐规则、类型表和字节序由
 [Row Format 规范](../specification/row_format_spec.md)定义。
 
-### 运行时支持
+### 语言支持
 
-| 运行时 | Standard Row 兼容性 | 运行时指南          | 其他集成                       |
+| 语言   | Standard Row 兼容性 | 语言指南            | 其他集成                       |
 | ------ | ------------------- | ------------------- | ------------------------------ |
 | Java   | 兼容                | [Java](java.md)     | Arrow 转换;接口和扩展类型映射 |
 | Python | 兼容                | [Python](python.md) | PyArrow Schema 和 table 转换   |
 | C++    | 兼容                | [C++](cpp.md)       | 原生 Row 读取器和写入器        |
 | Rust   | 兼容                | [Rust](rust.md)     | 借用式结构体、数组和 Map 视图  |
 
-安装、Schema 构建、编码、随机访问、部分读取和特定语言集成请参阅各运行时指南。
+安装、Schema 构建、编码、随机访问、部分读取和特定语言集成请参阅各语言指南。
 
 ## Compact Row
 
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/row-format/java.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/row-format/java.md
index 64c14228f6..c3e9fd58fa 100644
--- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/row-format/java.md
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/row-format/java.md
@@ -41,14 +41,14 @@ Maven:
 <dependency>
   <groupId>org.apache.fory</groupId>
   <artifactId>fory-format</artifactId>
-  <version>1.5.0</version>
+  <version>1.6.0</version>
 </dependency>
 ```
 
 Gradle:
 
 ```kotlin
-implementation("org.apache.fory:fory-format:1.5.0")
+implementation("org.apache.fory:fory-format:1.6.0")
 ```
 
 ## 基本用法
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/row-format/troubleshooting.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/row-format/troubleshooting.md
index 5d8f3baeb4..109fbf7bc2 100644
--- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/row-format/troubleshooting.md
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/row-format/troubleshooting.md
@@ -31,4 +31,4 @@ Compact Row 是仅支持 Java 的 Row 系列。需要在 Java、Python、C++ 和
 
 ## 嵌套值似乎需要完整反序列化
 
-直接使用 Row、数组和 Map 访问器。只有必须转换为对象的子树才调用运行时编码器的对象重建 API。
+直接使用 Row、数组和 Map 访问器。只有必须转换为对象的子树才调用所选 Fory Row 编码器的对象重建 API。
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/specification/xlang_implementation_guide.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/specification/xlang_implementation_guide.md
index 943a489e83..a22c65585c 100644
--- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/specification/xlang_implementation_guide.md
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/specification/xlang_implementation_guide.md
@@ -21,9 +21,9 @@ license: |
 
 ## 概述
 
-本指南介绍当前各 xlang 运行时采用的 xlang 实现所有权模型。
+本指南介绍当前各 Fory 实现采用的 xlang 所有权模型。
 
-编码格式由 [Xlang 序列化规范](xlang_serialization_spec.md)定义。本文讨论服务边界、操作流程和内部所有权。新的语言实现不必采用相同的类名,但应保持相同的控制流:
+编码格式由 [Xlang 序列化规范](xlang_serialization_spec.md)定义。本文讨论服务边界、操作流程和内部所有权。新的 Fory 实现不必采用相同的类名,但应保持相同的控制流:
 
 - 根操作保留在 `Fory` 门面上
 - 嵌套载荷的工作保留在显式读写上下文中
@@ -175,7 +175,7 @@ xlang 引用标记为:
 所有权划分如下:
 
 - 序列化器提供方拥有静态序列化行为;对于外部结构化序列化器,它还拥有本地 Schema 声明
-- 目标拥有运行时值、宿主类型身份、存储大小和动态向下转型
+- 目标拥有目标类型的值、宿主类型身份、存储大小和动态向下转型
 - 值序列化器拥有目标体、完整根值、默认值、值类型身份、根/动态类型信息和值级多态
 - 内部字段 codec 针对同一目标扩展值序列化器,并拥有 `FieldType`、字段 null/引用分帧、字段容量提示、远程字段元数据、兼容字段组合和递归载体字段 Schema
 - 一个载体实现拥有由根序列化器和字段 codec 复用的主体、分配、插入和引用算法
@@ -228,7 +228,7 @@ internal static class StatusSerializer
 }
 ```
 
-外部声明仅作为编译期生成器输入。它们绝不会被实例化、由运行时反射、注册、发布引用或用作编码身份。运行时类型位置、构造、`TypeInfo`、元数据、引用发布、生成工厂键、根、字段、动态值和载体均使用目标类型。
+外部声明仅作为编译期生成器输入。它们绝不会被实例化、在运行时被反射、注册、发布引用或用作编码身份。所有序列化器类型位置、构造、`TypeInfo`、元数据、引用发布、生成工厂键、根、字段、动态值和载体均使用目标类型。
 
 外部成员可以绑定可见的同名字段或属性。对于外部类目标,设置 `TargetDeclaringType` 和 `TargetMemberName` 则会声明目标或其非 `object` 祖先上的一个确切字段。确切编码映射也会提供物理存储;`Ignore = true` 只提供浅层存储。外部 struct 目标仅支持可见成员映射。未映射的可见 public 实例字段只会被加入外部类浅层存储一次。生成器绝不会发现引用程序集中 private 字段。
 
@@ -240,7 +240,7 @@ internal static class StatusSerializer
 
 每个生成的普通或外部 struct 都使用 `TypeResolver.RegisterGeneratedStruct<T, TSerializer>(bool evolving)`,将生成器所有的 `Evolving` 传入目标 `TypeInfo`。生成的 enum 和 union 使用 `TypeResolver.RegisterGenerated<T, TSerializer>()`。抽象普通提供方和 `BaseOnly` 提供方不注册。一个目标有多个生成所有者时,会在生成期间或跨程序集工厂注册的冷路径上确定性拒绝。替换自定义序列化器时仍遵循解析器的正常目标规则。
 
-C# 载体组合仍以目标为基础。解析器递归绑定 `Nullable<T>`、一维 `T[]`、`List<T>`、`LinkedList<T>`、`Queue<T>`、`Stack<T>`、`HashSet<T>`、`SortedSet<T>`、`ImmutableHashSet<T>`、`Dictionary<TKey, TValue>`、`SortedDictionary<TKey, TValue>`、`SortedList<TKey, TValue>`、`ConcurrentDictionary<TKey, TValue>` 和 `NullableKeyDictionary<TKey, TValue>`。普通、外部和自定义序列化器使用相同的载体主体。不存在继承层次运行时查找、提供方对象、回调、Schema 树、逐元素分派或额外的值分配。
+C# 载体组合仍以目标为基础。解析器递归绑定 `Nullable<T>`、一维 `T[]`、`List<T>`、`LinkedList<T>`、`Queue<T>`、`Stack<T>`、`HashSet<T>`、`SortedSet<T>`、`ImmutableHashSet<T>`、`Dictionary<TKey, TValue>`、`SortedDictionary<TKey, TValue>`、`SortedList<TKey, TValue>`、`ConcurrentDictionary<TKey, TValue>` 和 `NullableKeyDictionary<TKey, TValue>`。普通、外部和自定义序列化器使用相同的载体主体。不存在继承层次的运行时查找、提供方对象、回调、Schema 树、逐元素分派或额外的值分配。
 
 动态 `object` 值和 union 通过 `TypeResolver` 解析具体目标类型。任意静态类型的接口或基类多态仍不受支持。除目标/成员元数据 token 外,扁平普通和外部生成热主体保持相同的工作量与分配形状;继承层次组合属于静态初始化和编译期元数据工作。
 
@@ -253,7 +253,7 @@ Rust 明确命名了这些序列化器操作边界:
 Rust 在 `Serializer` 上用五个关联常量表示不可变的值序列化器属性:
 
 - `IS_OPTIONAL` 表示所选值形状带有 Option 语义;
-- `IS_POLYMORPHIC` 表示其具体目标由运行时值选择;
+- `IS_POLYMORPHIC` 表示其具体目标由应用值选择;
 - `IS_SHARED_REF` 表示它使用现有共享引用编码行为;
 - `IS_WRAPPER` 表示它是 Fory 所有、没有独立注册身份的包装序列化器;以及
 - `REQUIRES_SCOPED_ACCESS` 表示检查或使用其中的动态值需要借用、锁或 weak upgrade。
@@ -262,7 +262,7 @@ Rust 在 `Serializer` 上用五个关联常量表示不可变的值序列化器
 
 `Serializer` 没有字段 API 或字段 Schema 参数。尤其是,它不公开 `FieldType`、字段兼容读取、已声明字段泛型状态、字段 null/引用策略或字段编码选择。Rust 的内部 `Codec<T>` 扩展 `Serializer<Target = T>` 并拥有这些字段操作。叶级 `SerializerCodec<S>` 通过转发到 `S` 实现值行为,并自行实现字段行为;它绝不调用 `S` 上的字段钩子。其值容量提示原样转发。生成字段和字段模式载体主体使用 codec 所有的字段容量提示;该提示会添加或转发字段分帧,但不改变根或值组合。
 
-序列化器提供方身份是宿主实现细节,绝不会编码。外部结构化序列化器使用与等价直接支持目标相同的 STRUCT、ENUM 或 UNION 元数据和值格式。并非运行时现有内置类型规范实现的自定义序列化器使用 EXT 或 NAMED_EXT。分离序列化器提供方并不取代运行时所有的内置映射。
+序列化器提供方身份是宿主实现细节,绝不会编码。外部结构化序列化器使用与等价直接支持目标相同的 STRUCT、ENUM 或 UNION 元数据和值格式。并非 Fory 实现对现有内置类型的规范序列化器的自定义序列化器使用 EXT 或 NAMED_EXT。分离序列化器提供方并不取代实现所拥有的内置映射。
 
 静态生成字段和由序列化器选择的根,应直接分派给其 Schema 选择的序列化器。Rust 字段 `with = S` 选择确切字段节点,并要求 `S::Target` 等于声明的字段类型。它接受普通、外部结构化、自定义或载体序列化器。例如,`with = VecSerializer<UserSerializer>` 选择结构化 `Vec<User>` 字段节点,而 `list(element(with = UserSerializer))` 递归选择子节点。透明字段选择其确切载体序列化器,如 `OptionSerializer<UserSerializer>`。字段代码生成会将两种形式都递归降低为载体 codec。
 
@@ -376,9 +376,9 @@ Rust 1.70 无法从关联 const 选择 codec 类型,因此现有 Vec 和定长
 
 注册由拥有方序列化器或字段 codec 的访问驱动。在 Schema 构造或值处理访问所选用户序列化器的已注册身份或注册支撑元数据前,该序列化器必须已注册。缺失的 Option、空集合或 map、空 weak 值、零长度定长数组或等价递归分支,在其所有路径没有进行这种访问时,可以不注册子项而完成。声明类型主体路径调用其静态选择的序列化器而不查找注册;如果包含 Schema 提供该声明,它的元数据构造已拥有唯一必需的注册/不匹配检查。现有外层 `FieldType` 不声明位置的异构 tuple,则通过正常的逐位置类型元数据操作触达任何必需子注册。绑定不得添加急切递归根验证遍历、已到达主体检查、选择器树、组合目标查找、逐元素序列化器分派、分配、回调或热路径分支来改变该行为。完整容器的确切自定义序列化器仍是独立不透明 EXT/NAMED_EXT 选择。它拥有�
 ��注册动态目标身份,而未注册载体序列化器继续拥有显式静态结构组合。
 
-载体序列化器没有独立注册身份。结构化注册要求现有结构化序列化器契约以及匹配的 STRUCT/ENUM/UNION 类别。自定义注册要求独立 EXT/NAMED_EXT 序列化器并拒绝 `IS_WRAPPER`。Option、Box、Rc、Arc、RcWeak、ArcWeak、RefCell 和 Mutex 载体序列化器会独立于其子类别设置此属性。list、set、map、定长数组和 tuple 保持 false,并通过自身编码类别被拒绝。以相同 Rust 形状之一为目标的自定义序列化器也保持 false,因为它拥有独立不透明 EXT 主体。private 内置注册只验证预期的内部 type ID。这些语义检查使用现有序列化器契约和编码类别。自定义 EXT 注册是 `IS_WRAPPER` 的唯一运行时使用方。
+载体序列化器没有独立注册身份。结构化注册要求现有结构化序列化器契约以及匹配的 STRUCT/ENUM/UNION 类别。自定义注册要求独立 EXT/NAMED_EXT 序列化器并拒绝 `IS_WRAPPER`。Option、Box、Rc、Arc、RcWeak、ArcWeak、RefCell 和 Mutex 载体序列化器会独立于其子类别设置此属性。list、set、map、定长数组和 tuple 保持 false,并通过自身编码类别被拒绝。以相同 Rust 形状之一为目标的自定义序列化器也保持 false,因为它拥有独立不透明 EXT 主体。private 内置注册只验证预期的内部 type ID。这些语义检查使用现有序列化器契约和编码类别。自定义 EXT 注册是 `IS_WRAPPER` 的唯一使用方。
 
-动态值应按具体目标身份解析。当运行时需要两个方向时,其序列化器提供方到类型信息、以及目标到类型信息的索引,必须指向相同的不可变注册元数据和序列化器 harness,而不是创建并行元数据或序列化路径。内部上下文和解析器入口必须命名方向;Rust 对静态 Schema 身份使用 `write_provider_type_info`/`get_provider_type_info`,对动态值身份使用 `write_target_type_info`/`get_target_type_info`。含糊查找不得探测一个 map 后回退到另一个。编码读取仍将编码的 ID 或名称解析到同一元数据。
+动态值应按具体目标身份解析。当 Fory 实现需要两个方向时,其序列化器提供方到类型信息、以及目标到类型信息的索引,必须指向相同的不可变注册元数据和序列化器 harness,而不是创建并行元数据或序列化路径。内部上下文和解析器入口必须命名方向;Rust 对静态 Schema 身份使用 `write_provider_type_info`/`get_provider_type_info`,对动态值身份使用 `write_target_type_info`/`get_target_type_info`。含糊查找不得探测一个 map 后回退到另一个。编码读取仍将编码的 ID 或名称解析到同一元数据。
 
 当现有同构 LIST/SET 或 MAP 头发出一个动态选择的具体类型时,该头所有者会解析并验证目标一次,并为编码 chunk 保留已解析注册元数据。每个主体都借用该确切元数据调用现有动态 harness;不得为每个元素或条目重复目标查找或克隆引用计数元数据句柄。异构 chunk 保留现有逐值元数据路径。该传递不增加编码字段、运行时序列化器实例、回调、Schema 树、缓存或静态路径分支。
 
@@ -521,7 +521,7 @@ return result
 - 在流慢路径中扩展或反复复制最终结果容器
 - 当字节所有者能够一次证明可读性并公开正常缓冲读取时,仍添加序列化器本地分块缓冲区
 
-当目标表示并非直接字节目标时,暂存缓冲区仍然合适,例如字符串转码、压缩、非原地字节序转换、位打包值,或流 API 无法读取到调用方提供目标的运行时。
+当目标表示并非直接字节目标时,暂存缓冲区仍然合适,例如字符串转码、压缩、非原地字节序转换、位打包值,或流 API 无法读取到调用方提供目标的实现。
 
 对于定长原语数组,在确切编码字节数读取成功前,最终结果不得对调用方可见。
 
@@ -529,7 +529,7 @@ return result
 
 此检查不是完整的容器主体验证。它只防止较小或截断的输入造成按大计数预分配。chunk 大小、重复键、元素值语义和协议严格性仍归容器/map 序列化器所有,并且只应在保护真实所有者不变量时验证。
 
-物化读取器还应在分配或设置 size hint 前,预留根操作的估算对象图内存预算。预算状态属于 `ReadContext` 或等价根读取状态,而不是环境线程局部状态。根门面只设置或重置单次操作预算;不得预留根类型或根自身字节。`maxGraphMemoryBytes` 默认为固定 `128 MiB`;正值配置会覆盖默认值;显式非正配置无效,必须在创建运行时时拒绝。不要从根输入大小推导该预算,也不要为该预算添加动态流已读字节计量。
+物化读取器还应在分配或设置 size hint 前,预留根操作的估算对象图内存预算。预算状态属于 `ReadContext` 或等价根读取状态,而不是环境线程局部状态。根门面只设置或重置单次操作预算;不得预留根类型或根自身字节。`maxGraphMemoryBytes` 默认为固定 `128 MiB`;正值配置会覆盖默认值;显式非正配置无效,必须在配置期间或创建 Fory 实例时拒绝。不要从根输入大小推导该预算,也不要为该预算添加动态流已读字节计量。
 
 由于每个根的预算固定,读取状态不应把配置的最大值镜像到第二个活动限制字段。使用现有配置;如果其他地方无法取得配置,则使用一个已配置最大值字段和可变剩余预算。
 
@@ -537,11 +537,11 @@ return result
 
 读取状态不得为该功能扩展任何非内存预算 API,包括引用发布控制、临时所有者控制、序列化器所有者控制、转换辅助方法,或编码正在物化哪类值的 API。这些决策属于具体序列化器和生成序列化器。
 
-该预算是物化对象图所有者的近似门禁,主要涵盖集合、map、array、struct 和 object。它不测量确切堆字节,实际进程内存可能更高。只在存储或分配值的所有者处预留一次自身存储。根门面只重置预算,不得预留根值存储。引用支撑的容器、map、set 和对象/引用数组预留非零所有者自身成本以及引用槽;每个被引用堆所有者在物化时再预留自己的浅层自身成本。内联/值容器预留元素存储;内联/值 map 预留键和值存储;指针、box 和动态物化所有者预留其分配的堆或装箱存储。值序列化器,包括根和生成的 struct/product 读取路径,不预留自身存储。struct/record/POJO/tuple、compatible、generated 和 dynamic object 所有者,仅在引用对象运行时或动态/装箱物化路径中,预留非零浅层自身成本和浅层字段存储。
+该预算是物化对象图所有者的近似门禁,主要涵盖集合、map、array、struct 和 object。它不测量确切堆字节,实际进程内存可能更高。只在存储或分配值的所有者处预留一次自身存储。根门面只重置预算,不得预留根值存储。引用支撑的容器、map、set 和对象/引用数组预留非零所有者自身成本以及引用槽;每个被引用堆所有者在物化时再预留自己的浅层自身成本。内联/值容器预留元素存储;内联/值 map 预留键和值存储;指针、box 和动态物化所有者预留其分配的堆或装箱存储。值序列化器,包括根和生成的 struct/product 读取路径,不预留自身存储。struct/record/POJO/tuple、compatible、generated 和 dynamic object 所有者,仅在引用对象实现或动态/装箱物化路径中,预留非零浅层自身成本和浅层字段存储。
 
-父项不得递归包含子 object、collection、map、string、binary 或原语密集数组内容。跳过作为独立所有者的 enum/union,也跳过专用 string、binary、原语标量、原语数组和原语密集数组叶所有者,但不要跳过 vector 或值对象 list 等一般内联值容器。如果引用槽大小不易或无法可靠查询,使用 4 字节引用槽。原生运行时可以使用保守下界估计,而不是猜测不可移植的 object、container、allocator、table、node、entry 或 debug 布局细节。在预算比较或分配前拒绝算术溢出,并在后备分配或容量预留前保留现有 `checkReadableBytes` 证明。
+父项不得递归包含子 object、collection、map、string、binary 或原语密集数组内容。跳过作为独立所有者的 enum/union,也跳过专用 string、binary、原语标量、原语数组和原语密集数组叶所有者,但不要跳过 vector 或值对象 list 等一般内联值容器。如果引用槽大小不易或无法可靠查询,使用 4 字节引用槽。原生代码实现可以使用保守下界估计,而不是猜测不可移植的 object、container、allocator、table、node、entry 或 debug 布局细节。在预算比较或分配前拒绝算术溢出,并在后备分配或容量预留前保留现有 `checkReadableBytes` 证明。
 
-被跳过的叶所有者仍必须受剩余输入字节约束。如果未读字节不足以容纳 string、binary value、原语标量、原语数组或原语密集数组,运行时不得读取或创建该叶值。
+被跳过的叶所有者仍必须受剩余输入字节约束。如果未读字节不足以容纳 string、binary value、原语标量、原语数组或原语密集数组,读取器不得读取或创建该叶值。
 
 对于 TypeDef 或 TypeMeta 主体,先通过字节所有者证明编码元数据主体字节可读。字段列表分配应发生在该主体可读性检查之后,不应把单独的小初始容量上限当作安全规则。
 
@@ -551,7 +551,7 @@ return result
 
 编码字节与本地已注册元数据完全匹配的远程元数据,在选择该本地类型的现有类型和反序列化策略检查运行后,可以使用本地元数据且不消费远程 Schema 版本限制。这种 exact-local 绕过不只适用于 struct;当具名 enum、ext 和 union 元数据主体存在且与本地编码字节匹配时,也适用。纯基于 id 的 enum、ext 和 typed-union 值不携带 TypeDef 或 TypeMeta 主体,必须保留在正常 type-id 加 user-type-id 路径。兼容的具名 enum、ext 和 union 元数据通常只有一个版本,但当它作为共享元数据发送且不与本地元数据完全匹配时,仍计入已接受远程元数据总数。`maxTypeFields` 只适用于 struct 字段列表。
 
-exact-local 候选必须在元数据所有路径内从解码的元数据身份导出:按 id 注册的元数据使用 `userTypeId`,按名称注册的元数据使用 `(namespace, typeName)`。不要仅为此检查而在线程中传递额外预期类型参数。该规则适用于每个运行时。Java 和 Python 可以在该身份查找选出本地类,并且针对该类的现有 class、registration 和 deserialization-policy 检查运行后,才延迟构建本地编码元数据。
+exact-local 候选必须在元数据所有路径内从解码的元数据身份导出:按 id 注册的元数据使用 `userTypeId`,按名称注册的元数据使用 `(namespace, typeName)`。不要仅为此检查而在线程中传递额外预期类型参数。该规则适用于每个 Fory 实现。Java 和 Python 可以在该身份查找选出本地类,并且针对该类的现有 class、registration 和 deserialization-policy 检查运行后,才延迟构建本地编码元数据。
 
 当静态声明的兼容具名 enum、ext 或 union 字段读取共享元数据时,解码元数据必须匹配已声明 type id、namespace 和 type name,之后元数据所有者才能将其发布到持久缓存或记录 Schema 计数。已接受的头或引用缓存命中仍会跳过主体,并且不得重新运行主体哈希、Schema 限制或注册检查;但字段读取器不得把另一个已声明具名类型的元数据视为当前字段元数据。
 
@@ -595,7 +595,7 @@ struct 专用 Schema/版本分帧和兼容字段布局属于 struct 序列化器
 - Schema 完全匹配的字段使用与同 Schema 读取相同的直接读取形状,不得接收远程兼容元数据
 - 只有当布局把远程/本地顶层标量对分类为可无损转换,且两个字段 Schema 的 `trackingRef = false` 时,匹配标量字段才可使用兼容标量转换
 - 兼容标量转换只适用于立即匹配字段。不得通过向子 Schema 递归应用标量转换来接纳嵌套 collection、array、map key 和 map value Schema。
-- 当元素域匹配时,直接顶层 `list<T?>` 到密集 `array<T>` 的匹配字段必须分类为兼容;可空元素 Schema 位本身不能导致 Schema 对被拒绝。实际 null 元素载荷会在密集数组读取器中失败。当运行时无法在不使用泛型/引用路径的情况下物化引用跟踪 list 元素时,引用跟踪 list 元素分帧是独立问题,仍可拒绝。
+- 当元素域匹配时,直接顶层 `list<T?>` 到密集 `array<T>` 的匹配字段必须分类为兼容;可空元素 Schema 位本身不能导致 Schema 对被拒绝。实际 null 元素载荷会在密集数组读取器中失败。当实现无法在不使用泛型/引用路径的情况下物化引用跟踪 list 元素时,引用跟踪 list 元素分帧是独立问题,仍可拒绝。
 
 当禁用 `compatible` 且启用 `checkStructVersion` 时:
 
@@ -635,7 +635,7 @@ struct 专用 Schema/版本分帧和兼容字段布局属于 struct 序列化器
 
 在 C# 中,enum 的底层数值就是 xlang tag。对于稀疏 C# enum,Java 对端必须声明匹配的 `@ForyEnumId` 值,而不能依赖声明 ordinal。
 
-其他语言实现即使配置或注解表面不同,也应保持相同编码规则。
+其他 Fory 实现即使配置或注解表面不同,也应保持相同编码规则。
 
 Rust 携带数据的 enum 只有在每个已知 variant 是 unit,或恰好携带一个备选值并满足 union case 规则时,才是 xlang union。Rust 原生模式(`xlang = false`)还可以通过原生 enum 格式编码具有多个字段的 tuple 或 named variant。这些 struct 风格 enum 形状没有隐式 xlang 映射。xlang 模式注册必须在发布解析器状态前的冷 Schema/类型选择路径上拒绝它们;生成代码不得丢弃字段、合成未声明的 variant struct 或回退到 EXT。
 
@@ -667,7 +667,7 @@ public 辅助方法应是 Fory 注册 API 上的精简生成包装器,而不
 
 ### Dart 普通 Struct 继承
 
-Dart 普通 `ForyStruct` 继承是代码生成期的字段发现、规范化、访问、构造和扁平化变更。它不会重新设计运行时引用协议。
+Dart 普通 `ForyStruct` 继承是代码生成期的字段发现、规范化、访问、构造和扁平化变更。它不会重新设计引用协议。
 
 对于具体已注解子类,生成器遍历实例化的父类和已应用 mixin 存储链,而不是只查看子类直接的 `element.fields`。每一层的 `InterfaceType.element.fields` 都公开其声明元素,包括另一库中的 private 声明。Dart 可见性控制哪种生成表达式可以访问元素,而不控制是否发现元素。
 
@@ -730,7 +730,7 @@ selected concrete-child constructor parameter
 
 连接到所选构造器参数的可变字段,通过同一确切身份流初始化一次。其余可变字段要求确切 setter,并在构造后恢复。required 构造器参数必须有一个无歧义字段来源。optional named 参数可以省略;被省略的 optional positional 参数之后不能再有已传入 positional 参数。构造器参数和赋值按已解析存储字段身份匹配,而不是按字段名称字符串匹配。如果省略移除了 required 参数唯一的序列化来源,生成会失败;生成器不得发明值或放宽身份证明。
 
-具体子类拥有一个 `GeneratedStructSchema`、一套规范字段排序、一个序列化器和描述符缓存、一次重建、一条引用发布路径和一个对象图内存所有者。父序列化器既不嵌套也不调用,不要求父运行时注册。单独注解的具体父类只为该确切类型的值拥有自己独立扁平化的 Schema。
+具体子类拥有一个 `GeneratedStructSchema`、一套规范字段排序、一个序列化器和描述符缓存、一次重建、一条引用发布路径和一个对象图内存所有者。父序列化器既不嵌套也不调用,不要求父类型注册。单独注解的具体父类只为该确切类型的值拥有自己独立扁平化的 Schema。
 
 被包含的直接字段和继承字段会进入同一规范化列表,再进行现有递归引用分析和 `needsRootRef` 计算。被包含的继承 `ref: true` 和嵌套容器元数据的行为,与等价直接子类字段相同;被省略字段不进入该列表。继承不会增加引用状态、`ReadContext` API、序列化器签名、调用契约变更、运行时分支、槽位、哨兵、回调、包装器、兼容布局状态或父引用所有者。等价扁平模型也存在的失败属于独立的引用子系统问题。
 
@@ -756,7 +756,7 @@ Java 只为该功能提供扁平模型比较:它的对象序列化器跨继承
 
 Dart 外部类型序列化扩展 `ForyStruct`,增加可选的编译期 `target` 和具名生成式 `constructor`。被注解的 `abstract final` 类仅是 Schema 声明。它没有运行时值或注册身份。
 
-生成器必须通过一个 struct 模型和一个 emitter 分析普通与外部 struct。private 生成符号名来自声明名称。每个运行时类型位置都使用目标类型:`Serializer<Target>`、`GeneratedStructSchema<Target>`、读写签名、构造器调用、Schema `type` 和生成模块分派。
+生成器必须通过一个 struct 模型和一个 emitter 分析普通与外部 struct。private 生成符号名来自声明名称。每个生成序列化器类型位置都使用目标类型:`Serializer<Target>`、`GeneratedStructSchema<Target>`、读写签名、构造器调用、Schema `type` 和生成模块分派。
 
 对于每个序列化声明字段,解析同名且实例化 Dart 类型完全相同的可访问目标 getter。构造器参数和任何构造后 setter 也必须完全匹配。只有注解命名 public named generative constructor 时才选择它。factory constructor、abstract target、开放目标类型,以及回到目标的基于构造器的引用跟踪路径,都在生成期间拒绝。递归检查包含受支持 list、set 和 map 字段元数据中嵌套的目标元素、键和值。
 
@@ -766,7 +766,7 @@ Dart 外部类型序列化扩展 `ForyStruct`,增加可选的编译期 `target
 
 生成代码直接读取 getter,并调用目标构造器或 setter。它不得分配声明、通过中间对象复制值、调用运行时回调、执行成员名称查找,或根据 struct 是否外部进行分支。现有生成 struct、注册、解析器、字段、集合、map、兼容读取和引用路径仍是唯一运行时路径。
 
-注册由生成模块和现有生成注册 API 按 `Target` 索引。直接根、生成字段、动态值以及递归 collection/map 子项解析到同一个目标注册。Dart 根集合保留现有无类型外部运行时形状。
+注册由生成模块和现有生成注册 API 按 `Target` 索引。直接根、生成字段、动态值以及递归 collection/map 子项解析到同一个目标注册。Dart 根集合保留现有无类型外层形状。
 
 ## 目录布局
 
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/specification/xlang_serialization_spec.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/specification/xlang_serialization_spec.md
index 6e56b1bafb..9354b70c52 100644
--- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/specification/xlang_serialization_spec.md
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/specification/xlang_serialization_spec.md
@@ -101,7 +101,7 @@ Apache Fory™ xlang 序列化支持自动进行跨语言对象序列化,并
 - 这种等价性也包括规范的专用载体映射。例如,基于规范 `i32` 序列化器的 Rust vector 载体序列化器使用 `INT32_ARRAY`,基于规范 `u8` 序列化器的载体使用 BINARY,基于外部结构化序列化器或自定义序列化器的载体使用 LIST。嵌套载体 MUST 保留所选子项的类型 ID 和递归 `FieldType`;序列化器组合 MUST NOT 用 LIST 替换规范的原始类型数组或二进制映射。相对地,Swift `Array` 载体序列化器 MUST 保持为 LIST,因为这是 Swift 静态选择 `Array` 时的规范映射。Swift 稠密 `@ArrayField` 映射和动态精确原始类型数组映射是彼此独立的规范选择;序列化器的目标恰好是数值类型,并不会使其获得其中任何一种映射。
 - 异构 tuple/product 载体序列化器 MUST 保留该语言绑定现有的直接 tuple 编码和现有的 xlang LIST 编码。所选子项位置 MUST NOT 增加序列化器名称、位置索引、泛型 Schema 节点或直接支持的 tuple 不会编码的其他标记。缺失或额外的兼容位置遵循该语言绑定通常的 tuple 规则。
 - 对通常不会访问子项身份或注册元数据的缺失或空载体分支,MUST NOT 仅为验证所选序列化器而添加合成的子项元数据。仅当正常的 Schema 路径或值路径确实使用了已注册的子项身份时,才需要注册。声明类型的子项 body 继续使用静态选择的行为,不增加编码身份,也不重复查找注册信息;所属的 Schema 元数据负责此前的身份验证。无论何种情况,载体序列化器自身都保持未注册状态。
-- 如果自定义序列化器不是运行时对现有内置类型的规范实现,则 MUST 使用现有 EXT 或 NAMED_EXT 形式。序列化器提供者与目标值分离的机制不会取代运行时拥有的内置映射。
+- 如果自定义序列化器不是 Fory 实现对现有内置类型的规范序列化器,则 MUST 使用现有 EXT 或 NAMED_EXT 形式。序列化器提供者与目标值分离的机制不会取代实现所拥有的内置映射。
 - 序列化器提供者、外部结构化序列化器或代码生成类型的名称 MUST NOT 改变编码后的类型 ID、注册的用户 ID 或名称、TypeDef、字段顺序、Schema 哈希、引用帧或值字节。
 - 即使序列化行为由另一个宿主类型提供,注册和多态分派仍 MUST 标识被序列化的目标值。
 
@@ -172,7 +172,7 @@ float16, bfloat16, float32, float64
 
 仅在 Schema 兼容模式下,匹配的 struct/class 字段可以在直接的顶层 `list<T>` 与直接的顶层 `array<T>` Schema 之间进行读取,前提是 `T` 属于上述有效稠密数组元素域。具有相同有符号性和位宽域的整数 list 元素编码与相应稠密数组元素域匹配。这是一种读取适配,并不是合并 Schema 类型:写入方仍会写出本地规范的 `list<T>` 或 `array<T>` 载荷;TypeDef/ClassDef 编码、指纹、动态根序列化、相同 Schema 模式以及未知字段跳过仍会将 `list<T>` 与 `array<T>` 视为不同类型。
 
-该适配仅限于匹配兼容字段的直接 Schema。当 `list<T>` 或 `array<T>` 出现在另一个字段类型内部时,不适用该适配;这包括集合元素、map 键或值、数组元素、union 备选项或其他泛型/容器位置。对端 `list<T?>` 的 TypeDef 元素 Schema 对于本地匹配的 `array<T>` 字段不会立即构成 Schema 不兼容。如果元素域匹配且元素 Schema 之间唯一的差异是可空元数据,分类阶段必须接受该匹配字段。读取器必须根据集合载荷作出判断:如果载荷实际包含空元素,本地 `array<T>` 字段必须抛出兼容读取错误。不得将 list 中的空元素强制转换为稠密数组默认值。进行引用跟踪的 list 元素帧与可空元素 Schema 是两个不同概念。如果某运行时无法在不经过泛型/引用路径的情况下将引用跟踪的 list 元素具体化为稠密数组,它可以在兼容分类时拒绝该字段;如果接受了该字段,则无法表示�
 �稠密数组元素值的引用载荷必须在读取时失败。
+该适配仅限于匹配兼容字段的直接 Schema。当 `list<T>` 或 `array<T>` 出现在另一个字段类型内部时,不适用该适配;这包括集合元素、map 键或值、数组元素、union 备选项或其他泛型/容器位置。对端 `list<T?>` 的 TypeDef 元素 Schema 对于本地匹配的 `array<T>` 字段不会立即构成 Schema 不兼容。如果元素域匹配且元素 Schema 之间唯一的差异是可空元数据,分类阶段必须接受该匹配字段。读取器必须根据集合载荷作出判断:如果载荷实际包含空元素,本地 `array<T>` 字段必须抛出兼容读取错误。不得将 list 中的空元素强制转换为稠密数组默认值。进行引用跟踪的 list 元素帧与可空元素 Schema 是两个不同概念。如果某个 Fory 实现无法在不经过泛型/引用路径的情况下将引用跟踪的 list 元素具体化为稠密数组,它可以在兼容分类时拒绝该字段;如果接受了该字段,则无法�
 �示为稠密数组元素值的引用载荷必须在读取时失败。
 
 上述稠密数组错误规则适用于稠密数组目标。将匹配的 `list<T?>` 字段读入本地 `list<T?>` 目标时,必须继续使用 list 语义并保留实际的空元素;实现不得让该载荷经过会拒绝空值的稠密原始类型数组具体化路径。
 
@@ -1349,7 +1349,7 @@ Date 表示不带时区的日期。其编码如下:
 
 - `days`(varint64):自 Unix 纪元(`1970-01-01`)起的有符号天数
 
-该值重建为 `LocalDate.ofEpochDay(days)`,或目标语言实现中等价的日历日期构造结果。
+该值重建为 `LocalDate.ofEpochDay(days)`,或目标 Fory 实现中等价的日历日期构造结果。
 
 此 `varint64` 编码仅适用于 xlang 序列化。特定语言的原生本地日期编码保持不变。
 
@@ -1557,7 +1557,7 @@ Union 载荷如下:
 | case_id (varuint32) | case_value (Any-style value) |
 ```
 
-`case_id` 是 union 备选项的 tag 编号。运行时 APIs MAY 为通用 union 载体公开从零开始的 ordinal index;当这些 ordinal 是 Schema 的备选项 ID 时,就是有效的编码 `case_id` 值。
+`case_id` 是 union 备选项的 tag 编号。Fory APIs MAY 为通用 union 载体公开从零开始的 ordinal index;当这些 ordinal 是 Schema 的备选项 ID 时,就是有效的编码 `case_id` 值。
 
 `case_value` MUST 编码为完整的 xlang 值:
 
@@ -1567,7 +1567,7 @@ Union 载荷如下:
 
 即使是原始类型,也必须采用这种编码,以便安全跳过未知备选项。
 
-如果读取器看到本地 union Schema 中不存在的 `case_id`,并且目标语言为其提供语言无关的载体,则 SHOULD 保留未知 case。该载体 MUST 公开原始 case ID 和解码后的值,并且 MUST 只保留重新序列化所需的实现内部编码类型 ID 状态。它 MUST NOT 存储 resolver 拥有的类型元数据或其他上下文拥有的状态。写入器 MUST 将存储的原始 case ID 用于 union envelope,而不是任何生成的载体 marker。unknown-case 载荷写入器 MUST 按编码顺序写入 Any 风格的 payload body:先写引用元数据,再写完整的值类型元数据,最后写值字节。对于内部数值类型 ID,类型 ID 字节就是完整的值类型元数据;当解码值具有预期的具体值类型时,载荷写入器 MAY 使用存储的编码类型 ID 保留定长、变长或 tagged 整数编码。这些标量数值载荷不进行引用跟踪,因此其引用元数据为 `NotNullValue`。否则,它 MUST 回�
 ��到语言实现普通的多态 Any 值写入器。未知载体是 [...]
+如果读取器看到本地 union Schema 中不存在的 `case_id`,并且目标语言为其提供语言无关的载体,则 SHOULD 保留未知 case。该载体 MUST 公开原始 case ID 和解码后的值,并且 MUST 只保留重新序列化所需的实现内部编码类型 ID 状态。它 MUST NOT 存储 resolver 拥有的类型元数据或其他上下文拥有的状态。写入器 MUST 将存储的原始 case ID 用于 union envelope,而不是任何生成的载体 marker。unknown-case 载荷写入器 MUST 按编码顺序写入 Any 风格的 payload body:先写引用元数据,再写完整的值类型元数据,最后写值字节。对于内部数值类型 ID,类型 ID 字节就是完整的值类型元数据;当解码值具有预期的具体值类型时,载荷写入器 MAY 使用存储的编码类型 ID 保留定长、变长或 tagged 整数编码。这些标量数值载荷不进行引用跟踪,因此其引用元数据为 `NotNullValue`。否则,它 MUST 回�
 ��到 Fory 实现普通的多态 Any 值写入器。未 [...]
 
 #### 编码布局
 
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/specification/xlang_type_mapping.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/specification/xlang_type_mapping.md
index 65cd40beba..fff7dca898 100644
--- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/specification/xlang_type_mapping.md
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/specification/xlang_type_mapping.md
@@ -113,7 +113,7 @@ license: |
 
 - C# 外部类型序列化通过本地的 `ForyStruct(Target = typeof(...))` 或
   `ForyEnum(Target = typeof(...))` 序列化器声明映射第三方 class/struct 或 enum。
-  运行时目标仍采用上表所示的 C# 映射;声明的归属方不会造成编码格式上的差异。
+  目标类型仍采用上表所示的 C# 映射;声明的归属方不会造成编码格式上的差异。
 - Python 的 `pyfory.Float16` 和 `pyfory.BFloat16` 是预留的注解标记;标量值反序列化为 Python 原生 `float`。
 - Python 的 `BoolArray`、`Int8Array`、`Int16Array`、`Int32Array`、`Int64Array`、`UInt8Array`、`UInt16Array`、`UInt32Array`、`UInt64Array`、`Float16Array`、`BFloat16Array`、`Float32Array` 和 `Float64Array` 是公开的稠密数组包装器,具有类似列表的序列行为。
 - JavaScript 的 `BoolArray`、回退实现 `Float16Array` 和 `BFloat16Array` 是基于 `Uint8Array` 或 `Uint16Array` 的公开稠密数组包装器。`float16` 和 `bfloat16` 标量值使用 `number`。原生支持 `Float16Array` 的 JavaScript 环境可以为 `array<float16>` 返回该原生载体。
@@ -145,7 +145,7 @@ license: |
   稠密数组元素域匹配。该规则不适用于嵌套 collection、map、array、union 或泛型位置。
   对等端的 `list<T?>` 元素 Schema 对本地 `array<T>` 字段仍属于兼容的 Schema 匹配;如果实际
   载荷包含 null 元素,稠密数组读取器会抛出兼容读取错误,而不会强制转换该值。列表元素的引用
-  跟踪帧与可空元素 Schema 相互独立;如果本地匹配字段为 `array<T>`,且运行时无法在不使用泛型
+  跟踪帧与可空元素 Schema 相互独立;如果本地匹配字段为 `array<T>`,且 Fory 实现无法在不使用泛型
   或引用路径的情况下将其物化,则可以在兼容字段分类阶段拒绝引用跟踪的列表元素帧。
 - `binary` 与 `array<uint8>` 始终是不同的 Schema 类型。仅在兼容 Schema 的 struct/class
   字段匹配中,顶层直接 `binary` 字段可以读取为顶层直接 `array<uint8>` 字段,反向读取也会得到
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/start/cpp.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/start/cpp.md
index 70ddab914d..17b94ac4c8 100644
--- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/start/cpp.md
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/start/cpp.md
@@ -42,7 +42,7 @@ include(FetchContent)
 FetchContent_Declare(
   fory
   GIT_REPOSITORY https://github.com/apache/fory.git
-  GIT_TAG v1.5.0
+  GIT_TAG v1.6.0
   SOURCE_SUBDIR cpp
 )
 FetchContent_MakeAvailable(fory)
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/start/csharp.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/start/csharp.md
index 926ca4069f..0cf18df751 100644
--- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/start/csharp.md
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/start/csharp.md
@@ -34,7 +34,7 @@ dotnet --version
 ```bash
 dotnet new console -n ForyExample
 cd ForyExample
-dotnet add package Apache.Fory --version 1.5.0
+dotnet add package Apache.Fory --version 1.6.0
 ```
 
 将 `Program.cs` 替换为:
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/start/dart.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/start/dart.md
index 4f2bb0c17e..0a70f98b58 100644
--- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/start/dart.md
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/start/dart.md
@@ -34,7 +34,7 @@ dart pub --help
 
 ```yaml
 dependencies:
-  fory: 1.5.0
+  fory: 1.6.0
 
 dev_dependencies:
   build_runner: ^2.4.0
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/start/go.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/start/go.md
index 89c3ebbca1..10ab6d9c9d 100644
--- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/start/go.md
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/start/go.md
@@ -36,7 +36,7 @@ go env GOPROXY
 mkdir fory-example
 cd fory-example
 go mod init example.com/fory-example
-go get github.com/apache/fory/go/fory@v1.5.0
+go get github.com/apache/fory/go/fory@v1.6.0
 ```
 
 如果 Go proxy 尚未收录新的 submodule tag,请稍后重试,或者暂时使用 `GOPROXY=direct`。
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/start/index.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/start/index.md
index ae2c7747ff..9a1f1e7aa8 100644
--- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/start/index.md
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/start/index.md
@@ -19,23 +19,23 @@ license: |
   limitations under the License.
 ---
 
-从下面的运行时页面开始。每个页面都提供锁定到具体发行版本的安装方式、可运行的对象序列化往返示例、该运行时支持的模式,以及通往其他可用 Fory 能力的简要入口。
+从下面的语言页面开始。每个页面都提供锁定到具体发行版本的安装方式、可运行的对象序列化往返示例、该语言可用的模式,以及通往其他可用 Fory 能力的简要入口。
 
 Apache Fory™ 以源代码制品和各语言专用软件包的形式发布。若要下载源代码,请访问 Apache Fory™ [下载](https://fory.apache.org/download)页面。
 
 ## 五分钟上手
 
-1. 选择应用使用的运行时。
-2. 安装该运行时页面中列出的软件包。
+1. 选择应用使用的语言。
+2. 安装该语言页面中列出的软件包。
 3. 运行最小序列化/反序列化示例。
-4. 如果两种模式都可用,跨语言数据选择 xlang 模式,同一运行时的数据选择 native 模式。
+4. 如果两种模式都可用,跨语言数据选择 xlang 模式,由一个 Fory 实现家族处理的数据选择 native 模式。
 5. 前往对应能力指南,了解生产环境配置和高级 API。
 
-## 选择运行时
+## 选择语言
 
-每个运行时页面都提供锁定到具体发行版本的安装片段、适用于应用项目的最小往返示例,以及后续能力专项步骤:
+每个语言页面都提供锁定到具体发行版本的安装片段、适用于应用项目的最小往返示例,以及后续能力专项步骤:
 
-| 运行时                | 设置                                   |
+| 语言                  | 设置                                   |
 | --------------------- | -------------------------------------- |
 | Java                  | [Java](java.md)                        |
 | Python                | [Python](python.md)                    |
@@ -51,12 +51,12 @@ Apache Fory™ 以源代码制品和各语言专用软件包的形式发布。
 
 ## 可以构建什么
 
-| 能力       | 用途                                                        | 可用运行时                                                       | 详细指南                                       |
+| 能力       | 用途                                                        | 可用语言                                                         | 详细指南                                       |
 | ---------- | ----------------------------------------------------------- | ---------------------------------------------------------------- | ---------------------------------------------- |
-| 对象序列化 | 重建对象图,包括共享引用和 Schema 变更                      | 所有运行时                                                       | [对象序列化](../object-serialization/index.md) |
+| 对象序列化 | 重建对象图,包括共享引用和 Schema 变更                      | 所有语言                                                         | [对象序列化](../object-serialization/index.md) |
 | Row Format | 对可信分析数据进行零拷贝、随机或部分字段访问                | Java、Python、C++、Rust                                          | [Row Format](../row-format/index.md)           |
 | Fory JSON  | 高性能标准 JSON 映射                                        | Java                                                             | [Fory JSON](../json/index.md)                  |
-| Fory IDL   | 从 Fory、protobuf 或 FlatBuffers IDL 生成原生模型和序列化器 | 所有运行时                                                       | [Fory IDL 与编译器](../compiler/index.md)      |
+| Fory IDL   | 从 Fory、protobuf 或 FlatBuffers IDL 生成原生模型和序列化器 | 所有语言                                                         | [Fory IDL 与编译器](../compiler/index.md)      |
 | Fory gRPC  | 通过常规 gRPC 传输使用生成的模型和 Fory 编码的消息          | Java、Python、C++、Go、Rust、JavaScript、C#、Dart、Scala、Kotlin | [Fory gRPC](../grpc/index.md)                  |
 
-对象序列化使用 xlang 模式生成可移植的跨语言数据。Java、Python、C++、Go、Rust、Scala 和 Kotlin 还提供 native 模式,用于同一运行时内的数据。如果尚未确定使用哪种格式,请参阅[选择格式](../introduction/choose-a-format.md)。
+对象序列化使用 xlang 模式生成可移植的跨语言数据。Java、Python、C++、Go、Rust、Scala 和 Kotlin 还提供 native 模式,用于由一个 Fory 实现家族处理的数据。如果尚未确定使用哪种格式,请参阅[选择格式](../introduction/choose-a-format.md)。
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/start/java.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/start/java.md
index dbbe4224bc..ce806e8072 100644
--- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/start/java.md
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/start/java.md
@@ -39,14 +39,14 @@ Maven:
 <dependency>
   <groupId>org.apache.fory</groupId>
   <artifactId>fory-core</artifactId>
-  <version>1.5.0</version>
+  <version>1.6.0</version>
 </dependency>
 ```
 
 Gradle:
 
 ```kotlin
-implementation("org.apache.fory:fory-core:1.5.0")
+implementation("org.apache.fory:fory-core:1.6.0")
 ```
 
 运行下面完整的 xlang 往返示例:
@@ -85,7 +85,7 @@ public final class ForyExample {
 Fory JSON 将 Java 对象映射为标准 JSON 文本和 UTF-8 字节。如果应用只需要 JSON,请添加 `fory-json`,无需添加 `fory-core`:
 
 ```kotlin
-implementation("org.apache.fory:fory-json:1.5.0")
+implementation("org.apache.fory:fory-json:1.6.0")
 ```
 
 在 `ForyExample.java` 中添加 import:
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/start/javascript.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/start/javascript.md
index d794e2ad7b..fc56d43ccc 100644
--- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/start/javascript.md
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/start/javascript.md
@@ -33,7 +33,7 @@ npm --version
 安装 core 软件包:
 
 ```bash
-npm install @apache-fory/core@1.5.0
+npm install @apache-fory/core@1.6.0
 ```
 
 定义 Schema 并运行 xlang 往返示例:
@@ -65,7 +65,7 @@ JavaScript 使用 xlang 模式。接下来可阅读 [JavaScript/TypeScript 对
 若要使用可选的 Node.js 字符串快速路径,请安装版本匹配的软件包:
 
 ```bash
-npm install @apache-fory/core@1.5.0 @apache-fory/hps@1.5.0
+npm install @apache-fory/core@1.6.0 @apache-fory/hps@1.6.0
 ```
 
 ## 其他能力
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/start/kotlin.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/start/kotlin.md
index 1594a0cf53..4e4607d768 100644
--- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/start/kotlin.md
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/start/kotlin.md
@@ -35,7 +35,7 @@ java -version
 
 ```kotlin title="build.gradle.kts"
 dependencies {
-  implementation("org.apache.fory:fory-kotlin:1.5.0")
+  implementation("org.apache.fory:fory-kotlin:1.6.0")
 }
 ```
 
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/start/python.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/start/python.md
index 5900533d9c..b0b7fe3d63 100644
--- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/start/python.md
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/start/python.md
@@ -33,7 +33,7 @@ python -m pip --version
 安装已发布的软件包:
 
 ```bash
-python -m pip install pyfory==1.5.0
+python -m pip install pyfory==1.6.0
 ```
 
 运行 xlang 往返示例:
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/start/rust.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/start/rust.md
index e9a0222b76..fd9375ba33 100644
--- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/start/rust.md
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/start/rust.md
@@ -34,7 +34,7 @@ cargo --version
 
 ```toml title="Cargo.toml"
 [dependencies]
-fory = "1.5.0"
+fory = "1.6.0"
 ```
 
 ```rust
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/start/scala.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/start/scala.md
index 856295ceec..269ed7bd11 100644
--- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/start/scala.md
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/start/scala.md
@@ -35,7 +35,7 @@ sbt --version
 
 ```sbt
 ThisBuild / scalaVersion := "3.3.1"
-libraryDependencies += "org.apache.fory" %% "fory-scala" % "1.5.0"
+libraryDependencies += "org.apache.fory" %% "fory-scala" % "1.6.0"
 ```
 
 创建 `src/main/scala/ScalaExample.scala`:
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/start/swift.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/start/swift.md
index 85bbb44b57..38555ef37d 100644
--- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/start/swift.md
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/start/swift.md
@@ -39,7 +39,7 @@ swift package init --type executable --name ForyExample
 
 ```swift title="Package.swift"
 dependencies: [
-    .package(url: "https://github.com/apache/fory.git", exact: "1.5.0")
+    .package(url: "https://github.com/apache/fory.git", exact: "1.6.0")
 ],
 targets: [
     .executableTarget(
diff --git a/i18n/zh-CN/docusaurus-plugin-content-pages/download/index.md b/i18n/zh-CN/docusaurus-plugin-content-pages/download/index.md
index 32a9774622..aa0c2bfb90 100644
--- a/i18n/zh-CN/docusaurus-plugin-content-pages/download/index.md
+++ b/i18n/zh-CN/docusaurus-plugin-content-pages/download/index.md
@@ -5,15 +5,15 @@ title: 下载
 
 Apache Fory™ 的官方发布以源码制品形式提供。
 
-如需二进制安装,请参见 Apache Fory™ [安装](/docs/start/install/) 文档。
+如需二进制安装,请参见 Apache Fory™ [快速开始](/zh-CN/docs/start/)文档。
 
 ## 最新版本
 
-当前最新源码版本为 1.5.0:
+当前最新源码版本为 1.6.0:
 
 | 版本  | 日期       | 源码                                                                                                                                                                                                                                                                                | 发布说明                                                        |
 | ----- | ---------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------- |
-| 1.5.0 | 2026-07-31 | [source](https://www.apache.org/dyn/closer.lua/fory/1.5.0/apache-fory-1.5.0-src.tar.gz?action=download) [asc](https://downloads.apache.org/fory/1.5.0/apache-fory-1.5.0-src.tar.gz.asc) [sha512](https://downloads.apache.org/fory/1.5.0/apache-fory-1.5.0-src.tar.gz.sha512) | [release notes](https://github.com/apache/fory/releases/tag/v1.5.0) |
+| 1.6.0 | 2026-08-07 | [source](https://www.apache.org/dyn/closer.lua/fory/1.6.0/apache-fory-1.6.0-src.tar.gz?action=download) [asc](https://downloads.apache.org/fory/1.6.0/apache-fory-1.6.0-src.tar.gz.asc) [sha512](https://downloads.apache.org/fory/1.6.0/apache-fory-1.6.0-src.tar.gz.sha512) | [release notes](https://github.com/apache/fory/releases/tag/v1.6.0) |
 
 ## 所有归档版本
 
@@ -31,13 +31,13 @@ Fory 为下载站点上的所有文件提供 SHA 摘要和 PGP 签名文件。
 要验证 SHA 摘要,你需要 `.tar.gz` 文件及其对应的 `.tar.gz.sha512` 文件。示例命令如下:
 
 ```bash
-sha512sum --check apache-fory-1.5.0-src.tar.gz.sha512
+sha512sum --check apache-fory-1.6.0-src.tar.gz.sha512
 ```
 
 输出类似下面这样即表示校验通过:
 
 ```bash
-apache-fory-1.5.0-src.tar.gz: OK
+apache-fory-1.6.0-src.tar.gz: OK
 ```
 
 ### 校验签名
@@ -53,13 +53,13 @@ gpg --import KEYS
 之后可以校验签名:
 
 ```bash
-gpg --verify apache-fory-1.5.0-src.tar.gz.asc apache-fory-1.5.0-src.tar.gz
+gpg --verify apache-fory-1.6.0-src.tar.gz.asc apache-fory-1.6.0-src.tar.gz
 ```
 
 如果出现如下输出,即表示签名正确:
 
 ```bash
-gpg: Signature made Tue Jul 28 13:13:48 2026 CST
+gpg: Signature made Tue Aug  4 14:27:34 2026 CST
 gpg:                using RSA key 1E2CDAE4C08AD7D694D1CB139D7BE8E45E580BA4
 gpg: Good signature from "chaokunyang (CODE SIGNING KEY) <ch...@apache.org>" [unknown]
 ```


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@fory.apache.org
For additional commands, e-mail: commits-help@fory.apache.org


(fory-site) 01/03: Release Apache Fory 1.6.0 site content

Posted by ch...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

chaokunyang pushed a commit to branch release_1.6.0
in repository https://gitbox.apache.org/repos/asf/fory-site.git

commit 938d5d5e1ac45eedfbd0815932e399b968dd2664
Author: chaokunyang <sh...@gmail.com>
AuthorDate: Fri Aug 7 15:16:18 2026 +0800

    Release Apache Fory 1.6.0 site content
---
 blog/2026-08-07-fory_1_6_0_released.md  | 191 ++++++++++++++++++++++++++++++++
 src/components/home/HomepageLanding.tsx |  76 ++++++-------
 src/pages/download/index.md             |  14 +--
 3 files changed, 236 insertions(+), 45 deletions(-)

diff --git a/blog/2026-08-07-fory_1_6_0_released.md b/blog/2026-08-07-fory_1_6_0_released.md
new file mode 100644
index 0000000000..eda261ad79
--- /dev/null
+++ b/blog/2026-08-07-fory_1_6_0_released.md
@@ -0,0 +1,191 @@
+---
+slug: fory_1_6_0_release
+title: Fory v1.6.0 Released
+authors: [chaokunyang]
+tags: [fory, java, cpp, rust, csharp, swift, dart]
+---
+
+The Apache Fory team is pleased to announce the 1.6.0 release. This release includes [23 PRs](https://github.com/apache/fory/compare/v1.5.0...v1.6.0). See the [Getting Started](https://fory.apache.org/docs/start/) page to get the libraries for your platform.
+
+## Highlights
+
+- Enhanced Fory JSON with date/time format annotation, GraalVM code generation, and better performance.
+- Added C++ gRPC code generation support.
+- Aligned and enhanced Rust Row Format support.
+
+## Enhanced Fory JSON
+
+Fory 1.6.0 expands Fory JSON's mapping and deployment capabilities while further optimizing its serialization and deserialization paths. The new `JsonFormat` annotation applies a `DateTimeFormatter` pattern in both directions and can select a time zone for instant-bearing values. It works on direct date/time fields and one direct wrapper level, including collection elements, optional values, and map values.
+
+```java
+import java.time.Instant;
+import java.time.LocalDate;
+import java.util.List;
+import org.apache.fory.json.ForyJson;
+import org.apache.fory.json.annotation.JsonFormat;
+
+public final class Schedule {
+  @JsonFormat(pattern = "dd/MM/uuuu")
+  public LocalDate day;
+
+  @JsonFormat(pattern = "dd/MM/uuuu")
+  public List<LocalDate> days;
+
+  @JsonFormat(pattern = "uuuu-MM-dd HH:mm:ss XXX", timezone = "Asia/Shanghai")
+  public Instant timestamp;
+}
+
+ForyJson json = ForyJson.builder().build();
+Schedule schedule = json.fromJson(
+    "{\"day\":\"02/01/2024\",\"days\":[\"03/01/2024\"],"
+        + "\"timestamp\":\"2024-01-02 11:04:05 +08:00\"}",
+    Schedule.class);
+String encoded = json.toJson(schedule);
+```
+
+Fory JSON now also supports generated codecs in GraalVM Native Image. Annotate reachable models with `JsonType`; to generate codecs for a particular completed configuration during image construction, expose it from a reachable `ForyJsonProvider`. Configurations not returned by a provider continue to use prepared interpreted codecs without requiring application reflection configuration.
+
+```java
+import org.apache.fory.json.ForyJson;
+import org.apache.fory.json.annotation.ForyJsonProvider;
+import org.apache.fory.json.annotation.JsonType;
+
+@JsonType
+public final class User {
+  public long id;
+  public String name;
+}
+
+@ForyJsonProvider
+public final class JsonConfigs {
+  public JsonConfigs() {}
+
+  public ForyJson api() {
+    return ForyJson.builder().writeNullFields(true).build();
+  }
+}
+```
+
+The optimized serialization and deserialization paths reduce overhead in common JSON workloads. See the [Fory JSON annotations](/docs/json/annotations#jsonformat) and [GraalVM Native Image](/docs/json/graalvm) guides for the complete behavior and constraints.
+
+## C++ gRPC Code Generation
+
+Fory Compiler can now generate synchronous C++ gRPC service companions from Fory IDL, protobuf IDL, or FlatBuffers IDL. gRPC C++ provides the transport while generated Fory codecs serialize request and response payloads, so service implementations do not perform manual serialization or type registration.
+
+Define a service in Fory IDL and pass `--grpc` together with the C++ output option:
+
+```protobuf
+package demo.greeter;
+
+message HelloRequest {
+  string name = 1;
+}
+
+message HelloReply {
+  string reply = 1;
+}
+
+service Greeter {
+  rpc SayHello (HelloRequest) returns (HelloReply);
+}
+```
+
+```bash
+foryc service.fdl --cpp_out=./generated/cpp --grpc
+```
+
+The compiler emits the C++ models, service interface, generated Fory codec, client stub, server adapter, and route implementations. Applications implement the generated interface and register its adapter with a normal gRPC C++ server:
+
+```cpp
+#include "demo_greeter.service.grpc.h"
+
+class MyGreeter final : public demo::greeter::service::Greeter {
+ public:
+  ::grpc::Status SayHello(
+      ::grpc::ServerContext* context,
+      const ::demo::greeter::HelloRequest* request,
+      ::demo::greeter::HelloReply* response) override {
+    (void)context;
+    response->set_reply("Hello, " + request->name());
+    return ::grpc::Status::OK;
+  }
+};
+
+MyGreeter implementation;
+demo::greeter::service::grpc::GreeterServiceGrpc service(&implementation);
+::grpc::ServerBuilder builder;
+builder.AddListeningPort("0.0.0.0:50051", ::grpc::InsecureServerCredentials());
+builder.RegisterService(&service);
+std::unique_ptr<::grpc::Server> server = builder.BuildAndStart();
+```
+
+Unary, client-streaming, server-streaming, and bidirectional-streaming RPCs are supported through synchronous gRPC C++ APIs. See the [C++ gRPC guide](/docs/grpc/cpp) for dependencies, generated files, client usage, and build integration.
+
+## Aligned and Enhanced Rust Row Format
+
+Rust Row Format now follows the Standard Row Format shared by Java, C++, and Python. It supports schema-driven structs, arrays, maps, nested rows, nullability, temporal values, and checked borrowed views. Readers can access selected fields and collection elements directly from encoded bytes without reconstructing the complete value.
+
+```rust
+use fory::{from_row, to_row, Error, ForyRow, RowView};
+use std::collections::BTreeMap;
+
+#[derive(ForyRow)]
+struct UserProfile {
+    id: i64,
+    name: String,
+    scores: Vec<i32>,
+    labels: BTreeMap<String, String>,
+}
+
+fn main() -> Result<(), Error> {
+    let bytes = to_row(&UserProfile {
+        id: 42,
+        name: "Ada".to_owned(),
+        scores: vec![98, 100],
+        labels: BTreeMap::from([("team".to_owned(), "compiler".to_owned())]),
+    })?;
+
+    let row = from_row::<UserProfile>(&bytes)?;
+    assert_eq!(row.id()?, 42);
+    assert_eq!(row.name()?, "Ada");
+    assert_eq!(row.scores()?.get(1)?, 100);
+    assert_eq!(row.labels()?.value(0)?, "compiler");
+    assert_eq!(row.as_bytes(), bytes);
+    Ok(())
+}
+```
+
+Generated field methods, array iteration, and map indexed access return `Result` and validate the referenced bytes as they are accessed. `to_row_into` can reuse a caller-owned buffer for repeated encoding. See the [Rust Row Format guide](/docs/row-format/rust) for the supported type matrix, binary layout, and cross-language schema requirements.
+
+## Features
+
+- feat(java): use fixed Fory JSON execution states by @chaokunyang in https://github.com/apache/fory/pull/3897
+- feat: add more read checks by @chaokunyang in https://github.com/apache/fory/pull/3898
+- feat(compiler): support C++ gRPC code generation by @BaldDemian in https://github.com/apache/fory/pull/3877
+- feat(java): add JSON date/time format annotation by @chaokunyang in https://github.com/apache/fory/pull/3908
+- feat: bound unbacked container deserialization by @chaokunyang in https://github.com/apache/fory/pull/3910
+- feat(json): add GraalVM codegen support for json by @chaokunyang in https://github.com/apache/fory/pull/3907
+- feat(java): support timezone in JSON date formats by @chaokunyang in https://github.com/apache/fory/pull/3911
+- refactor: unify read progress capability naming by @chaokunyang in https://github.com/apache/fory/pull/3912
+- feat(java): add JSON graph budgets and validators by @chaokunyang in https://github.com/apache/fory/pull/3909
+- feat(rust): align row format with specification by @chaokunyang in https://github.com/apache/fory/pull/3913
+- feat(rust): enhance rust row format by @chaokunyang in https://github.com/apache/fory/pull/3915
+- perf(json): optimize json performance by @chaokunyang in https://github.com/apache/fory/pull/3914
+
+## Bug Fix
+
+- fix(ci): pin Ruff version to 0.15.22 by @BaldDemian in https://github.com/apache/fory/pull/3900
+
+## Other Improvements
+
+- docs(java): publish JSON benchmark results by @chaokunyang in https://github.com/apache/fory/pull/3895
+- docs: rename manual serializers to custom serializers by @chaokunyang in https://github.com/apache/fory/pull/3896
+- chore(release): bump versions after 1.5.0 by @chaokunyang in https://github.com/apache/fory/pull/3905
+- docs(java): document cyclic container limitation by @chaokunyang in https://github.com/apache/fory/pull/3906
+- docs: reorganize documentation by capability by @chaokunyang in https://github.com/apache/fory/pull/3916
+- docs: update start docs by @chaokunyang in https://github.com/apache/fory/pull/3918
+- chore: Bump brace-expansion in /javascript by @dependabot[bot] in https://github.com/apache/fory/pull/3917
+- docs(json): update docs by @chaokunyang in https://github.com/apache/fory/pull/3919
+- chore: Bump brace-expansion, @typescript-eslint/eslint-plugin, @typescript-eslint/parser, eslint, jest and ts-jest in /javascript by @dependabot[bot] in https://github.com/apache/fory/pull/3920
+
+**Full Changelog**: https://github.com/apache/fory/compare/v1.5.0...v1.6.0
diff --git a/src/components/home/HomepageLanding.tsx b/src/components/home/HomepageLanding.tsx
index 1ebca545f0..857a1a7a5d 100644
--- a/src/components/home/HomepageLanding.tsx
+++ b/src/components/home/HomepageLanding.tsx
@@ -138,10 +138,10 @@ const runtimeExamples: RuntimeExample[] = [
     install: `<dependency>
   <groupId>org.apache.fory</groupId>
   <artifactId>fory-core</artifactId>
-  <version>1.5.0</version>
+  <version>1.6.0</version>
 </dependency>`,
     codeLanguage: "java",
-    guide: "/docs/guide/java/",
+    guide: "/docs/object-serialization/java/",
     summary: "Java supports xlang and native modes, JIT serializers, schema evolution, and Java-native object graph features.",
     code: `import org.apache.fory.Fory;
 
@@ -159,9 +159,9 @@ Person out = (Person) fory.deserialize(bytes);`,
     id: "python",
     label: "Python",
     installLanguage: "bash",
-    install: `pip install pyfory`,
+    install: `pip install pyfory==1.6.0`,
     codeLanguage: "python",
-    guide: "/docs/guide/python/",
+    guide: "/docs/object-serialization/python/",
     summary: "pyfory supports xlang, Python native mode, dataclasses, row format, and out-of-band buffers.",
     code: `from dataclasses import dataclass
 import pyfory
@@ -181,9 +181,9 @@ out = fory.deserialize(data)`,
     id: "rust",
     label: "Rust",
     installLanguage: "bash",
-    install: `cargo add fory@1.5.0`,
+    install: `cargo add fory@1.6.0`,
     codeLanguage: "rust",
-    guide: "/docs/guide/rust/",
+    guide: "/docs/object-serialization/rust/",
     summary: "Rust uses derive macros for type-safe structs and supports both xlang and native payloads.",
     code: `use fory::{Error, Fory, ForyStruct};
 
@@ -206,9 +206,9 @@ fn main() -> Result<(), Error> {
     id: "go",
     label: "Go",
     installLanguage: "bash",
-    install: `go get github.com/apache/fory/go/fory`,
+    install: `go get github.com/apache/fory/go/fory@v1.6.0`,
     codeLanguage: "go",
-    guide: "/docs/guide/go/",
+    guide: "/docs/object-serialization/go/",
     summary: "Go supports xlang and native modes with exported structs, circular references, and schema-aware serializers.",
     code: `type Person struct {
     Name string
@@ -230,12 +230,12 @@ _ = f.Deserialize(payload, &out)`,
 FetchContent_Declare(
   fory
   GIT_REPOSITORY https://github.com/apache/fory.git
-  GIT_TAG v1.5.0
+  GIT_TAG v1.6.0
   SOURCE_SUBDIR cpp
 )
 FetchContent_MakeAvailable(fory)`,
     codeLanguage: "cpp",
-    guide: "/docs/guide/cpp/",
+    guide: "/docs/object-serialization/cpp/",
     summary: "C++17 support covers xlang/native payloads, macro-based type registration, and row-format APIs.",
     code: `struct Person {
   std::string name;
@@ -257,9 +257,9 @@ auto out = fory.deserialize<Person>(bytes).value();`,
     id: "javascript",
     label: "JavaScript",
     installLanguage: "bash",
-    install: `npm install @apache-fory/core @apache-fory/hps`,
+    install: `npm install @apache-fory/core@1.6.0 @apache-fory/hps@1.6.0`,
     codeLanguage: "typescript",
-    guide: "/docs/guide/javascript/",
+    guide: "/docs/object-serialization/javascript/",
     summary: "JavaScript/TypeScript is xlang-only, schema-driven, and runs in Node.js or browsers.",
     code: `import Fory, { Type } from "@apache-fory/core";
 
@@ -278,9 +278,9 @@ const out = deserialize(payload);`,
     id: "csharp",
     label: "C#",
     installLanguage: "bash",
-    install: `dotnet add package Apache.Fory --version 1.5.0`,
+    install: `dotnet add package Apache.Fory --version 1.6.0`,
     codeLanguage: "csharp",
-    guide: "/docs/guide/csharp/",
+    guide: "/docs/object-serialization/csharp/",
     summary: ".NET support uses source-generated serializers for Fory structs, enums, and unions.",
     code: `using Apache.Fory;
 
@@ -301,9 +301,9 @@ Person out = fory.Deserialize<Person>(payload);`,
     id: "swift",
     label: "Swift",
     installLanguage: "swift",
-    install: `.package(url: "https://github.com/apache/fory.git", exact: "1.5.0")`,
+    install: `.package(url: "https://github.com/apache/fory.git", exact: "1.6.0")`,
     codeLanguage: "swift",
-    guide: "/docs/guide/swift/",
+    guide: "/docs/object-serialization/swift/",
     summary: "Swift uses @ForyStruct, @ForyEnum, and @ForyUnion macros for xlang-compatible models.",
     code: `import Fory
 
@@ -324,12 +324,12 @@ let out: Person = try fory.deserialize(payload)`,
     label: "Dart",
     installLanguage: "yaml",
     install: `dependencies:
-  fory: ^1.5.0
+  fory: ^1.6.0
 
 dev_dependencies:
   build_runner: ^2.4.13`,
     codeLanguage: "dart",
-    guide: "/docs/guide/dart/",
+    guide: "/docs/object-serialization/dart/",
     summary: "Dart uses generated serializers across Dart VM, Flutter, AOT, and web targets.",
     code: `import 'package:fory/fory.dart';
 
@@ -359,9 +359,9 @@ final out = fory.deserialize<Person>(payload);`,
     id: "scala",
     label: "Scala",
     installLanguage: "sbt",
-    install: `libraryDependencies += "org.apache.fory" %% "fory-scala" % "1.5.0"`,
+    install: `libraryDependencies += "org.apache.fory" %% "fory-scala" % "1.6.0"`,
     codeLanguage: "scala",
-    guide: "/docs/guide/scala/",
+    guide: "/docs/object-serialization/scala/",
     summary: "Scala builds on Fory Java with optimized serializers for case classes, collections, tuples, and Option.",
     code: `import org.apache.fory.scala.ForyScala
 
@@ -379,10 +379,10 @@ val out = fory.deserialize(payload).asInstanceOf[Person]`,
     id: "kotlin",
     label: "Kotlin",
     installLanguage: "kotlin",
-    install: `implementation("org.apache.fory:fory-kotlin:1.5.0")
-ksp("org.apache.fory:fory-kotlin-ksp:1.5.0")`,
+    install: `implementation("org.apache.fory:fory-kotlin:1.6.0")
+ksp("org.apache.fory:fory-kotlin-ksp:1.6.0")`,
     codeLanguage: "kotlin",
-    guide: "/docs/guide/kotlin/",
+    guide: "/docs/object-serialization/kotlin/",
     summary: "Kotlin adds data-class support, Android guidance, and KSP static serializers for xlang/schema mode.",
     code: `import org.apache.fory.kotlin.ForyKotlin
 
@@ -407,7 +407,7 @@ const capabilities = [
     description:
       "Serialize in one supported runtime and deserialize in another with the xlang wire format.",
     zhDescription: "通过 xlang 线格式,在一个受支持运行时序列化,在另一个运行时反序列化。",
-    link: "/docs/guide/xlang/",
+    link: "/docs/object-serialization/xlang/",
   },
   {
     title: "Domain objects first",
@@ -416,7 +416,7 @@ const capabilities = [
     description:
       "Work with Java classes, Python dataclasses, Go structs, Rust/C++ structs, and generated or annotated models.",
     zhDescription: "直接使用 Java 类、Python dataclass、Go struct、Rust/C++ struct,以及生成或注解模型。",
-    link: "/docs/start/usage",
+    link: "/docs/start/",
   },
   {
     title: "Reference-aware Schema IDL",
@@ -434,7 +434,7 @@ const capabilities = [
     description:
       "Read fields, arrays, and nested values without deserializing the whole object; integrate with Arrow where supported.",
     zhDescription: "无需反序列化完整对象即可读取字段、数组和嵌套值,并在支持语言中对接 Arrow。",
-    link: "/docs/guide/xlang/row_format",
+    link: "/docs/row-format/",
   },
   {
     title: "Optimized runtimes",
@@ -449,7 +449,7 @@ const capabilities = [
         {" JIT serializer、Rust/C++/Swift macro、C# source generator、Kotlin KSP 和 Dart build_runner 输出。"}
       </>
     ),
-    link: "/docs/guide/java/",
+    link: "/docs/object-serialization/java/",
   },
   {
     title: "Broad platform support",
@@ -464,7 +464,7 @@ const capabilities = [
         {"、C#、Swift、Dart、Scala、Kotlin 和 Android。"}
       </>
     ),
-    link: "/docs/start/usage",
+    link: "/docs/start/",
   },
 ];
 
@@ -476,7 +476,7 @@ const heroSurfaces = [
     zhTitle: "原生对象",
     text: "Serialize existing domain objects directly in the target language.",
     zhText: "在目标语言内直接序列化已有领域对象,无需额外手动转换代码。",
-    link: "/docs/start/usage",
+    link: "/docs/start/",
   },
   {
     label: "XLANG",
@@ -485,7 +485,7 @@ const heroSurfaces = [
     zhTitle: "跨语言编码",
     text: "Unified cross-language type system and binary encoding.",
     zhText: "统一的跨语言类型系统与二进制编码。",
-    link: "/docs/guide/xlang/",
+    link: "/docs/object-serialization/xlang/",
   },
   {
     label: "IDL",
@@ -503,7 +503,7 @@ const heroSurfaces = [
     zhTitle: "高性能",
     text: "Highly optimized JIT and statically generated serializers.",
     zhText: "高度优化的 JIT serializer 与静态生成 serializer。",
-    link: "/docs/introduction/benchmark",
+    link: "/docs/benchmarks/",
   },
 ];
 
@@ -560,12 +560,12 @@ const schemaLinks = [
   {
     label: "Compiler Guide",
     zhLabel: "编译器指南",
-    link: "/docs/compiler/compiler_guide",
+    link: "/docs/compiler/getting-started",
   },
   {
     label: "Generated Code",
     zhLabel: "生成代码",
-    link: "/docs/compiler/generated_code",
+    link: "/docs/compiler/generated-code/",
   },
 ];
 
@@ -616,7 +616,7 @@ const adoptionPaths = [
     zhCta: "使用指南",
     action: "Usage guide",
     zhAction: "使用指南",
-    link: "/docs/start/usage",
+    link: "/docs/start/",
   },
   {
     label: "02",
@@ -640,7 +640,7 @@ const adoptionPaths = [
     zhCta: "Benchmark",
     action: "Benchmark charts",
     zhAction: "Benchmark 图表",
-    link: "/docs/introduction/benchmark",
+    link: "/docs/benchmarks/",
   },
 ];
 
@@ -668,10 +668,10 @@ function HomepageLanding(): JSX.Element {
           <h1>{copy.heroTitle}</h1>
           <p className={styles.heroSubtitle}>{copy.heroSubtitle}</p>
           <div className={styles.heroActions}>
-            <Link className={styles.primaryButton} to="/docs/start/install">
+            <Link className={styles.primaryButton} to="/docs/start/">
               {copy.heroPrimary}
             </Link>
-            <Link className={styles.secondaryButton} to="/docs/introduction/overview">
+            <Link className={styles.secondaryButton} to="/docs/introduction/">
               {copy.heroSecondary}
             </Link>
             <Link className={styles.ghostButton} to="https://github.com/apache/fory">
@@ -798,7 +798,7 @@ function HomepageLanding(): JSX.Element {
           <span>{copy.performanceEyebrow}</span>
           <h2>{copy.performanceTitle}</h2>
           <p>{copy.performanceSubtitle}</p>
-          <Link className={styles.secondaryButton} to="/docs/introduction/benchmark">
+          <Link className={styles.secondaryButton} to="/docs/benchmarks/">
             {copy.benchmarkCta}
           </Link>
         </div>
diff --git a/src/pages/download/index.md b/src/pages/download/index.md
index f6391a22ad..27446fcd2e 100644
--- a/src/pages/download/index.md
+++ b/src/pages/download/index.md
@@ -5,15 +5,15 @@ title: Apache Fory™ Download
 
 The official Apache Fory™ releases are provided as source artifacts.
 
-For binary install, please see Apache Fory™ [install](/docs/start/install/) document.
+For binary install, please see the Apache Fory™ [getting started](/docs/start/) documentation.
 
 ## The latest release
 
-The latest source release is 1.5.0:
+The latest source release is 1.6.0:
 
 | Version | Date       | Source                                                                                                                                                                                                                                                                              | Release Notes                                                        |
 | ------- | ---------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------- |
-| 1.5.0   | 2026-07-31 | [source](https://www.apache.org/dyn/closer.lua/fory/1.5.0/apache-fory-1.5.0-src.tar.gz?action=download) [asc](https://downloads.apache.org/fory/1.5.0/apache-fory-1.5.0-src.tar.gz.asc) [sha512](https://downloads.apache.org/fory/1.5.0/apache-fory-1.5.0-src.tar.gz.sha512) | [release notes](https://github.com/apache/fory/releases/tag/v1.5.0) |
+| 1.6.0   | 2026-08-07 | [source](https://www.apache.org/dyn/closer.lua/fory/1.6.0/apache-fory-1.6.0-src.tar.gz?action=download) [asc](https://downloads.apache.org/fory/1.6.0/apache-fory-1.6.0-src.tar.gz.asc) [sha512](https://downloads.apache.org/fory/1.6.0/apache-fory-1.6.0-src.tar.gz.sha512) | [release notes](https://github.com/apache/fory/releases/tag/v1.6.0) |
 
 ## All archived releases
 
@@ -31,13 +31,13 @@ These files are named after the files they relate to but have `.sha512/.asc` ext
 To verify the SHA digests, you need the `.tar.gz` file and its associated `.tar.gz.sha512` file. An example command:
 
 ```bash
-sha512sum --check apache-fory-1.5.0-src.tar.gz.sha512
+sha512sum --check apache-fory-1.6.0-src.tar.gz.sha512
 ```
 
 It should output something like:
 
 ```bash
-apache-fory-1.5.0-src.tar.gz: OK
+apache-fory-1.6.0-src.tar.gz: OK
 ```
 
 ### Verifying Signatures
@@ -54,13 +54,13 @@ gpg --import KEYS
 Then you can verify signature:
 
 ```bash
-gpg --verify apache-fory-1.5.0-src.tar.gz.asc apache-fory-1.5.0-src.tar.gz
+gpg --verify apache-fory-1.6.0-src.tar.gz.asc apache-fory-1.6.0-src.tar.gz
 ```
 
 If something like the following appears, it means the signature is correct:
 
 ```bash
-gpg: Signature made Tue Jul 28 13:13:48 2026 CST
+gpg: Signature made Tue Aug  4 14:27:34 2026 CST
 gpg:                using RSA key 1E2CDAE4C08AD7D694D1CB139D7BE8E45E580BA4
 gpg: Good signature from "chaokunyang (CODE SIGNING KEY) <ch...@apache.org>" [unknown]
 ```


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@fory.apache.org
For additional commands, e-mail: commits-help@fory.apache.org


(fory-site) 03/03: Version Apache Fory 1.6.0 documentation

Posted by ch...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

chaokunyang pushed a commit to branch release_1.6.0
in repository https://gitbox.apache.org/repos/asf/fory-site.git

commit 3f545c8d7c2dcaeda8c1ccf9f7da1667dd1445fd
Author: chaokunyang <sh...@gmail.com>
AuthorDate: Fri Aug 7 15:52:36 2026 +0800

    Version Apache Fory 1.6.0 documentation
---
 .gitignore                                         |    2 +
 ...-fory_rust_versatile_serialization_framework.md |    2 +-
 blog/2026-07-20-fory_1_4_0_released.md             |    2 +-
 blog/2026-07-31-fory_1_5_0_released.md             |    4 +-
 docusaurus.config.ts                               |    8 +-
 .../version-1.6.0/.keep                            |    0
 .../2026-07-20-fory_1_4_0_released.md              |    2 +-
 .../2026-07-31-fory_1_5_0_released.md              |    4 +-
 .../object-serialization/rust/external-types.md    |    2 +-
 .../object-serialization/rust/schema-evolution.md  |    2 +-
 .../version-1.6.0.json                             |   42 +
 .../version-1.6.0/benchmarks/_category_.json       |    6 +
 .../version-1.6.0/benchmarks/index.md              |  126 ++
 .../version-1.6.0/benchmarks/json/_category_.json  |    7 +
 .../version-1.6.0/benchmarks/json/java/README.md   |   38 +
 .../benchmarks/json/java/string_throughput.png     |  Bin 0 -> 51989 bytes
 .../benchmarks/json/java/utf8_bytes_throughput.png |  Bin 0 -> 53649 bytes
 .../version-1.6.0/benchmarks/methodology.md        |   40 +
 .../object-serialization/_category_.json           |    7 +
 .../object-serialization/native/_category_.json    |    6 +
 .../object-serialization/native/java-graalvm.md    |  110 ++
 .../object-serialization/native/java/README.md     |  233 +++
 .../java/data/jmh-jdk-11-deserialization.csv       |  153 ++
 .../native/java/data/jmh-jdk-11-serialization.csv  |  153 ++
 .../native/java/data/jmh-jdk-11-zerocopy.csv       |   73 +
 .../java/java_heap_deserialize_compatible.png      |  Bin 0 -> 91290 bytes
 .../java/java_heap_deserialize_consistent.png      |  Bin 0 -> 102335 bytes
 .../native/java/java_heap_serialize_compatible.png |  Bin 0 -> 100843 bytes
 .../native/java/java_heap_serialize_consistent.png |  Bin 0 -> 100648 bytes
 .../java/java_offheap_deserialize_compatible.png   |  Bin 0 -> 96677 bytes
 .../java/java_offheap_deserialize_consistent.png   |  Bin 0 -> 101898 bytes
 .../java/java_offheap_serialize_compatible.png     |  Bin 0 -> 109379 bytes
 .../java/java_offheap_serialize_consistent.png     |  Bin 0 -> 110476 bytes
 .../java/java_repo_deserialization_throughput.png  |  Bin 0 -> 105680 bytes
 .../java/java_repo_serialization_throughput.png    |  Bin 0 -> 113741 bytes
 .../native/java/java_zero_copy_deserialize.png     |  Bin 0 -> 90075 bytes
 .../native/java/java_zero_copy_serialize.png       |  Bin 0 -> 86235 bytes
 .../object-serialization/xlang/_category_.json     |    6 +
 .../object-serialization/xlang/cpp/README.md       |   78 +
 .../object-serialization/xlang/cpp/throughput.png  |  Bin 0 -> 102327 bytes
 .../object-serialization/xlang/csharp/README.md    |   89 +
 .../xlang/csharp/throughput.png                    |  Bin 0 -> 108852 bytes
 .../object-serialization/xlang/dart/README.md      |   49 +
 .../object-serialization/xlang/dart/throughput.png |  Bin 0 -> 106606 bytes
 .../object-serialization/xlang/go/README.md        |   58 +
 .../xlang/go/benchmark_results.txt                 |  326 ++++
 .../xlang/go/serialized_sizes.txt                  |   27 +
 .../object-serialization/xlang/go/throughput.png   |  Bin 0 -> 108457 bytes
 .../object-serialization/xlang/java/README.md      |   44 +
 .../object-serialization/xlang/java/throughput.png |  Bin 0 -> 107433 bytes
 .../xlang/javascript/README.md                     |   82 +
 .../xlang/javascript/throughput.png                |  Bin 0 -> 108900 bytes
 .../object-serialization/xlang/python/README.md    |   87 +
 .../xlang/python/throughput.png                    |  Bin 0 -> 109981 bytes
 .../object-serialization/xlang/rust/README.md      |   78 +
 .../object-serialization/xlang/rust/throughput.png |  Bin 0 -> 102562 bytes
 .../object-serialization/xlang/swift/README.md     |   51 +
 .../xlang/swift/throughput.png                     |  Bin 0 -> 106749 bytes
 .../version-1.6.0/community/community.md           |   84 +
 .../community/how_to_join_community.md             |  105 ++
 .../version-1.6.0/community/how_to_release.md      |  607 ++++++
 .../version-1.6.0/community/how_to_verify.md       |  125 ++
 .../version-1.6.0/compiler/_category_.json         |    6 +
 .../version-1.6.0/compiler/build-integration.md    |  230 +++
 .../version-1.6.0/compiler/cli.md                  |  670 +++++++
 .../version-1.6.0/compiler/flatbuffers-idl.md      |  218 +++
 .../compiler/generated-code/_category_.json        |    6 +
 .../version-1.6.0/compiler/generated-code/cpp.md   |  157 ++
 .../compiler/generated-code/csharp.md              |  103 ++
 .../version-1.6.0/compiler/generated-code/dart.md  |  190 ++
 .../version-1.6.0/compiler/generated-code/go.md    |  148 ++
 .../version-1.6.0/compiler/generated-code/index.md |  175 ++
 .../version-1.6.0/compiler/generated-code/java.md  |  149 ++
 .../compiler/generated-code/javascript.md          |   93 +
 .../compiler/generated-code/kotlin.md              |  147 ++
 .../compiler/generated-code/python.md              |  120 ++
 .../version-1.6.0/compiler/generated-code/rust.md  |  150 ++
 .../version-1.6.0/compiler/generated-code/scala.md |  156 ++
 .../version-1.6.0/compiler/generated-code/swift.md |  102 +
 .../version-1.6.0/compiler/getting-started.md      |   46 +
 .../version-1.6.0/compiler/index.md                |  257 +++
 .../version-1.6.0/compiler/protobuf-idl.md         |  348 ++++
 .../version-1.6.0/compiler/schema-idl.md           | 1714 +++++++++++++++++
 .../version-1.6.0/development/_category_.json      |    6 +
 .../version-1.6.0/development/cpp-debugging.md     |   46 +
 .../version-1.6.0/development/index.md             |  141 ++
 .../development/jmp_generate_file.png              |  Bin 0 -> 396831 bytes
 .../development/vscode_debug_fory.jpg              |  Bin 0 -> 1138690 bytes
 .../development/vscode_select_debug_run.png        |  Bin 0 -> 192687 bytes
 .../version-1.6.0/grpc/_category_.json             |    6 +
 .../version-1.6.0/grpc/cpp.md                      |  262 +++
 .../version-1.6.0/grpc/csharp.md                   |  300 +++
 .../version-1.6.0/grpc/dart.md                     |  259 +++
 .../version-1.6.0/grpc/go.md                       |  218 +++
 .../version-1.6.0/grpc/index.md                    |  103 ++
 .../version-1.6.0/grpc/java.md                     |  376 ++++
 .../version-1.6.0/grpc/javascript.md               |  298 +++
 .../version-1.6.0/grpc/kotlin.md                   |  247 +++
 .../version-1.6.0/grpc/python.md                   |  290 +++
 .../version-1.6.0/grpc/rust.md                     |  307 +++
 .../version-1.6.0/grpc/scala.md                    |  342 ++++
 .../version-1.6.0/grpc/troubleshooting.md          |   34 +
 .../version-1.6.0/index.md                         |   57 +
 .../version-1.6.0/introduction/_category_.json     |    6 +
 .../version-1.6.0/introduction/choose-a-format.md  |   63 +
 .../version-1.6.0/introduction/index.md            |  122 ++
 .../version-1.6.0/introduction/support-matrix.md   |   37 +
 .../version-1.6.0/json/_category_.json             |    6 +
 .../version-1.6.0/json/android.md                  |  137 ++
 .../version-1.6.0/json/annotations.md              |  685 +++++++
 .../version-1.6.0/json/custom-codecs.md            |  266 +++
 .../version-1.6.0/json/getting-started.md          |  163 ++
 .../version-1.6.0/json/graalvm.md                  |  137 ++
 .../version-1.6.0/json/index.md                    |   64 +
 .../version-1.6.0/json/object-mapping.md           |  202 ++
 .../version-1.6.0/json/security.md                 |   87 +
 .../version-1.6.0/json/troubleshooting.md          |   41 +
 .../object-serialization/_category_.json           |    6 +
 .../object-serialization/core-concepts.md          |  105 ++
 .../object-serialization/cpp/_category_.json       |    6 +
 .../cpp/basic-serialization.md                     |  625 +++++++
 .../object-serialization/cpp/configuration.md      |  242 +++
 .../object-serialization/cpp/custom-serializers.md |  371 ++++
 .../object-serialization/cpp/index.md              |  272 +++
 .../object-serialization/cpp/native.md             |  194 ++
 .../object-serialization/cpp/polymorphism.md       |  482 +++++
 .../object-serialization/cpp/schema-evolution.md   |  414 +++++
 .../object-serialization/cpp/schema-metadata.md    |  204 ++
 .../object-serialization/cpp/security.md           |   51 +
 .../object-serialization/cpp/supported-types.md    |  292 +++
 .../object-serialization/cpp/type-registration.md  |  254 +++
 .../object-serialization/csharp/_category_.json    |    6 +
 .../csharp/basic-serialization.md                  |  268 +++
 .../object-serialization/csharp/configuration.md   |  195 ++
 .../csharp/custom-serializers.md                   |   92 +
 .../object-serialization/csharp/external-types.md  |  305 +++
 .../object-serialization/csharp/index.md           |  108 ++
 .../object-serialization/csharp/references.md      |   77 +
 .../csharp/schema-evolution.md                     |  100 +
 .../object-serialization/csharp/schema-metadata.md |  140 ++
 .../object-serialization/csharp/security.md        |   51 +
 .../object-serialization/csharp/supported-types.md |  110 ++
 .../object-serialization/csharp/thread-safety.md   |   72 +
 .../object-serialization/csharp/troubleshooting.md |  130 ++
 .../csharp/type-registration.md                    |   93 +
 .../object-serialization/dart/_category_.json      |    6 +
 .../dart/basic-serialization.md                    |  383 ++++
 .../object-serialization/dart/code-generation.md   |  126 ++
 .../object-serialization/dart/configuration.md     |  158 ++
 .../dart/custom-serializers.md                     |  141 ++
 .../object-serialization/dart/external-types.md    |  277 +++
 .../object-serialization/dart/index.md             |  155 ++
 .../object-serialization/dart/inheritance.md       |  162 ++
 .../object-serialization/dart/schema-evolution.md  |  108 ++
 .../object-serialization/dart/schema-metadata.md   |  150 ++
 .../object-serialization/dart/security.md          |   51 +
 .../object-serialization/dart/supported-types.md   |  143 ++
 .../object-serialization/dart/troubleshooting.md   |  208 +++
 .../object-serialization/dart/type-registration.md |  115 ++
 .../dart/web-platform-support.md                   |  202 ++
 .../object-serialization/go/_category_.json        |    6 +
 .../object-serialization/go/basic-serialization.md |  828 +++++++++
 .../object-serialization/go/configuration.md       |  415 +++++
 .../object-serialization/go/custom-serializers.md  |  285 +++
 .../version-1.6.0/object-serialization/go/index.md |  158 ++
 .../object-serialization/go/native.md              |  199 ++
 .../object-serialization/go/references.md          |  356 ++++
 .../object-serialization/go/schema-evolution.md    |  374 ++++
 .../object-serialization/go/schema-metadata.md     |  391 ++++
 .../object-serialization/go/security.md            |   49 +
 .../object-serialization/go/supported-types.md     |  371 ++++
 .../object-serialization/go/thread-safety.md       |  347 ++++
 .../object-serialization/go/troubleshooting.md     |  443 +++++
 .../object-serialization/go/type-registration.md   |  264 +++
 .../version-1.6.0/object-serialization/index.md    |   67 +
 .../object-serialization/java/_category_.json      |    6 +
 .../object-serialization/java/advanced-features.md |  159 ++
 .../object-serialization/java/android.md           |  186 ++
 .../java/basic-serialization.md                    |  459 +++++
 .../object-serialization/java/compression.md       |  132 ++
 .../object-serialization/java/configuration.md     |   93 +
 .../java/custom-serializers.md                     |  222 +++
 .../object-serialization/java/graalvm.md           |  193 ++
 .../object-serialization/java/index.md             |  243 +++
 .../object-serialization/java/jdk-serialization.md |   89 +
 .../object-serialization/java/native.md            |  291 +++
 .../object-serialization/java/object-copy.md       |  350 ++++
 .../object-serialization/java/schema-evolution.md  |  250 +++
 .../object-serialization/java/schema-metadata.md   |  700 +++++++
 .../object-serialization/java/security.md          |   68 +
 .../java/static-generated-serializers.md           |  144 ++
 .../object-serialization/java/troubleshooting.md   |  243 +++
 .../object-serialization/java/type-registration.md |  106 ++
 .../object-serialization/java/virtual-threads.md   |  114 ++
 .../javascript/_category_.json                     |    6 +
 .../javascript/basic-serialization.md              |  428 +++++
 .../javascript/configuration.md                    |  130 ++
 .../object-serialization/javascript/index.md       |  169 ++
 .../object-serialization/javascript/references.md  |  111 ++
 .../javascript/schema-evolution.md                 |  102 +
 .../javascript/schema-metadata.md                  |  158 ++
 .../object-serialization/javascript/security.md    |   52 +
 .../javascript/supported-types.md                  |  177 ++
 .../javascript/troubleshooting.md                  |   89 +
 .../javascript/type-registration.md                |  162 ++
 .../object-serialization/kotlin/_category_.json    |    6 +
 .../kotlin/basic-serialization.md                  |   64 +
 .../object-serialization/kotlin/configuration.md   |  147 ++
 .../object-serialization/kotlin/default-values.md  |  132 ++
 .../object-serialization/kotlin/index.md           |  138 ++
 .../object-serialization/kotlin/native.md          |  194 ++
 .../object-serialization/kotlin/schema-metadata.md |  120 ++
 .../object-serialization/kotlin/security.md        |   67 +
 .../kotlin/static-generated-serializers.md         |  281 +++
 .../version-1.6.0/object-serialization/native.md   |  156 ++
 .../object-serialization/python/_category_.json    |    6 +
 .../python/basic-serialization.md                  |  401 ++++
 .../object-serialization/python/configuration.md   |  182 ++
 .../python/custom-serializers.md                   |  138 ++
 .../python/functions-classes-methods.md            |  140 ++
 .../object-serialization/python/index.md           |  168 ++
 .../object-serialization/python/native.md          |  173 ++
 .../python/numpy-integration.md                    |  103 ++
 .../object-serialization/python/out-of-band.md     |  179 ++
 .../python/schema-evolution.md                     |  123 ++
 .../object-serialization/python/schema-metadata.md |  518 ++++++
 .../object-serialization/python/security.md        |  144 ++
 .../python/serialization-hooks.md                  |   56 +
 .../object-serialization/python/troubleshooting.md |  194 ++
 .../python/type-registration.md                    |   83 +
 .../object-serialization/rust/_category_.json      |    6 +
 .../rust/basic-serialization.md                    |  499 +++++
 .../object-serialization/rust/configuration.md     |  190 ++
 .../rust/custom-serializers.md                     |  183 ++
 .../object-serialization/rust/external-types.md    |    2 +-
 .../object-serialization/rust/index.md             |  166 ++
 .../object-serialization/rust/native.md            |  242 +++
 .../object-serialization/rust/polymorphism.md      |  217 +++
 .../object-serialization/rust/references.md        |  213 +++
 .../object-serialization/rust/schema-evolution.md  |    2 +-
 .../object-serialization/rust/schema-metadata.md   |  491 +++++
 .../object-serialization/rust/security.md          |   51 +
 .../object-serialization/rust/troubleshooting.md   |  210 +++
 .../object-serialization/rust/type-registration.md |  133 ++
 .../object-serialization/scala/_category_.json     |    6 +
 .../scala/basic-serialization.md                   |  202 ++
 .../object-serialization/scala/configuration.md    |  188 ++
 .../object-serialization/scala/default-values.md   |  168 ++
 .../object-serialization/scala/index.md            |  124 ++
 .../object-serialization/scala/native.md           |  181 ++
 .../object-serialization/scala/schema-metadata.md  |  119 ++
 .../object-serialization/scala/security.md         |   67 +
 .../object-serialization/swift/_category_.json     |    6 +
 .../swift/basic-serialization.md                   |  335 ++++
 .../object-serialization/swift/configuration.md    |  155 ++
 .../swift/custom-serializers.md                    |  289 +++
 .../object-serialization/swift/external-types.md   |  278 +++
 .../object-serialization/swift/index.md            |   86 +
 .../object-serialization/swift/polymorphism.md     |  203 ++
 .../object-serialization/swift/references.md       |  111 ++
 .../object-serialization/swift/schema-evolution.md |  116 ++
 .../object-serialization/swift/schema-metadata.md  |  224 +++
 .../object-serialization/swift/security.md         |   52 +
 .../object-serialization/swift/troubleshooting.md  |  112 ++
 .../swift/type-registration.md                     |   97 +
 .../version-1.6.0/object-serialization/xlang.md    |  351 ++++
 .../version-1.6.0/row-format/_category_.json       |    6 +
 .../version-1.6.0/row-format/cpp.md                |  509 +++++
 .../version-1.6.0/row-format/index.md              |   95 +
 .../version-1.6.0/row-format/java.md               |  274 +++
 .../version-1.6.0/row-format/python.md             |  196 ++
 .../version-1.6.0/row-format/rust.md               |  189 ++
 .../version-1.6.0/row-format/troubleshooting.md    |   34 +
 .../specification/java_serialization_spec.md       |  676 +++++++
 .../version-1.6.0/specification/row_format_spec.md |  544 ++++++
 .../specification/xlang_implementation_guide.md    |  817 ++++++++
 .../specification/xlang_serialization_spec.md      | 1631 ++++++++++++++++
 .../specification/xlang_type_mapping.md            |  228 +++
 .../version-1.6.0/start/_category_.json            |    6 +
 .../version-1.6.0/start/cpp.md                     |   99 +
 .../version-1.6.0/start/csharp.md                  |   75 +
 .../version-1.6.0/start/dart.md                    |   85 +
 .../version-1.6.0/start/go.md                      |   86 +
 .../version-1.6.0/start/index.md                   |   62 +
 .../version-1.6.0/start/java.md                    |  118 ++
 .../version-1.6.0/start/javascript.md              |   74 +
 .../version-1.6.0/start/kotlin.md                  |   75 +
 .../version-1.6.0/start/python.md                  |   67 +
 .../version-1.6.0/start/rust.md                    |   70 +
 .../version-1.6.0/start/scala.md                   |   72 +
 .../version-1.6.0/start/swift.md                   |   80 +
 src/pages/home/components/HomePageLanguageCard.tsx |   22 +-
 src/pages/home/components/HomepageHeader.tsx       |    2 +-
 src/plugin/redirect.js                             |   32 +-
 .../version-1.6.0/benchmarks/_category_.json       |    6 +
 versioned_docs/version-1.6.0/benchmarks/index.md   |  133 ++
 .../version-1.6.0/benchmarks/json/_category_.json  |    7 +
 .../version-1.6.0/benchmarks/json/java/README.md   |   38 +
 .../benchmarks/json/java/string_throughput.png     |  Bin 0 -> 51989 bytes
 .../benchmarks/json/java/utf8_bytes_throughput.png |  Bin 0 -> 53649 bytes
 .../version-1.6.0/benchmarks/methodology.md        |   42 +
 .../object-serialization/_category_.json           |    7 +
 .../object-serialization/native/_category_.json    |    6 +
 .../object-serialization/native/java-graalvm.md    |  110 ++
 .../object-serialization/native/java/README.md     |  241 +++
 .../java/data/jmh-jdk-11-deserialization.csv       |  153 ++
 .../native/java/data/jmh-jdk-11-serialization.csv  |  153 ++
 .../native/java/data/jmh-jdk-11-zerocopy.csv       |   73 +
 .../java/java_heap_deserialize_compatible.png      |  Bin 0 -> 91290 bytes
 .../java/java_heap_deserialize_consistent.png      |  Bin 0 -> 102335 bytes
 .../native/java/java_heap_serialize_compatible.png |  Bin 0 -> 100843 bytes
 .../native/java/java_heap_serialize_consistent.png |  Bin 0 -> 100648 bytes
 .../java/java_offheap_deserialize_compatible.png   |  Bin 0 -> 96677 bytes
 .../java/java_offheap_deserialize_consistent.png   |  Bin 0 -> 101898 bytes
 .../java/java_offheap_serialize_compatible.png     |  Bin 0 -> 109379 bytes
 .../java/java_offheap_serialize_consistent.png     |  Bin 0 -> 110476 bytes
 .../java/java_repo_deserialization_throughput.png  |  Bin 0 -> 105680 bytes
 .../java/java_repo_serialization_throughput.png    |  Bin 0 -> 113741 bytes
 .../native/java/java_zero_copy_deserialize.png     |  Bin 0 -> 90075 bytes
 .../native/java/java_zero_copy_serialize.png       |  Bin 0 -> 86235 bytes
 .../object-serialization/xlang/_category_.json     |    6 +
 .../object-serialization/xlang/cpp/README.md       |   78 +
 .../object-serialization/xlang/cpp/throughput.png  |  Bin 0 -> 102327 bytes
 .../object-serialization/xlang/csharp/README.md    |   89 +
 .../xlang/csharp/throughput.png                    |  Bin 0 -> 108852 bytes
 .../object-serialization/xlang/dart/README.md      |   49 +
 .../object-serialization/xlang/dart/throughput.png |  Bin 0 -> 106606 bytes
 .../object-serialization/xlang/go/README.md        |   58 +
 .../xlang/go/benchmark_results.txt                 |  326 ++++
 .../xlang/go/serialized_sizes.txt                  |   27 +
 .../object-serialization/xlang/go/throughput.png   |  Bin 0 -> 108457 bytes
 .../object-serialization/xlang/java/README.md      |   52 +
 .../object-serialization/xlang/java/throughput.png |  Bin 0 -> 107433 bytes
 .../xlang/javascript/README.md                     |   82 +
 .../xlang/javascript/throughput.png                |  Bin 0 -> 108900 bytes
 .../object-serialization/xlang/python/README.md    |   87 +
 .../xlang/python/throughput.png                    |  Bin 0 -> 109981 bytes
 .../object-serialization/xlang/rust/README.md      |   78 +
 .../object-serialization/xlang/rust/throughput.png |  Bin 0 -> 102562 bytes
 .../object-serialization/xlang/swift/README.md     |   50 +
 .../xlang/swift/throughput.png                     |  Bin 0 -> 106749 bytes
 .../version-1.6.0/community/community.md           |   90 +
 .../community/how_to_join_community.md             |  105 ++
 .../version-1.6.0/community/how_to_release.md      |  636 +++++++
 .../version-1.6.0/community/how_to_verify.md       |  125 ++
 .../version-1.6.0/compiler/_category_.json         |    6 +
 .../version-1.6.0/compiler/build-integration.md    |  230 +++
 versioned_docs/version-1.6.0/compiler/cli.md       |  689 +++++++
 .../version-1.6.0/compiler/flatbuffers-idl.md      |  232 +++
 .../compiler/generated-code/_category_.json        |    6 +
 .../version-1.6.0/compiler/generated-code/cpp.md   |  158 ++
 .../compiler/generated-code/csharp.md              |  109 ++
 .../version-1.6.0/compiler/generated-code/dart.md  |  194 ++
 .../version-1.6.0/compiler/generated-code/go.md    |  148 ++
 .../version-1.6.0/compiler/generated-code/index.md |  176 ++
 .../version-1.6.0/compiler/generated-code/java.md  |  150 ++
 .../compiler/generated-code/javascript.md          |   94 +
 .../compiler/generated-code/kotlin.md              |  161 ++
 .../compiler/generated-code/python.md              |  120 ++
 .../version-1.6.0/compiler/generated-code/rust.md  |  154 ++
 .../version-1.6.0/compiler/generated-code/scala.md |  164 ++
 .../version-1.6.0/compiler/generated-code/swift.md |  108 ++
 .../version-1.6.0/compiler/getting-started.md      |   46 +
 versioned_docs/version-1.6.0/compiler/index.md     |  260 +++
 .../version-1.6.0/compiler/protobuf-idl.md         |  366 ++++
 .../version-1.6.0/compiler/schema-idl.md           | 1746 ++++++++++++++++++
 .../version-1.6.0/development/_category_.json      |    6 +
 .../version-1.6.0/development/cpp-debugging.md     |   47 +
 versioned_docs/version-1.6.0/development/index.md  |  142 ++
 .../development/jmp_generate_file.png              |  Bin 0 -> 396831 bytes
 .../development/vscode_debug_fory.jpg              |  Bin 0 -> 1138690 bytes
 .../development/vscode_select_debug_run.png        |  Bin 0 -> 192687 bytes
 versioned_docs/version-1.6.0/grpc/_category_.json  |    6 +
 versioned_docs/version-1.6.0/grpc/cpp.md           |  277 +++
 versioned_docs/version-1.6.0/grpc/csharp.md        |  311 ++++
 versioned_docs/version-1.6.0/grpc/dart.md          |  292 +++
 versioned_docs/version-1.6.0/grpc/go.md            |  241 +++
 versioned_docs/version-1.6.0/grpc/index.md         |  114 ++
 versioned_docs/version-1.6.0/grpc/java.md          |  398 ++++
 versioned_docs/version-1.6.0/grpc/javascript.md    |  323 ++++
 versioned_docs/version-1.6.0/grpc/kotlin.md        |  278 +++
 versioned_docs/version-1.6.0/grpc/python.md        |  320 ++++
 versioned_docs/version-1.6.0/grpc/rust.md          |  338 ++++
 versioned_docs/version-1.6.0/grpc/scala.md         |  397 ++++
 .../version-1.6.0/grpc/troubleshooting.md          |   37 +
 versioned_docs/version-1.6.0/images/fory-logo.png  |  Bin 0 -> 19427 bytes
 versioned_docs/version-1.6.0/images/idea-jdk11.png |  Bin 0 -> 295126 bytes
 versioned_docs/version-1.6.0/index.md              |   59 +
 .../version-1.6.0/introduction/_category_.json     |    6 +
 .../version-1.6.0/introduction/choose-a-format.md  |   74 +
 versioned_docs/version-1.6.0/introduction/index.md |  125 ++
 .../version-1.6.0/introduction/support-matrix.md   |   37 +
 versioned_docs/version-1.6.0/json/_category_.json  |    6 +
 versioned_docs/version-1.6.0/json/android.md       |  184 ++
 versioned_docs/version-1.6.0/json/annotations.md   |  768 ++++++++
 versioned_docs/version-1.6.0/json/custom-codecs.md |  281 +++
 .../version-1.6.0/json/getting-started.md          |  171 ++
 versioned_docs/version-1.6.0/json/graalvm.md       |  194 ++
 versioned_docs/version-1.6.0/json/index.md         |   67 +
 .../version-1.6.0/json/object-mapping.md           |  222 +++
 versioned_docs/version-1.6.0/json/security.md      |  115 ++
 .../version-1.6.0/json/troubleshooting.md          |   41 +
 .../object-serialization/_category_.json           |    6 +
 .../object-serialization/core-concepts.md          |  124 ++
 .../object-serialization/cpp/_category_.json       |    6 +
 .../cpp/basic-serialization.md                     |  641 +++++++
 .../object-serialization/cpp/configuration.md      |  261 +++
 .../object-serialization/cpp/custom-serializers.md |  371 ++++
 .../object-serialization/cpp/index.md              |  278 +++
 .../object-serialization/cpp/native.md             |  214 +++
 .../object-serialization/cpp/polymorphism.md       |  490 +++++
 .../object-serialization/cpp/schema-evolution.md   |  424 +++++
 .../object-serialization/cpp/schema-metadata.md    |  220 +++
 .../object-serialization/cpp/security.md           |   57 +
 .../object-serialization/cpp/supported-types.md    |  300 +++
 .../object-serialization/cpp/type-registration.md  |  254 +++
 .../object-serialization/csharp/_category_.json    |    6 +
 .../csharp/basic-serialization.md                  |  285 +++
 .../object-serialization/csharp/configuration.md   |  209 +++
 .../csharp/custom-serializers.md                   |   98 +
 .../object-serialization/csharp/external-types.md  |  364 ++++
 .../object-serialization/csharp/index.md           |  111 ++
 .../object-serialization/csharp/references.md      |   81 +
 .../csharp/schema-evolution.md                     |  120 ++
 .../object-serialization/csharp/schema-metadata.md |  158 ++
 .../object-serialization/csharp/security.md        |   56 +
 .../object-serialization/csharp/supported-types.md |  117 ++
 .../object-serialization/csharp/thread-safety.md   |   72 +
 .../object-serialization/csharp/troubleshooting.md |  149 ++
 .../csharp/type-registration.md                    |  100 +
 .../object-serialization/dart/_category_.json      |    6 +
 .../dart/basic-serialization.md                    |  391 ++++
 .../object-serialization/dart/code-generation.md   |  138 ++
 .../object-serialization/dart/configuration.md     |  171 ++
 .../dart/custom-serializers.md                     |  144 ++
 .../object-serialization/dart/external-types.md    |  323 ++++
 .../object-serialization/dart/index.md             |  164 ++
 .../object-serialization/dart/inheritance.md       |  211 +++
 .../object-serialization/dart/schema-evolution.md  |  135 ++
 .../object-serialization/dart/schema-metadata.md   |  172 ++
 .../object-serialization/dart/security.md          |   56 +
 .../object-serialization/dart/supported-types.md   |  177 ++
 .../object-serialization/dart/troubleshooting.md   |  224 +++
 .../object-serialization/dart/type-registration.md |  130 ++
 .../dart/web-platform-support.md                   |  239 +++
 .../object-serialization/go/_category_.json        |    6 +
 .../object-serialization/go/basic-serialization.md |  835 +++++++++
 .../object-serialization/go/configuration.md       |  427 +++++
 .../object-serialization/go/custom-serializers.md  |  285 +++
 .../version-1.6.0/object-serialization/go/index.md |  162 ++
 .../object-serialization/go/native.md              |  217 +++
 .../object-serialization/go/references.md          |  356 ++++
 .../object-serialization/go/schema-evolution.md    |  393 ++++
 .../object-serialization/go/schema-metadata.md     |  393 ++++
 .../object-serialization/go/security.md            |   53 +
 .../object-serialization/go/supported-types.md     |  374 ++++
 .../object-serialization/go/thread-safety.md       |  347 ++++
 .../object-serialization/go/troubleshooting.md     |  443 +++++
 .../object-serialization/go/type-registration.md   |  264 +++
 .../version-1.6.0/object-serialization/index.md    |   70 +
 .../object-serialization/java/_category_.json      |    6 +
 .../object-serialization/java/advanced-features.md |  160 ++
 .../object-serialization/java/android.md           |  238 +++
 .../java/basic-serialization.md                    |  486 +++++
 .../object-serialization/java/compression.md       |  132 ++
 .../object-serialization/java/configuration.md     |   97 +
 .../java/custom-serializers.md                     |  227 +++
 .../object-serialization/java/graalvm.md           |  203 ++
 .../object-serialization/java/index.md             |  268 +++
 .../object-serialization/java/jdk-serialization.md |   94 +
 .../object-serialization/java/native.md            |  337 ++++
 .../object-serialization/java/object-copy.md       |  363 ++++
 .../object-serialization/java/schema-evolution.md  |  270 +++
 .../object-serialization/java/schema-metadata.md   |  716 +++++++
 .../object-serialization/java/security.md          |   83 +
 .../java/static-generated-serializers.md           |  165 ++
 .../object-serialization/java/troubleshooting.md   |  255 +++
 .../object-serialization/java/type-registration.md |  127 ++
 .../object-serialization/java/virtual-threads.md   |  127 ++
 .../javascript/_category_.json                     |    6 +
 .../javascript/basic-serialization.md              |  434 +++++
 .../javascript/configuration.md                    |  150 ++
 .../object-serialization/javascript/index.md       |  178 ++
 .../object-serialization/javascript/references.md  |  111 ++
 .../javascript/schema-evolution.md                 |  116 ++
 .../javascript/schema-metadata.md                  |  165 ++
 .../object-serialization/javascript/security.md    |   60 +
 .../javascript/supported-types.md                  |  177 ++
 .../javascript/troubleshooting.md                  |   90 +
 .../javascript/type-registration.md                |  164 ++
 .../object-serialization/kotlin/_category_.json    |    6 +
 .../kotlin/basic-serialization.md                  |   65 +
 .../object-serialization/kotlin/configuration.md   |  151 ++
 .../object-serialization/kotlin/default-values.md  |  133 ++
 .../object-serialization/kotlin/index.md           |  141 ++
 .../object-serialization/kotlin/native.md          |  196 ++
 .../object-serialization/kotlin/schema-metadata.md |  124 ++
 .../object-serialization/kotlin/security.md        |   74 +
 .../kotlin/static-generated-serializers.md         |  319 ++++
 .../version-1.6.0/object-serialization/native.md   |  176 ++
 .../object-serialization/python/_category_.json    |    6 +
 .../python/basic-serialization.md                  |  430 +++++
 .../object-serialization/python/configuration.md   |  189 ++
 .../python/custom-serializers.md                   |  138 ++
 .../python/functions-classes-methods.md            |  144 ++
 .../object-serialization/python/index.md           |  171 ++
 .../object-serialization/python/native.md          |  192 ++
 .../python/numpy-integration.md                    |  103 ++
 .../object-serialization/python/out-of-band.md     |  179 ++
 .../python/schema-evolution.md                     |  141 ++
 .../object-serialization/python/schema-metadata.md |  529 ++++++
 .../object-serialization/python/security.md        |  163 ++
 .../python/serialization-hooks.md                  |   63 +
 .../object-serialization/python/troubleshooting.md |  195 ++
 .../python/type-registration.md                    |   92 +
 .../object-serialization/rust/_category_.json      |    6 +
 .../rust/basic-serialization.md                    |  516 ++++++
 .../object-serialization/rust/configuration.md     |  210 +++
 .../rust/custom-serializers.md                     |  204 ++
 .../object-serialization/rust/external-types.md    |  558 ++++++
 .../object-serialization/rust/index.md             |  172 ++
 .../object-serialization/rust/native.md            |  272 +++
 .../object-serialization/rust/polymorphism.md      |  239 +++
 .../object-serialization/rust/references.md        |  213 +++
 .../object-serialization/rust/schema-evolution.md  |  282 +++
 .../object-serialization/rust/schema-metadata.md   |  503 +++++
 .../object-serialization/rust/security.md          |   58 +
 .../object-serialization/rust/troubleshooting.md   |  219 +++
 .../object-serialization/rust/type-registration.md |  141 ++
 .../object-serialization/scala/_category_.json     |    6 +
 .../scala/basic-serialization.md                   |  221 +++
 .../object-serialization/scala/configuration.md    |  195 ++
 .../object-serialization/scala/default-values.md   |  169 ++
 .../object-serialization/scala/index.md            |  127 ++
 .../object-serialization/scala/native.md           |  183 ++
 .../object-serialization/scala/schema-metadata.md  |  124 ++
 .../object-serialization/scala/security.md         |   74 +
 .../object-serialization/swift/_category_.json     |    6 +
 .../swift/basic-serialization.md                   |  346 ++++
 .../object-serialization/swift/configuration.md    |  160 ++
 .../swift/custom-serializers.md                    |  308 ++++
 .../object-serialization/swift/external-types.md   |  296 +++
 .../object-serialization/swift/index.md            |   87 +
 .../object-serialization/swift/polymorphism.md     |  211 +++
 .../object-serialization/swift/references.md       |  111 ++
 .../object-serialization/swift/schema-evolution.md |  120 ++
 .../object-serialization/swift/schema-metadata.md  |  233 +++
 .../object-serialization/swift/security.md         |   56 +
 .../object-serialization/swift/troubleshooting.md  |  117 ++
 .../swift/type-registration.md                     |  103 ++
 .../version-1.6.0/object-serialization/xlang.md    |  368 ++++
 .../version-1.6.0/row-format/_category_.json       |    6 +
 versioned_docs/version-1.6.0/row-format/cpp.md     |  509 +++++
 versioned_docs/version-1.6.0/row-format/index.md   |   99 +
 versioned_docs/version-1.6.0/row-format/java.md    |  284 +++
 versioned_docs/version-1.6.0/row-format/python.md  |  200 ++
 versioned_docs/version-1.6.0/row-format/rust.md    |  190 ++
 .../version-1.6.0/row-format/troubleshooting.md    |   35 +
 .../specification/java_serialization_spec.md       |  783 ++++++++
 .../version-1.6.0/specification/row_format_spec.md |  545 ++++++
 .../specification/xlang_implementation_guide.md    | 1691 +++++++++++++++++
 .../specification/xlang_serialization_spec.md      | 1948 ++++++++++++++++++++
 .../specification/xlang_type_mapping.md            |  241 +++
 versioned_docs/version-1.6.0/start/_category_.json |    6 +
 versioned_docs/version-1.6.0/start/cpp.md          |  105 ++
 versioned_docs/version-1.6.0/start/csharp.md       |   81 +
 versioned_docs/version-1.6.0/start/dart.md         |   91 +
 versioned_docs/version-1.6.0/start/go.md           |   93 +
 versioned_docs/version-1.6.0/start/index.md        |   71 +
 versioned_docs/version-1.6.0/start/java.md         |  132 ++
 versioned_docs/version-1.6.0/start/javascript.md   |   81 +
 versioned_docs/version-1.6.0/start/kotlin.md       |   80 +
 versioned_docs/version-1.6.0/start/python.md       |   74 +
 versioned_docs/version-1.6.0/start/rust.md         |   76 +
 versioned_docs/version-1.6.0/start/scala.md        |   78 +
 versioned_docs/version-1.6.0/start/swift.md        |   86 +
 versioned_sidebars/version-1.6.0-sidebars.json     |  124 ++
 versions.json                                      |    1 +
 578 files changed, 99452 insertions(+), 34 deletions(-)

diff --git a/.gitignore b/.gitignore
index 27a0f57e7d..0c681c1242 100644
--- a/.gitignore
+++ b/.gitignore
@@ -20,6 +20,8 @@ i18n/zh-CN/docusaurus-plugin-content-docs/*/specification/
 !i18n/zh-CN/docusaurus-plugin-content-docs/version-1.4.0/specification/*.md
 !i18n/zh-CN/docusaurus-plugin-content-docs/version-1.5.0/specification/
 !i18n/zh-CN/docusaurus-plugin-content-docs/version-1.5.0/specification/*.md
+!i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/specification/
+!i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/specification/*.md
 
 # English fallback files generated for capability-first current docs. Existing
 # tracked Chinese translations remain tracked and take precedence.
diff --git a/blog/2025-10-29-fory_rust_versatile_serialization_framework.md b/blog/2025-10-29-fory_rust_versatile_serialization_framework.md
index f325ed4155..d88fe7c067 100644
--- a/blog/2025-10-29-fory_rust_versatile_serialization_framework.md
+++ b/blog/2025-10-29-fory_rust_versatile_serialization_framework.md
@@ -359,7 +359,7 @@ The current Rust benchmark suite measures serialization and deserialization thro
 
 ![Rust serialization benchmark throughput](../docs/benchmarks/object-serialization/xlang/rust/throughput.png)
 
-The chart shows why Fory is built for performance-sensitive systems: its generated serializers, compact binary layout, and specialized collection paths deliver high throughput without giving up the features required by complex Rust applications. See the [complete Rust benchmark report](/docs/benchmarks/rust/) for the environment, workload definitions, payload sizes, and detailed results.
+The chart shows why Fory is built for performance-sensitive systems: its generated serializers, compact binary layout, and specialized collection paths deliver high throughput without giving up the features required by complex Rust applications. See the [complete Rust benchmark report](/docs/benchmarks/object-serialization/xlang/rust/) for the environment, workload definitions, payload sizes, and detailed results.
 
 ## When to Use Apache Fory Rust
 
diff --git a/blog/2026-07-20-fory_1_4_0_released.md b/blog/2026-07-20-fory_1_4_0_released.md
index a5fa4ffc07..b4a74c9327 100644
--- a/blog/2026-07-20-fory_1_4_0_released.md
+++ b/blog/2026-07-20-fory_1_4_0_released.md
@@ -64,7 +64,7 @@ public final class JsonExample {
 }
 ```
 
-See the [Fory JSON documentation](/docs/guide/java/json_support) for the complete type model, annotations and mix-ins, dynamic properties, custom serializers, security controls, and Android or GraalVM setup.
+See the [Fory JSON documentation](/docs/json/) for the complete type model, annotations and mix-ins, dynamic properties, custom serializers, security controls, and Android or GraalVM setup.
 
 ## Features
 
diff --git a/blog/2026-07-31-fory_1_5_0_released.md b/blog/2026-07-31-fory_1_5_0_released.md
index b7ecd1494d..77a0022e3d 100644
--- a/blog/2026-07-31-fory_1_5_0_released.md
+++ b/blog/2026-07-31-fory_1_5_0_released.md
@@ -106,7 +106,7 @@ fory.Register<ThirdParty.User>(100);
 byte[] bytes = fory.Serialize(user);
 ```
 
-For construction requirements, nested containers, dynamic values, and advanced mappings, see the dedicated guides for [Rust](/docs/guide/rust/external_types), [Dart](/docs/guide/dart/external_types), [Swift](/docs/guide/swift/external_types), and [C#](/docs/guide/csharp/external_types).
+For construction requirements, nested containers, dynamic values, and advanced mappings, see the dedicated guides for [Rust](/docs/object-serialization/rust/external-types), [Dart](/docs/object-serialization/dart/external-types), [Swift](/docs/object-serialization/swift/external-types), and [C#](/docs/object-serialization/csharp/external-types).
 
 ## Class Inheritance for C# and Dart
 
@@ -152,7 +152,7 @@ class TextMessage extends MessageBase {
 
 The generated `TextMessage` schema contains `sequence` and `text`, but not the inherited private `_cache`. The option does not omit inherited public fields or private fields declared by the child itself.
 
-See [C# class inheritance](/docs/guide/csharp/basic_serialization#class-inheritance) and [Dart inheritance](/docs/guide/dart/inheritance) for constructor rules, private-field access across packages, mixins, generics, references, and schema compatibility.
+See [C# class inheritance](/docs/object-serialization/csharp/basic-serialization#class-inheritance) and [Dart inheritance](/docs/object-serialization/dart/inheritance) for constructor rules, private-field access across packages, mixins, generics, references, and schema compatibility.
 
 ## Features
 
diff --git a/docusaurus.config.ts b/docusaurus.config.ts
index 79263e79e7..3cc286edfb 100644
--- a/docusaurus.config.ts
+++ b/docusaurus.config.ts
@@ -50,7 +50,7 @@ const config: Config = {
           // Internal security models and the retired shared image tree must not become website pages.
           exclude: ['security/**', 'images/**'],
           sidebarCollapsible: true,
-          lastVersion: '1.5.0',
+          lastVersion: '1.6.0',
           versions: {
             current: {
               label: 'dev',
@@ -244,15 +244,15 @@ const config: Config = {
           items: [
             {
               label: 'Install',
-              to: '/docs/start/install',
+              to: '/docs/start/',
             },
             {
               label: 'Usage',
-              to: '/docs/start/usage',
+              to: '/docs/start/',
             },
             {
               label: 'Benchmark',
-              to: '/docs/introduction/benchmark',
+              to: '/docs/benchmarks/',
             },
           ],
         },
diff --git a/i18n/en-US/docusaurus-plugin-content-docs/version-1.6.0/.keep b/i18n/en-US/docusaurus-plugin-content-docs/version-1.6.0/.keep
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/i18n/zh-CN/docusaurus-plugin-content-blog/2026-07-20-fory_1_4_0_released.md b/i18n/zh-CN/docusaurus-plugin-content-blog/2026-07-20-fory_1_4_0_released.md
index 39a52a3f40..efee957bf5 100644
--- a/i18n/zh-CN/docusaurus-plugin-content-blog/2026-07-20-fory_1_4_0_released.md
+++ b/i18n/zh-CN/docusaurus-plugin-content-blog/2026-07-20-fory_1_4_0_released.md
@@ -64,7 +64,7 @@ public final class JsonExample {
 }
 ```
 
-完整的类型模型、注解与 mix-in、动态属性、自定义序列化器、安全控制,以及 Android 或 GraalVM 的配置方法,请参阅 [Fory JSON 文档](/docs/guide/java/json_support)。
+完整的类型模型、注解与 mix-in、动态属性、自定义序列化器、安全控制,以及 Android 或 GraalVM 的配置方法,请参阅 [Fory JSON 文档](/zh-CN/docs/json/)。
 
 ## 新功能
 
diff --git a/i18n/zh-CN/docusaurus-plugin-content-blog/2026-07-31-fory_1_5_0_released.md b/i18n/zh-CN/docusaurus-plugin-content-blog/2026-07-31-fory_1_5_0_released.md
index acf6ecd46e..2dc92a7bfb 100644
--- a/i18n/zh-CN/docusaurus-plugin-content-blog/2026-07-31-fory_1_5_0_released.md
+++ b/i18n/zh-CN/docusaurus-plugin-content-blog/2026-07-31-fory_1_5_0_released.md
@@ -106,7 +106,7 @@ fory.Register<ThirdParty.User>(100);
 byte[] bytes = fory.Serialize(user);
 ```
 
-有关构造要求、嵌套容器、动态值和高级映射,请参阅 [Rust](/docs/guide/rust/external_types)、[Dart](/docs/guide/dart/external_types)、[Swift](/docs/guide/swift/external_types) 和 [C#](/docs/guide/csharp/external_types) 的专门指南。
+有关构造要求、嵌套容器、动态值和高级映射,请参阅 [Rust](/zh-CN/docs/object-serialization/rust/external-types)、[Dart](/zh-CN/docs/object-serialization/dart/external-types)、[Swift](/zh-CN/docs/object-serialization/swift/external-types) 和 [C#](/zh-CN/docs/object-serialization/csharp/external-types) 的专门指南。
 
 ## C# 和 Dart 的类继承支持
 
@@ -152,7 +152,7 @@ class TextMessage extends MessageBase {
 
 生成的 `TextMessage` Schema 包含 `sequence` 和 `text`,但不包含继承的私有字段 `_cache`。该选项不会忽略继承的公共字段,也不会忽略由子类自身声明的私有字段。
 
-有关构造函数规则、跨 package 的私有字段访问、mix-in、泛型、引用和 Schema 兼容性,请参阅 [C# 类继承](/docs/guide/csharp/basic_serialization#class-inheritance)和 [Dart 继承](/docs/guide/dart/inheritance)。
+有关构造函数规则、跨 package 的私有字段访问、mix-in、泛型、引用和 Schema 兼容性,请参阅 [C# 类继承](/zh-CN/docs/object-serialization/csharp/basic-serialization#class-inheritance)和 [Dart 继承](/zh-CN/docs/object-serialization/dart/inheritance)。
 
 ## 新功能
 
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/rust/external-types.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/rust/external-types.md
index 0210879861..1e692764a5 100644
--- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/rust/external-types.md
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/rust/external-types.md
@@ -86,7 +86,7 @@ enum ValueSerializer {
 
 为了无损读取 xlang union,目标必须表示相同的内存中未知 case 载体。第三方 crate 可以通过声明 `Value<U>` 等泛型枚举来保持对 Fory 的独立;应用将序列化器目标设置为 `Value<UnknownCase>`。无法承载未知 case 的目标不能用于无损外部 xlang union 序列化。
 
-### 原生结构体风格枚举
+### 原生结构体风格枚举 {#native-struct-style-enums}
 
 使用 `xlang = false` 时,外部结构化序列化器支持完整的 Rust 数据枚举范围:unit 变体、包含一个或多个字段的 tuple 变体、包含一个或多个字段的具名变体,以及这些结构的任意组合。
 
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/rust/schema-evolution.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/rust/schema-evolution.md
index e89c172e99..b4730c2981 100644
--- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/rust/schema-evolution.md
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/object-serialization/rust/schema-evolution.md
@@ -130,7 +130,7 @@ let decoded: third_party::User =
 
 对等端必须为逻辑类型使用相同的数字 ID 或注册名称。添加或删除字段遵循常规兼容模式规则。自定义序列化器则拥有不透明 EXT 主体,因此其实现必须在该主体中自行定义版本控制。
 
-## 枚举支持
+## 枚举支持 {#enum-support}
 
 Apache Fory™ 在兼容模式中支持三种具有完整 Schema 演进能力的枚举变体:
 
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0.json b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0.json
new file mode 100644
index 0000000000..eb9249f946
--- /dev/null
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0.json
@@ -0,0 +1,42 @@
+{
+  "version.label": {
+    "message": "1.6.0",
+    "description": "The label for version 1.6.0"
+  },
+  "sidebar.docsSidebar.category.Introduction": {
+    "message": "简介",
+    "description": "The label for category Introduction in sidebar docsSidebar"
+  },
+  "sidebar.docsSidebar.category.Getting Started": {
+    "message": "快速开始",
+    "description": "The label for category Getting Started in sidebar docsSidebar"
+  },
+  "sidebar.docsSidebar.category.Benchmarks": {
+    "message": "基准测试",
+    "description": "The label for category Benchmarks in sidebar docsSidebar"
+  },
+  "sidebar.docsSidebar.category.Object Serialization": {
+    "message": "对象序列化",
+    "description": "The label for category Object Serialization in sidebar docsSidebar"
+  },
+  "sidebar.docsSidebar.category.Row Format": {
+    "message": "行格式",
+    "description": "The label for category Row Format in sidebar docsSidebar"
+  },
+  "sidebar.docsSidebar.category.Fory JSON": {
+    "message": "Fory JSON",
+    "description": "The label for category Fory JSON in sidebar docsSidebar"
+  },
+  "sidebar.docsSidebar.category.Fory IDL & Compiler": {
+    "message": "Fory IDL 与编译器",
+    "description": "The label for category Fory IDL & Compiler in sidebar docsSidebar"
+  },
+  "sidebar.docsSidebar.category.Fory gRPC": {
+    "message": "Fory gRPC",
+    "description": "The label for category Fory gRPC in sidebar docsSidebar"
+  },
+  "sidebar.docsSidebar.category.Development": {
+    "message": "开发",
+    "description": "The label for category Development in sidebar docsSidebar"
+  }
+}
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/benchmarks/_category_.json b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/benchmarks/_category_.json
new file mode 100644
index 0000000000..aed75caeba
--- /dev/null
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/benchmarks/_category_.json
@@ -0,0 +1,6 @@
+{
+  "position": 3,
+  "label": "基准测试",
+  "collapsible": true,
+  "collapsed": true
+}
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/benchmarks/index.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/benchmarks/index.md
new file mode 100644
index 0000000000..d6536bc154
--- /dev/null
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/benchmarks/index.md
@@ -0,0 +1,126 @@
+---
+title: 基准结果
+sidebar_position: 1
+id: index
+license: |
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+     http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+---
+
+> **注意**:不同序列化器和配置各自擅长不同的工作负载。基准测试结果仅供参考。
+> 请针对具体使用场景,采用适当的配置和工作负载进行基准测试。
+
+## Java 基准测试
+
+Java 基准测试使用 `docs/benchmarks/object-serialization/native/java` 中的当前测试套件,
+将 Fory 与常见 Java 序列化框架进行比较。
+
+**序列化吞吐量**:
+
+![Java 序列化吞吐量](object-serialization/native/java/java_repo_serialization_throughput.png)
+
+**反序列化吞吐量**:
+
+![Java 反序列化吞吐量](object-serialization/native/java/java_repo_deserialization_throughput.png)
+
+**JSON 吞吐量**:
+
+<div style={{display: 'flex', gap: '1rem'}}>
+  <img src={require('./json/java/string_throughput.png').default} alt="Java JSON String Throughput" style={{width: 'calc(50% - 0.5rem)'}} />
+  <img src={require('./json/java/utf8_bytes_throughput.png').default} alt="Java JSON UTF-8 Throughput" style={{width: 'calc(50% - 0.5rem)'}} />
+</div>
+
+**跨语言吞吐量**:
+
+![Java 跨语言吞吐量](object-serialization/xlang/java/throughput.png)
+
+**重要**:测量 Fory 运行时代码生成性能时,需要进行充分预热:
+
+更多基准测试说明、原始数据和完整 Java benchmark README,请参阅 [Java 基准测试](object-serialization/native/java/README.md)。
+
+## Python 基准测试
+
+在对象和列表工作负载中,Fory Python 相比 `pickle` 和 Protobuf 展现出优秀性能。
+
+![Python 吞吐量](object-serialization/xlang/python/throughput.png)
+
+基准测试设置、原始结果和复现步骤请参阅 [Python 基准测试](object-serialization/xlang/python/README.md)。
+
+## Rust 基准测试
+
+与其他 Rust 序列化框架相比,Fory Rust 展现出有竞争力的性能。
+
+![Rust 吞吐量](object-serialization/xlang/rust/throughput.png)
+
+注意:结果取决于硬件、数据集和实现版本。记录的环境、工作负载和复现命令请参阅
+[Rust 基准测试报告](object-serialization/xlang/rust/README.md)。
+
+## C++ 基准测试
+
+与 Protobuf C++ 序列化框架相比,Fory C++ 展现出有竞争力的性能。
+
+![C++ 吞吐量](object-serialization/xlang/cpp/throughput.png)
+
+记录的环境、工作负载和复现命令请参阅 [C++ 基准测试报告](object-serialization/xlang/cpp/README.md)。
+
+## Go 基准测试
+
+在单对象和列表工作负载中,Fory Go 相比 Protobuf 和 Msgpack 展现出优秀性能。
+
+![Go 吞吐量](object-serialization/xlang/go/throughput.png)
+
+注意:结果取决于硬件、数据集和实现版本。详情请参阅
+[Go 基准测试报告](object-serialization/xlang/go/README.md)。
+
+## C# 基准测试
+
+在有类型对象的序列化和反序列化工作负载中,Fory C# 相比 Protobuf 和 Msgpack 展现出优秀性能。
+
+![C# 吞吐量](object-serialization/xlang/csharp/throughput.png)
+
+注意:结果取决于硬件和运行时版本。详情请参阅
+[C# 基准测试报告](object-serialization/xlang/csharp/README.md)。
+
+## Swift 基准测试
+
+在标量对象和列表工作负载中,Fory Swift 相比 Protobuf 和 Msgpack 展现出优秀性能。
+
+![Swift 吞吐量](object-serialization/xlang/swift/throughput.png)
+
+注意:结果取决于硬件和运行时版本。详情请参阅
+[Swift 基准测试报告](object-serialization/xlang/swift/README.md)。
+
+## JavaScript 基准测试
+
+在具有代表性的 Node.js 工作负载中,Fory JavaScript 相比 Protocol Buffers 和 JSON 展现出优秀性能。
+
+![JavaScript 吞吐量](object-serialization/xlang/javascript/throughput.png)
+
+注意:结果取决于硬件、数据集和运行时版本。详情请参阅
+[JavaScript 基准测试报告](object-serialization/xlang/javascript/README.md)。
+
+## Dart 基准测试
+
+在具有代表性的对象和列表工作负载中,Fory Dart 相比 Protocol Buffers 展现出优秀性能。
+
+![Dart 吞吐量](object-serialization/xlang/dart/throughput.png)
+
+注意:结果取决于硬件、数据集和运行时版本。详情请参阅
+[Dart 基准测试报告](object-serialization/xlang/dart/README.md)。
+
+## 正确解读结果
+
+请先阅读[方法论](methodology.md),再打开能力、语言、Schema、模式和操作均与自身工作负载匹配的报告。
+仓库中保存的结果只是其记录环境下的历史证据,并不保证适用于其他应用或当前 main 分支。
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/benchmarks/json/_category_.json b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/benchmarks/json/_category_.json
new file mode 100644
index 0000000000..5c71869ca6
--- /dev/null
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/benchmarks/json/_category_.json
@@ -0,0 +1,7 @@
+{
+  "position": 4,
+  "key": "benchmark-json",
+  "label": "Fory JSON",
+  "collapsible": true,
+  "collapsed": true
+}
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/benchmarks/json/java/README.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/benchmarks/json/java/README.md
new file mode 100644
index 0000000000..e768ea48e7
--- /dev/null
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/benchmarks/json/java/README.md
@@ -0,0 +1,38 @@
+# Java JSON 基准测试报告
+
+本基准测试使用相同的数据比较 fory-json、Jackson 和 Gson。String 组不包含 UTF-8
+转换。UTF-8 字节组会在可用时使用直接字节数组 API。Gson 包含 String 到 UTF-8 的编码以及
+UTF-8 到 String 的解码。
+
+```bash
+cd benchmarks/java
+./run_json.sh --libs fory-json,jackson,gson
+```
+
+- 基准测试日期:`2026-07-28`
+- 源代码提交:`bd0ca9825b3206b1a53bf27bfb180a551ab39236`
+- 平台:Apple M4 Pro, macOS 15.7.2, arm64
+- JDK:`26.0.1`
+- VM:`OpenJDK 64-Bit Server VM`
+- JMH:`1.37`
+- 预热:3 次迭代 × `2 s`
+- 测量:5 次迭代 × `2 s`
+- Fork 数:1;线程数:1
+- 模式:吞吐量;数值越高越好
+
+## String
+
+![Java JSON String 基准测试吞吐量](string_throughput.png)
+
+## UTF-8 字节
+
+![Java JSON UTF-8 字节基准测试吞吐量](utf8_bytes_throughput.png)
+
+## 结果
+
+| 表示形式   | 操作     | fory-json ops/sec | jackson ops/sec | gson ops/sec | 最快      |
+| ---------- | -------- | ----------------: | --------------: | -----------: | --------- |
+| String     | 序列化   |         7,387,465 |       2,049,368 |    1,084,042 | fory-json |
+| String     | 反序列化 |         2,897,955 |       1,074,885 |      902,772 | fory-json |
+| UTF-8 字节 | 序列化   |        10,375,498 |       1,868,614 |    1,037,211 | fory-json |
+| UTF-8 字节 | 反序列化 |         3,077,158 |       1,268,397 |      933,079 | fory-json |
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/benchmarks/json/java/string_throughput.png b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/benchmarks/json/java/string_throughput.png
new file mode 100644
index 0000000000..95effcaea0
Binary files /dev/null and b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/benchmarks/json/java/string_throughput.png differ
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/benchmarks/json/java/utf8_bytes_throughput.png b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/benchmarks/json/java/utf8_bytes_throughput.png
new file mode 100644
index 0000000000..7f2aacc375
Binary files /dev/null and b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/benchmarks/json/java/utf8_bytes_throughput.png differ
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/benchmarks/methodology.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/benchmarks/methodology.md
new file mode 100644
index 0000000000..aa7647b0e5
--- /dev/null
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/benchmarks/methodology.md
@@ -0,0 +1,40 @@
+---
+title: 基准测试方法论
+sidebar_position: 2
+id: methodology
+license: |
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+     http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+---
+
+有价值的序列化基准测试应记录足够的上下文,以便复现工作负载,并避免将语义不同的测试当作等价结果比较。
+
+## 必需上下文
+
+- 仓库 commit 和依赖版本;
+- 硬件、操作系统、运行时版本和相关环境变量;
+- Schema 和对象填充方式;
+- xlang 或 native 模式、兼容模式、引用跟踪和注册方式;
+- 预热、fork/process、迭代次数、持续时间和并发度;
+- 测量的序列化表示和操作;
+- 精确命令和原始结果位置。
+
+## 解读报告
+
+只比较同一种操作和等价的数据语义。不要在不说明语义差异的情况下,将 xlang 载荷与 native 载荷比较,
+或将完整对象重建与 Row Format 字段访问比较。基于 JIT 和代码生成的实现需要有代表性的预热。
+
+如果决策依赖当前代码,请运行当前有效的 benchmark harness。仓库中保存的报告只代表其记录的
+commit 和环境。
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/benchmarks/object-serialization/_category_.json b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/benchmarks/object-serialization/_category_.json
new file mode 100644
index 0000000000..fd60d74616
--- /dev/null
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/benchmarks/object-serialization/_category_.json
@@ -0,0 +1,7 @@
+{
+  "position": 3,
+  "key": "benchmark-object-serialization",
+  "label": "对象序列化",
+  "collapsible": true,
+  "collapsed": true
+}
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/benchmarks/object-serialization/native/_category_.json b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/benchmarks/object-serialization/native/_category_.json
new file mode 100644
index 0000000000..1baf4a4d97
--- /dev/null
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/benchmarks/object-serialization/native/_category_.json
@@ -0,0 +1,6 @@
+{
+  "position": 2,
+  "label": "Native",
+  "collapsible": true,
+  "collapsed": true
+}
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/benchmarks/object-serialization/native/java-graalvm.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/benchmarks/object-serialization/native/java-graalvm.md
new file mode 100644
index 0000000000..45c15a5a01
--- /dev/null
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/benchmarks/object-serialization/native/java-graalvm.md
@@ -0,0 +1,110 @@
+# Java GraalVM Native Image 基准测试
+
+这些测量数据涵盖 GraalVM Native Image 中的 Fory 二进制对象序列化。结果取决于记录的工作负载和环境。
+
+## 基准测试
+
+Fory 与 GraalVM JDK 序列化的性能对比:
+
+| 类型   | 压缩 | 速度提升 | 大小 |
+| ------ | ---- | -------- | ---- |
+| Struct | 关闭 | 46x      | 43%  |
+| Struct | 开启 | 24x      | 31%  |
+| Pojo   | 关闭 | 12x      | 56%  |
+| Pojo   | 开启 | 12x      | 48%  |
+
+基准测试代码请参阅 [Benchmark.java](https://github.com/apache/fory/blob/main/integration_tests/graalvm_tests/src/main/java/org/apache/fory/graalvm/Benchmark.java)。
+
+### Struct 基准测试
+
+#### 类字段
+
+```java
+public class Struct implements Serializable {
+  public int f1;
+  public long f2;
+  public float f3;
+  public double f4;
+  public int f5;
+  public long f6;
+  public float f7;
+  public double f8;
+  public int f9;
+  public long f10;
+  public float f11;
+  public double f12;
+}
+```
+
+#### 基准测试结果
+
+未启用压缩:
+
+```
+Benchmark repeat number: 400000
+Object type: class org.apache.fory.graalvm.Struct
+Compress number: false
+Fory size: 76.0
+JDK size: 178.0
+Fory serialization took mills: 49
+JDK serialization took mills: 2254
+Compare speed: Fory is 45.70x speed of JDK
+Compare size: Fory is 0.43x size of JDK
+```
+
+启用数字压缩:
+
+```
+Benchmark repeat number: 400000
+Object type: class org.apache.fory.graalvm.Struct
+Compress number: true
+Fory size: 55.0
+JDK size: 178.0
+Fory serialization took mills: 130
+JDK serialization took mills: 3161
+Compare speed: Fory is 24.16x speed of JDK
+Compare size: Fory is 0.31x size of JDK
+```
+
+### POJO 基准测试
+
+#### 类字段
+
+```java
+public class Foo implements Serializable {
+  int f1;
+  String f2;
+  List<String> f3;
+  Map<String, Long> f4;
+}
+```
+
+#### 基准测试结果
+
+未启用压缩:
+
+```
+Benchmark repeat number: 400000
+Object type: class org.apache.fory.graalvm.Foo
+Compress number: false
+Fory size: 541.0
+JDK size: 964.0
+Fory serialization took mills: 1663
+JDK serialization took mills: 16266
+Compare speed: Fory is 12.19x speed of JDK
+Compare size: Fory is 0.56x size of JDK
+```
+
+启用数字压缩:
+
+```
+Benchmark repeat number: 400000
+Object type: class org.apache.fory.graalvm.Foo
+Compress number: true
+Fory size: 459.0
+JDK size: 964.0
+Fory serialization took mills: 1289
+JDK serialization took mills: 15069
+Compare speed: Fory is 12.11x speed of JDK
+Compare size: Fory is 0.48x size of JDK
+```
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/benchmarks/object-serialization/native/java/README.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/benchmarks/object-serialization/native/java/README.md
new file mode 100644
index 0000000000..da0943b7fc
--- /dev/null
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/benchmarks/object-serialization/native/java/README.md
@@ -0,0 +1,233 @@
+# Java 原生序列化基准测试
+
+有关 fory-json、Jackson 和 Gson 的测试结果,请参阅 [Java JSON 基准测试报告](../../../json/java/README.md)。
+
+## 系统环境
+
+- 操作系统:4.9.151-015.x86_64
+- CPU:Intel(R) Xeon(R) Platinum 8163 CPU @ 2.50GHz
+- 字节序:小端序
+- L1d 缓存: 32K
+- L1i 缓存:32K
+- L2 缓存: 1024K
+- L3 缓存: 33792K
+
+## JMH 参数
+
+不要跳过**预热**,否则测试结果会不准确。
+
+```bash
+ -f 1 -wi 3 -i 3 -t 1 -w 2s -r 2s -rf cs
+```
+
+## 基准测试数据
+
+### Struct
+
+Struct 是一个包含 100 个基本类型字段的类:
+
+```java
+public class Struct {
+  public int f1;
+  public long f2;
+  public float f3;
+  public double f4;
+  // ...
+  public double f99;
+}
+```
+
+### Struct2
+
+Struct2 是一个包含 100 个装箱类型字段的类:
+
+```java
+public class Struct {
+  public Integer f1;
+  public Long f2;
+  public Float f3;
+  public Double f4;
+  // ...
+  public Double f99;
+}
+```
+
+### MediaContent
+
+MEDIA_CONTENT 是来自 [jvm-serializers](https://github.com/eishay/jvm-serializers/blob/master/tpc/src/data/media/MediaContent.java) 的类。
+
+### Sample
+
+SAMPLE 是来自 [Kryo 基准测试](https://github.com/EsotericSoftware/kryo/blob/master/benchmarks/src/main/java/com/esotericsoftware/kryo/benchmarks/data/Sample.java) 的类。
+
+## Java 基准测试
+
+### 序列化至堆内缓冲区
+
+将数据序列化为 Java 字节数组。
+
+#### Java 同 Schema 序列化
+
+读取端和写入端使用相同的类 Schema。此模式不使用类的向前/向后兼容能力。
+
+![Java 堆内同 Schema 序列化](java_heap_serialize_consistent.png)
+
+#### Java 兼容序列化
+
+读取端和写入端可以使用不同的类 Schema。此模式支持类的向前/向后兼容。
+
+![Java 堆内 Schema 兼容序列化](java_heap_serialize_compatible.png)
+
+#### Java 同 Schema 反序列化
+
+读取端和写入端使用相同的类 Schema。此模式不使用类的向前/向后兼容能力。
+
+![Java 堆内同 Schema 反序列化](java_heap_deserialize_consistent.png)
+
+#### Java 兼容反序列化
+
+读取端和写入端可以使用不同的类 Schema。此模式支持类的向前/向后兼容。
+
+![Java 堆内 Schema 兼容反序列化](java_heap_deserialize_compatible.png)
+
+### 堆外序列化
+
+在堆外内存中序列化数据。
+
+#### Java 同 Schema 序列化
+
+读取端和写入端使用相同的类 Schema。此模式不使用类的向前/向后兼容能力。
+
+![Java 堆外同 Schema 序列化](java_offheap_serialize_consistent.png)
+
+#### Java 兼容序列化
+
+读取端和写入端可以使用不同的类 Schema。此模式支持类的向前/向后兼容。
+
+![Java 堆外 Schema 兼容序列化](java_offheap_serialize_compatible.png)
+
+#### Java 同 Schema 反序列化
+
+读取端和写入端使用相同的类 Schema。此模式不使用类的向前/向后兼容能力。
+
+![Java 堆外同 Schema 反序列化](java_offheap_deserialize_consistent.png)
+
+#### Java 兼容反序列化
+
+读取端和写入端可以使用不同的类 Schema。此模式支持类的向前/向后兼容。
+
+![Java 堆外 Schema 兼容反序列化](java_offheap_deserialize_compatible.png)
+
+### 零拷贝序列化
+
+请注意,零拷贝序列化只避免序列化过程中的数据复制;如果将数据发送到其他机器,仍然可能发生复制。
+
+但是,如果在同一节点的进程之间通过共享内存序列化数据,并且数据在序列化前已位于堆外内存中,那么其他进程无需任何复制即可读取此缓冲区。
+
+#### Java 零拷贝序列化至堆内缓冲区
+
+![Java 零拷贝序列化](java_zero_copy_serialize.png)
+
+#### Java 零拷贝序列化至直接缓冲区
+
+![Java 零拷贝反序列化](java_zero_copy_deserialize.png)
+
+### 基准测试数据
+
+#### Java 序列化
+
+| Benchmark              | objectType    | bufferType   | references | Fory           | ForyMetaShared  | Kryo           | Fst           | Hession       | Jdk           | Protostuff    |
+| ---------------------- | ------------- | ------------ | ---------- | -------------- | --------------- | -------------- | ------------- | ------------- | ------------- | ------------- |
+| serialize              | STRUCT        | array        | False      | 7501415.567260 |                 | 558194.100861  | 882178.995727 | 258233.998931 | 155908.244240 | 330975.350403 |
+| serialize              | STRUCT        | array        | True       | 6264439.154428 |                 | 557542.628765  | 757753.756691 | 260845.209485 | 151258.539369 |               |
+| serialize              | STRUCT        | directBuffer | False      | 9834223.243204 |                 | 1078046.011115 | 807847.663261 | 266481.009225 | 154875.908438 | 340262.650047 |
+| serialize              | STRUCT        | directBuffer | True       | 7551780.823133 |                 | 853350.408656  | 762088.935404 | 261762.594966 | 156404.686214 |               |
+| serialize              | STRUCT2       | array        | False      | 3586126.623874 |                 | 325172.969175  | 371762.982661 | 56056.080075  | 36846.049162  | 322563.440433 |
+| serialize              | STRUCT2       | array        | True       | 3306474.506382 |                 | 259863.332448  | 380638.700267 | 60038.879790  | 38183.705811  |               |
+| serialize              | STRUCT2       | directBuffer | False      | 2643155.135327 |                 | 355688.882786  | 365317.705376 | 55924.319442  | 37444.967981  | 325093.716261 |
+| serialize              | STRUCT2       | directBuffer | True       | 2391110.083108 |                 | 338960.426033  | 370851.880711 | 56674.065604  | 35798.679246  |               |
+| serialize              | MEDIA_CONTENT | array        | False      | 3031642.924542 |                 | 730792.521676  | 751892.023189 | 367782.358049 | 137989.198821 | 780618.761219 |
+| serialize              | MEDIA_CONTENT | array        | True       | 2250384.600246 |                 | 445251.084327  | 583859.907758 | 329427.470680 | 140260.668888 |               |
+| serialize              | MEDIA_CONTENT | directBuffer | False      | 2479862.129632 |                 | 608972.517580  | 728001.080250 | 372477.138150 | 138567.623369 | 805941.345157 |
+| serialize              | MEDIA_CONTENT | directBuffer | True       | 1938527.588331 |                 | 359875.473951  | 595679.580108 | 353376.085025 | 140158.673910 |               |
+| serialize              | SAMPLE        | array        | False      | 3570966.469087 |                 | 1105365.931217 | 915907.574306 | 220386.502846 | 118374.836631 | 663272.710783 |
+| serialize              | SAMPLE        | array        | True       | 1767693.835090 |                 | 734215.482291  | 731869.156376 | 192414.014211 | 119858.140625 |               |
+| serialize              | SAMPLE        | directBuffer | False      | 3684487.760591 |                 | 1376560.302168 | 902302.261168 | 220981.308085 | 118273.584257 | 693641.589806 |
+| serialize              | SAMPLE        | directBuffer | True       | 1826456.709478 |                 | 932887.968348  | 723614.066770 | 211949.960255 | 108263.040839 |               |
+| serialize_compatible   | STRUCT        | array        | False      | 3530406.108869 | 9204444.777172  | 145964.199559  |               | 258650.663523 |               |               |
+| serialize_compatible   | STRUCT        | array        | True       | 3293059.098127 | 7064625.291374  | 136180.832879  |               | 263564.913879 |               |               |
+| serialize_compatible   | STRUCT        | directBuffer | False      | 2653169.568374 | 11650229.648715 | 106695.800225  |               | 249221.452137 |               |               |
+| serialize_compatible   | STRUCT        | directBuffer | True       | 2393817.762938 | 8702412.752357  | 106458.212005  |               | 263623.143601 |               |               |
+| serialize_compatible   | STRUCT2       | array        | False      | 2773368.997680 | 2575824.143864  | 125807.748004  |               | 58509.125342  |               |               |
+| serialize_compatible   | STRUCT2       | array        | True       | 2564174.550276 | 3543082.528217  | 114983.546343  |               | 55552.977735  |               |               |
+| serialize_compatible   | STRUCT2       | directBuffer | False      | 1912402.937879 | 2714748.572248  | 92130.672361   |               | 58908.567439  |               |               |
+| serialize_compatible   | STRUCT2       | directBuffer | True       | 1848338.968058 | 1866073.031851  | 88989.724768   |               | 55524.373547  |               |               |
+| serialize_compatible   | MEDIA_CONTENT | array        | False      | 1679272.036223 | 2992288.235281  | 188911.259146  |               | 377195.903772 |               |               |
+| serialize_compatible   | MEDIA_CONTENT | array        | True       | 1406736.538716 | 2058738.716953  | 145782.916427  |               | 351657.879556 |               |               |
+| serialize_compatible   | MEDIA_CONTENT | directBuffer | False      | 1710680.937387 | 2291443.556971  | 185363.714829  |               | 371729.727192 |               |               |
+| serialize_compatible   | MEDIA_CONTENT | directBuffer | True       | 1149999.473994 | 1804349.244125  | 142836.961878  |               | 343834.954942 |               |               |
+| serialize_compatible   | SAMPLE        | array        | False      | 3604596.465625 | 4409055.687063  | 378907.663184  |               | 234454.975158 |               |               |
+| serialize_compatible   | SAMPLE        | array        | True       | 1619648.337293 | 1840705.439334  | 320815.567701  |               | 206174.173039 |               |               |
+| serialize_compatible   | SAMPLE        | directBuffer | False      | 3484533.218305 | 5043538.364886  | 296102.615094  |               | 194761.224263 |               |               |
+| serialize_compatible   | SAMPLE        | directBuffer | True       | 1730822.630648 | 1859289.705838  | 276757.392449  |               | 212840.483308 |               |               |
+| deserialize            | STRUCT        | array        | False      | 4595230.434552 |                 | 607750.343557  | 357887.235311 | 84709.108821  | 29603.066599  | 517381.168594 |
+| deserialize            | STRUCT        | array        | True       | 4634753.596131 |                 | 552802.227807  | 353480.554035 | 91050.370224  | 29727.744196  |               |
+| deserialize            | STRUCT        | directBuffer | False      | 5012002.859236 |                 | 910534.169114  | 352441.597147 | 91151.633583  | 28717.004518  | 538922.947147 |
+| deserialize            | STRUCT        | directBuffer | True       | 4864329.316938 |                 | 914404.107564  | 334574.303484 | 91037.205901  | 29549.998286  |               |
+| deserialize            | STRUCT2       | array        | False      | 1126298.359550 |                 | 275984.042401  | 280131.091068 | 69758.767783  | 14888.805111  | 416212.973861 |
+| deserialize            | STRUCT2       | array        | True       | 1046649.083082 |                 | 222710.554833  | 260649.308016 | 68616.029248  | 14034.100664  |               |
+| deserialize            | STRUCT2       | directBuffer | False      | 1117586.457565 |                 | 319247.256793  | 262519.858810 | 66866.108653  | 14652.043788  | 425523.315814 |
+| deserialize            | STRUCT2       | directBuffer | True       | 1018277.848128 |                 | 249105.828416  | 234973.637096 | 65338.345185  | 14425.886048  |               |
+| deserialize            | MEDIA_CONTENT | array        | False      | 2054066.903469 |                 | 577631.234369  | 363455.785182 | 118156.072284 | 38536.250402  | 951662.019963 |
+| deserialize            | MEDIA_CONTENT | array        | True       | 1507767.206603 |                 | 365530.417232  | 304371.728638 | 120016.594171 | 38957.191090  |               |
+| deserialize            | MEDIA_CONTENT | directBuffer | False      | 1502746.028159 |                 | 389473.174523  | 311691.658687 | 111067.942626 | 40512.632076  | 964664.641598 |
+| deserialize            | MEDIA_CONTENT | directBuffer | True       | 1290593.975753 |                 | 306995.220799  | 251820.171513 | 121820.821260 | 37030.594632  |               |
+| deserialize            | SAMPLE        | array        | False      | 2069988.624415 |                 | 979173.981159  | 473409.796491 | 119471.518388 | 29309.573998  | 619338.385412 |
+| deserialize            | SAMPLE        | array        | True       | 1797942.442313 |                 | 716438.884369  | 428315.502365 | 121106.002978 | 27466.003923  |               |
+| deserialize            | SAMPLE        | directBuffer | False      | 2229791.078395 |                 | 983538.936801  | 441027.550809 | 117806.916589 | 28128.457935  | 624804.978534 |
+| deserialize            | SAMPLE        | directBuffer | True       | 1958815.397807 |                 | 762889.302732  | 420523.770904 | 121940.783597 | 28221.014735  |               |
+| deserialize_compatible | STRUCT        | array        | False      | 2110335.039275 | 4978833.206806  | 78771.635309   |               | 88617.486795  |               |               |
+| deserialize_compatible | STRUCT        | array        | True       | 2135681.982674 | 4807963.882520  | 72805.937649   |               | 90206.654212  |               |               |
+| deserialize_compatible | STRUCT        | directBuffer | False      | 1596464.248141 | 5149070.657830  | 58574.904225   |               | 89580.561575  |               |               |
+| deserialize_compatible | STRUCT        | directBuffer | True       | 1684681.074242 | 5137500.621288  | 60685.320299   |               | 84407.472531  |               |               |
+| deserialize_compatible | STRUCT2       | array        | False      | 849507.176263  | 1201998.142474  | 60602.285743   |               | 63703.763814  |               |               |
+| deserialize_compatible | STRUCT2       | array        | True       | 815120.319155  | 1058423.614156  | 62729.908347   |               | 69521.573119  |               |               |
+| deserialize_compatible | STRUCT2       | directBuffer | False      | 784036.589363  | 1131212.586953  | 54637.329134   |               | 69342.030965  |               |               |
+| deserialize_compatible | STRUCT2       | directBuffer | True       | 782679.662083  | 1089162.408165  | 51761.569591   |               | 68542.055543  |               |               |
+| deserialize_compatible | MEDIA_CONTENT | array        | False      | 1441671.706320 | 2279742.810882  | 180882.860363  |               | 121619.090797 |               |               |
+| deserialize_compatible | MEDIA_CONTENT | array        | True       | 1121136.039627 | 1623938.202345  | 154311.211540  |               | 119994.104050 |               |               |
+| deserialize_compatible | MEDIA_CONTENT | directBuffer | False      | 1256034.732514 | 1718098.363961  | 134485.160300  |               | 107594.474890 |               |               |
+| deserialize_compatible | MEDIA_CONTENT | directBuffer | True       | 1054942.751816 | 1333345.536684  | 119311.787329  |               | 116531.023438 |               |               |
+| deserialize_compatible | SAMPLE        | array        | False      | 2296046.895861 | 2485564.396196  | 255086.928308  |               | 121898.105768 |               |               |
+| deserialize_compatible | SAMPLE        | array        | True       | 1834139.395757 | 2002938.794909  | 238811.995510  |               | 121297.485903 |               |               |
+| deserialize_compatible | SAMPLE        | directBuffer | False      | 2308111.633661 | 2289261.533644  | 201993.787890  |               | 124044.417439 |               |               |
+| deserialize_compatible | SAMPLE        | directBuffer | True       | 1820490.585648 | 1927548.827586  | 174534.710870  |               | 120276.449497 |               |               |
+
+#### Java 零拷贝
+
+| Benchmark   | array_size | bufferType   | dataType        | Fory           | Kryo           | Fst            |
+| ----------- | ---------- | ------------ | --------------- | -------------- | -------------- | -------------- |
+| serialize   | 200        | array        | BUFFER          | 5123572.914045 | 1985187.977633 | 2400193.220466 |
+| serialize   | 200        | array        | PRIMITIVE_ARRAY | 8297232.942927 | 147342.606262  | 313986.053417  |
+| serialize   | 200        | directBuffer | BUFFER          | 5400346.890126 | 1739454.519770 | 2282550.111756 |
+| serialize   | 200        | directBuffer | PRIMITIVE_ARRAY | 8335248.350301 | 972683.763633  | 294132.218623  |
+| serialize   | 1000       | array        | BUFFER          | 4979590.929127 | 1616159.671230 | 1805557.477810 |
+| serialize   | 1000       | array        | PRIMITIVE_ARRAY | 8772856.921028 | 31395.721514   | 67209.107012   |
+| serialize   | 1000       | directBuffer | BUFFER          | 5376191.775007 | 1377272.568510 | 1644789.427010 |
+| serialize   | 1000       | directBuffer | PRIMITIVE_ARRAY | 8207563.785251 | 209183.090868  | 66108.014322   |
+| serialize   | 5000       | array        | BUFFER          | 5018916.322770 | 711287.533377  | 811029.402136  |
+| serialize   | 5000       | array        | PRIMITIVE_ARRAY | 8027439.580226 | 6248.006967    | 14997.400124   |
+| serialize   | 5000       | directBuffer | BUFFER          | 5330897.682960 | 707092.956534  | 477148.540850  |
+| serialize   | 5000       | directBuffer | PRIMITIVE_ARRAY | 7695981.988316 | 43565.678616   | 15000.378818   |
+| deserialize | 200        | array        | BUFFER          | 3302149.383135 | 1296284.787720 | 657754.887247  |
+| deserialize | 200        | array        | PRIMITIVE_ARRAY | 986136.067809  | 146675.360652  | 219333.990504  |
+| deserialize | 200        | directBuffer | BUFFER          | 3113115.471758 | 1004844.498712 | 598421.278941  |
+| deserialize | 200        | directBuffer | PRIMITIVE_ARRAY | 991807.969328  | 518713.299422  | 179604.045774  |
+| deserialize | 1000       | array        | BUFFER          | 2831942.848999 | 721266.541130  | 422147.154601  |
+| deserialize | 1000       | array        | PRIMITIVE_ARRAY | 205671.992736  | 30409.835023   | 53100.903684   |
+| deserialize | 1000       | directBuffer | BUFFER          | 3397690.327371 | 592972.713203  | 298929.116572  |
+| deserialize | 1000       | directBuffer | PRIMITIVE_ARRAY | 202275.242341  | 112132.004609  | 38572.001768   |
+| deserialize | 5000       | array        | BUFFER          | 3296658.120035 | 147251.846111  | 136934.604328  |
+| deserialize | 5000       | array        | PRIMITIVE_ARRAY | 40312.590172   | 6122.351228    | 10672.872798   |
+| deserialize | 5000       | directBuffer | BUFFER          | 3284441.570594 | 148614.476829  | 77950.612503   |
+| deserialize | 5000       | directBuffer | PRIMITIVE_ARRAY | 40413.743717   | 21826.040410   | 8561.694533    |
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/benchmarks/object-serialization/native/java/data/jmh-jdk-11-deserialization.csv b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/benchmarks/object-serialization/native/java/data/jmh-jdk-11-deserialization.csv
new file mode 100644
index 0000000000..98760a4721
--- /dev/null
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/benchmarks/object-serialization/native/java/data/jmh-jdk-11-deserialization.csv
@@ -0,0 +1,153 @@
+"Benchmark","Mode","Threads","Samples","Score","Score Error (99.9%)","Unit","Param: bufferType","Param: objectType","Param: references"
+"org.apache.fory.benchmark.UserTypeDeserializeSuite.fst_deserialize","thrpt",1,3,473409.796491,250793.361170,"ops/s",array,SAMPLE,false
+"org.apache.fory.benchmark.UserTypeDeserializeSuite.fst_deserialize","thrpt",1,3,428315.502365,191770.682411,"ops/s",array,SAMPLE,true
+"org.apache.fory.benchmark.UserTypeDeserializeSuite.fst_deserialize","thrpt",1,3,363455.785182,44717.666948,"ops/s",array,MEDIA_CONTENT,false
+"org.apache.fory.benchmark.UserTypeDeserializeSuite.fst_deserialize","thrpt",1,3,304371.728638,74831.791688,"ops/s",array,MEDIA_CONTENT,true
+"org.apache.fory.benchmark.UserTypeDeserializeSuite.fst_deserialize","thrpt",1,3,357887.235311,218092.594151,"ops/s",array,STRUCT,false
+"org.apache.fory.benchmark.UserTypeDeserializeSuite.fst_deserialize","thrpt",1,3,353480.554035,229239.505256,"ops/s",array,STRUCT,true
+"org.apache.fory.benchmark.UserTypeDeserializeSuite.fst_deserialize","thrpt",1,3,280131.091068,89472.347221,"ops/s",array,STRUCT2,false
+"org.apache.fory.benchmark.UserTypeDeserializeSuite.fst_deserialize","thrpt",1,3,260649.308016,165597.762734,"ops/s",array,STRUCT2,true
+"org.apache.fory.benchmark.UserTypeDeserializeSuite.fst_deserialize","thrpt",1,3,441027.550809,321712.847983,"ops/s",directBuffer,SAMPLE,false
+"org.apache.fory.benchmark.UserTypeDeserializeSuite.fst_deserialize","thrpt",1,3,420523.770904,122531.658151,"ops/s",directBuffer,SAMPLE,true
+"org.apache.fory.benchmark.UserTypeDeserializeSuite.fst_deserialize","thrpt",1,3,311691.658687,185300.664992,"ops/s",directBuffer,MEDIA_CONTENT,false
+"org.apache.fory.benchmark.UserTypeDeserializeSuite.fst_deserialize","thrpt",1,3,251820.171513,894743.730727,"ops/s",directBuffer,MEDIA_CONTENT,true
+"org.apache.fory.benchmark.UserTypeDeserializeSuite.fst_deserialize","thrpt",1,3,352441.597147,109488.413174,"ops/s",directBuffer,STRUCT,false
+"org.apache.fory.benchmark.UserTypeDeserializeSuite.fst_deserialize","thrpt",1,3,334574.303484,89858.329407,"ops/s",directBuffer,STRUCT,true
+"org.apache.fory.benchmark.UserTypeDeserializeSuite.fst_deserialize","thrpt",1,3,262519.858810,138990.948859,"ops/s",directBuffer,STRUCT2,false
+"org.apache.fory.benchmark.UserTypeDeserializeSuite.fst_deserialize","thrpt",1,3,234973.637096,568162.582389,"ops/s",directBuffer,STRUCT2,true
+"org.apache.fory.benchmark.UserTypeDeserializeSuite.fory_deserialize","thrpt",1,3,2069988.624415,1501625.089719,"ops/s",array,SAMPLE,false
+"org.apache.fory.benchmark.UserTypeDeserializeSuite.fory_deserialize","thrpt",1,3,1797942.442313,3541577.357052,"ops/s",array,SAMPLE,true
+"org.apache.fory.benchmark.UserTypeDeserializeSuite.fory_deserialize","thrpt",1,3,2054066.903469,3314161.094630,"ops/s",array,MEDIA_CONTENT,false
+"org.apache.fory.benchmark.UserTypeDeserializeSuite.fory_deserialize","thrpt",1,3,1507767.206603,1662320.958961,"ops/s",array,MEDIA_CONTENT,true
+"org.apache.fory.benchmark.UserTypeDeserializeSuite.fory_deserialize","thrpt",1,3,4595230.434552,678411.427346,"ops/s",array,STRUCT,false
+"org.apache.fory.benchmark.UserTypeDeserializeSuite.fory_deserialize","thrpt",1,3,4634753.596131,582102.492158,"ops/s",array,STRUCT,true
+"org.apache.fory.benchmark.UserTypeDeserializeSuite.fory_deserialize","thrpt",1,3,1126298.359550,856691.704987,"ops/s",array,STRUCT2,false
+"org.apache.fory.benchmark.UserTypeDeserializeSuite.fory_deserialize","thrpt",1,3,1046649.083082,1816153.563648,"ops/s",array,STRUCT2,true
+"org.apache.fory.benchmark.UserTypeDeserializeSuite.fory_deserialize","thrpt",1,3,2229791.078395,2950833.975767,"ops/s",directBuffer,SAMPLE,false
+"org.apache.fory.benchmark.UserTypeDeserializeSuite.fory_deserialize","thrpt",1,3,1958815.397807,381903.427430,"ops/s",directBuffer,SAMPLE,true
+"org.apache.fory.benchmark.UserTypeDeserializeSuite.fory_deserialize","thrpt",1,3,1502746.028159,1759759.267183,"ops/s",directBuffer,MEDIA_CONTENT,false
+"org.apache.fory.benchmark.UserTypeDeserializeSuite.fory_deserialize","thrpt",1,3,1290593.975753,246089.810346,"ops/s",directBuffer,MEDIA_CONTENT,true
+"org.apache.fory.benchmark.UserTypeDeserializeSuite.fory_deserialize","thrpt",1,3,5012002.859236,3360944.705659,"ops/s",directBuffer,STRUCT,false
+"org.apache.fory.benchmark.UserTypeDeserializeSuite.fory_deserialize","thrpt",1,3,4864329.316938,4357833.300692,"ops/s",directBuffer,STRUCT,true
+"org.apache.fory.benchmark.UserTypeDeserializeSuite.fory_deserialize","thrpt",1,3,1117586.457565,323438.118804,"ops/s",directBuffer,STRUCT2,false
+"org.apache.fory.benchmark.UserTypeDeserializeSuite.fory_deserialize","thrpt",1,3,1018277.848128,1141314.435153,"ops/s",directBuffer,STRUCT2,true
+"org.apache.fory.benchmark.UserTypeDeserializeSuite.fory_deserialize_compatible","thrpt",1,3,2296046.895861,2532372.600048,"ops/s",array,SAMPLE,false
+"org.apache.fory.benchmark.UserTypeDeserializeSuite.fory_deserialize_compatible","thrpt",1,3,1834139.395757,1021897.505849,"ops/s",array,SAMPLE,true
+"org.apache.fory.benchmark.UserTypeDeserializeSuite.fory_deserialize_compatible","thrpt",1,3,1441671.706320,317052.609754,"ops/s",array,MEDIA_CONTENT,false
+"org.apache.fory.benchmark.UserTypeDeserializeSuite.fory_deserialize_compatible","thrpt",1,3,1121136.039627,979316.642796,"ops/s",array,MEDIA_CONTENT,true
+"org.apache.fory.benchmark.UserTypeDeserializeSuite.fory_deserialize_compatible","thrpt",1,3,2110335.039275,389404.889706,"ops/s",array,STRUCT,false
+"org.apache.fory.benchmark.UserTypeDeserializeSuite.fory_deserialize_compatible","thrpt",1,3,2135681.982674,1140328.709799,"ops/s",array,STRUCT,true
+"org.apache.fory.benchmark.UserTypeDeserializeSuite.fory_deserialize_compatible","thrpt",1,3,849507.176263,77466.989680,"ops/s",array,STRUCT2,false
+"org.apache.fory.benchmark.UserTypeDeserializeSuite.fory_deserialize_compatible","thrpt",1,3,815120.319155,110547.743648,"ops/s",array,STRUCT2,true
+"org.apache.fory.benchmark.UserTypeDeserializeSuite.fory_deserialize_compatible","thrpt",1,3,2308111.633661,1699117.497565,"ops/s",directBuffer,SAMPLE,false
+"org.apache.fory.benchmark.UserTypeDeserializeSuite.fory_deserialize_compatible","thrpt",1,3,1820490.585648,244290.391445,"ops/s",directBuffer,SAMPLE,true
+"org.apache.fory.benchmark.UserTypeDeserializeSuite.fory_deserialize_compatible","thrpt",1,3,1256034.732514,811833.294307,"ops/s",directBuffer,MEDIA_CONTENT,false
+"org.apache.fory.benchmark.UserTypeDeserializeSuite.fory_deserialize_compatible","thrpt",1,3,1054942.751816,180122.424477,"ops/s",directBuffer,MEDIA_CONTENT,true
+"org.apache.fory.benchmark.UserTypeDeserializeSuite.fory_deserialize_compatible","thrpt",1,3,1596464.248141,1624412.248391,"ops/s",directBuffer,STRUCT,false
+"org.apache.fory.benchmark.UserTypeDeserializeSuite.fory_deserialize_compatible","thrpt",1,3,1684681.074242,865262.572050,"ops/s",directBuffer,STRUCT,true
+"org.apache.fory.benchmark.UserTypeDeserializeSuite.fory_deserialize_compatible","thrpt",1,3,784036.589363,189745.805570,"ops/s",directBuffer,STRUCT2,false
+"org.apache.fory.benchmark.UserTypeDeserializeSuite.fory_deserialize_compatible","thrpt",1,3,782679.662083,232459.929272,"ops/s",directBuffer,STRUCT2,true
+"org.apache.fory.benchmark.UserTypeDeserializeSuite.forymetashared_deserialize_compatible","thrpt",1,3,2485564.396196,404678.689647,"ops/s",array,SAMPLE,false
+"org.apache.fory.benchmark.UserTypeDeserializeSuite.forymetashared_deserialize_compatible","thrpt",1,3,2002938.794909,254819.284313,"ops/s",array,SAMPLE,true
+"org.apache.fory.benchmark.UserTypeDeserializeSuite.forymetashared_deserialize_compatible","thrpt",1,3,2279742.810882,1984221.778254,"ops/s",array,MEDIA_CONTENT,false
+"org.apache.fory.benchmark.UserTypeDeserializeSuite.forymetashared_deserialize_compatible","thrpt",1,3,1623938.202345,902985.831204,"ops/s",array,MEDIA_CONTENT,true
+"org.apache.fory.benchmark.UserTypeDeserializeSuite.forymetashared_deserialize_compatible","thrpt",1,3,4978833.206806,1201415.339844,"ops/s",array,STRUCT,false
+"org.apache.fory.benchmark.UserTypeDeserializeSuite.forymetashared_deserialize_compatible","thrpt",1,3,4807963.882520,981981.561987,"ops/s",array,STRUCT,true
+"org.apache.fory.benchmark.UserTypeDeserializeSuite.forymetashared_deserialize_compatible","thrpt",1,3,1201998.142474,446807.356524,"ops/s",array,STRUCT2,false
+"org.apache.fory.benchmark.UserTypeDeserializeSuite.forymetashared_deserialize_compatible","thrpt",1,3,1058423.614156,2254684.330438,"ops/s",array,STRUCT2,true
+"org.apache.fory.benchmark.UserTypeDeserializeSuite.forymetashared_deserialize_compatible","thrpt",1,3,2289261.533644,330913.304260,"ops/s",directBuffer,SAMPLE,false
+"org.apache.fory.benchmark.UserTypeDeserializeSuite.forymetashared_deserialize_compatible","thrpt",1,3,1927548.827586,2169684.221478,"ops/s",directBuffer,SAMPLE,true
+"org.apache.fory.benchmark.UserTypeDeserializeSuite.forymetashared_deserialize_compatible","thrpt",1,3,1718098.363961,1096276.962216,"ops/s",directBuffer,MEDIA_CONTENT,false
+"org.apache.fory.benchmark.UserTypeDeserializeSuite.forymetashared_deserialize_compatible","thrpt",1,3,1333345.536684,1110700.750020,"ops/s",directBuffer,MEDIA_CONTENT,true
+"org.apache.fory.benchmark.UserTypeDeserializeSuite.forymetashared_deserialize_compatible","thrpt",1,3,5149070.657830,3249519.880480,"ops/s",directBuffer,STRUCT,false
+"org.apache.fory.benchmark.UserTypeDeserializeSuite.forymetashared_deserialize_compatible","thrpt",1,3,5137500.621288,3988987.937014,"ops/s",directBuffer,STRUCT,true
+"org.apache.fory.benchmark.UserTypeDeserializeSuite.forymetashared_deserialize_compatible","thrpt",1,3,1131212.586953,240674.468318,"ops/s",directBuffer,STRUCT2,false
+"org.apache.fory.benchmark.UserTypeDeserializeSuite.forymetashared_deserialize_compatible","thrpt",1,3,1089162.408165,294119.059967,"ops/s",directBuffer,STRUCT2,true
+"org.apache.fory.benchmark.UserTypeDeserializeSuite.hession_deserialize","thrpt",1,3,119471.518388,29846.632785,"ops/s",array,SAMPLE,false
+"org.apache.fory.benchmark.UserTypeDeserializeSuite.hession_deserialize","thrpt",1,3,121106.002978,27710.578092,"ops/s",array,SAMPLE,true
+"org.apache.fory.benchmark.UserTypeDeserializeSuite.hession_deserialize","thrpt",1,3,118156.072284,4767.841380,"ops/s",array,MEDIA_CONTENT,false
+"org.apache.fory.benchmark.UserTypeDeserializeSuite.hession_deserialize","thrpt",1,3,120016.594171,41255.986380,"ops/s",array,MEDIA_CONTENT,true
+"org.apache.fory.benchmark.UserTypeDeserializeSuite.hession_deserialize","thrpt",1,3,84709.108821,132894.355932,"ops/s",array,STRUCT,false
+"org.apache.fory.benchmark.UserTypeDeserializeSuite.hession_deserialize","thrpt",1,3,91050.370224,17939.461828,"ops/s",array,STRUCT,true
+"org.apache.fory.benchmark.UserTypeDeserializeSuite.hession_deserialize","thrpt",1,3,69758.767783,10886.276794,"ops/s",array,STRUCT2,false
+"org.apache.fory.benchmark.UserTypeDeserializeSuite.hession_deserialize","thrpt",1,3,68616.029248,13625.851120,"ops/s",array,STRUCT2,true
+"org.apache.fory.benchmark.UserTypeDeserializeSuite.hession_deserialize","thrpt",1,3,117806.916589,35449.535259,"ops/s",directBuffer,SAMPLE,false
+"org.apache.fory.benchmark.UserTypeDeserializeSuite.hession_deserialize","thrpt",1,3,121940.783597,54381.355274,"ops/s",directBuffer,SAMPLE,true
+"org.apache.fory.benchmark.UserTypeDeserializeSuite.hession_deserialize","thrpt",1,3,111067.942626,136178.034974,"ops/s",directBuffer,MEDIA_CONTENT,false
+"org.apache.fory.benchmark.UserTypeDeserializeSuite.hession_deserialize","thrpt",1,3,121820.821260,36972.450957,"ops/s",directBuffer,MEDIA_CONTENT,true
+"org.apache.fory.benchmark.UserTypeDeserializeSuite.hession_deserialize","thrpt",1,3,91151.633583,18401.579776,"ops/s",directBuffer,STRUCT,false
+"org.apache.fory.benchmark.UserTypeDeserializeSuite.hession_deserialize","thrpt",1,3,91037.205901,58868.732797,"ops/s",directBuffer,STRUCT,true
+"org.apache.fory.benchmark.UserTypeDeserializeSuite.hession_deserialize","thrpt",1,3,66866.108653,38522.707093,"ops/s",directBuffer,STRUCT2,false
+"org.apache.fory.benchmark.UserTypeDeserializeSuite.hession_deserialize","thrpt",1,3,65338.345185,56556.914062,"ops/s",directBuffer,STRUCT2,true
+"org.apache.fory.benchmark.UserTypeDeserializeSuite.hession_deserialize_compatible","thrpt",1,3,121898.105768,55415.594537,"ops/s",array,SAMPLE,false
+"org.apache.fory.benchmark.UserTypeDeserializeSuite.hession_deserialize_compatible","thrpt",1,3,121297.485903,33990.621079,"ops/s",array,SAMPLE,true
+"org.apache.fory.benchmark.UserTypeDeserializeSuite.hession_deserialize_compatible","thrpt",1,3,121619.090797,6094.683470,"ops/s",array,MEDIA_CONTENT,false
+"org.apache.fory.benchmark.UserTypeDeserializeSuite.hession_deserialize_compatible","thrpt",1,3,119994.104050,24538.128667,"ops/s",array,MEDIA_CONTENT,true
+"org.apache.fory.benchmark.UserTypeDeserializeSuite.hession_deserialize_compatible","thrpt",1,3,88617.486795,40076.835119,"ops/s",array,STRUCT,false
+"org.apache.fory.benchmark.UserTypeDeserializeSuite.hession_deserialize_compatible","thrpt",1,3,90206.654212,19313.248466,"ops/s",array,STRUCT,true
+"org.apache.fory.benchmark.UserTypeDeserializeSuite.hession_deserialize_compatible","thrpt",1,3,63703.763814,132184.298414,"ops/s",array,STRUCT2,false
+"org.apache.fory.benchmark.UserTypeDeserializeSuite.hession_deserialize_compatible","thrpt",1,3,69521.573119,8875.645591,"ops/s",array,STRUCT2,true
+"org.apache.fory.benchmark.UserTypeDeserializeSuite.hession_deserialize_compatible","thrpt",1,3,124044.417439,41135.181705,"ops/s",directBuffer,SAMPLE,false
+"org.apache.fory.benchmark.UserTypeDeserializeSuite.hession_deserialize_compatible","thrpt",1,3,120276.449497,87827.771405,"ops/s",directBuffer,SAMPLE,true
+"org.apache.fory.benchmark.UserTypeDeserializeSuite.hession_deserialize_compatible","thrpt",1,3,107594.474890,81084.454215,"ops/s",directBuffer,MEDIA_CONTENT,false
+"org.apache.fory.benchmark.UserTypeDeserializeSuite.hession_deserialize_compatible","thrpt",1,3,116531.023438,141591.979641,"ops/s",directBuffer,MEDIA_CONTENT,true
+"org.apache.fory.benchmark.UserTypeDeserializeSuite.hession_deserialize_compatible","thrpt",1,3,89580.561575,23464.095972,"ops/s",directBuffer,STRUCT,false
+"org.apache.fory.benchmark.UserTypeDeserializeSuite.hession_deserialize_compatible","thrpt",1,3,84407.472531,46007.731889,"ops/s",directBuffer,STRUCT,true
+"org.apache.fory.benchmark.UserTypeDeserializeSuite.hession_deserialize_compatible","thrpt",1,3,69342.030965,17706.784671,"ops/s",directBuffer,STRUCT2,false
+"org.apache.fory.benchmark.UserTypeDeserializeSuite.hession_deserialize_compatible","thrpt",1,3,68542.055543,31793.805138,"ops/s",directBuffer,STRUCT2,true
+"org.apache.fory.benchmark.UserTypeDeserializeSuite.jdk_deserialize","thrpt",1,3,29309.573998,765.998843,"ops/s",array,SAMPLE,false
+"org.apache.fory.benchmark.UserTypeDeserializeSuite.jdk_deserialize","thrpt",1,3,27466.003923,14896.452629,"ops/s",array,SAMPLE,true
+"org.apache.fory.benchmark.UserTypeDeserializeSuite.jdk_deserialize","thrpt",1,3,38536.250402,28217.590983,"ops/s",array,MEDIA_CONTENT,false
+"org.apache.fory.benchmark.UserTypeDeserializeSuite.jdk_deserialize","thrpt",1,3,38957.191090,23931.545367,"ops/s",array,MEDIA_CONTENT,true
+"org.apache.fory.benchmark.UserTypeDeserializeSuite.jdk_deserialize","thrpt",1,3,29603.066599,10373.666720,"ops/s",array,STRUCT,false
+"org.apache.fory.benchmark.UserTypeDeserializeSuite.jdk_deserialize","thrpt",1,3,29727.744196,15820.774882,"ops/s",array,STRUCT,true
+"org.apache.fory.benchmark.UserTypeDeserializeSuite.jdk_deserialize","thrpt",1,3,14888.805111,842.165916,"ops/s",array,STRUCT2,false
+"org.apache.fory.benchmark.UserTypeDeserializeSuite.jdk_deserialize","thrpt",1,3,14034.100664,13936.787605,"ops/s",array,STRUCT2,true
+"org.apache.fory.benchmark.UserTypeDeserializeSuite.jdk_deserialize","thrpt",1,3,28128.457935,5385.055284,"ops/s",directBuffer,SAMPLE,false
+"org.apache.fory.benchmark.UserTypeDeserializeSuite.jdk_deserialize","thrpt",1,3,28221.014735,15281.277719,"ops/s",directBuffer,SAMPLE,true
+"org.apache.fory.benchmark.UserTypeDeserializeSuite.jdk_deserialize","thrpt",1,3,40512.632076,8592.454839,"ops/s",directBuffer,MEDIA_CONTENT,false
+"org.apache.fory.benchmark.UserTypeDeserializeSuite.jdk_deserialize","thrpt",1,3,37030.594632,9683.316145,"ops/s",directBuffer,MEDIA_CONTENT,true
+"org.apache.fory.benchmark.UserTypeDeserializeSuite.jdk_deserialize","thrpt",1,3,28717.004518,17023.663871,"ops/s",directBuffer,STRUCT,false
+"org.apache.fory.benchmark.UserTypeDeserializeSuite.jdk_deserialize","thrpt",1,3,29549.998286,13823.854047,"ops/s",directBuffer,STRUCT,true
+"org.apache.fory.benchmark.UserTypeDeserializeSuite.jdk_deserialize","thrpt",1,3,14652.043788,2419.900104,"ops/s",directBuffer,STRUCT2,false
+"org.apache.fory.benchmark.UserTypeDeserializeSuite.jdk_deserialize","thrpt",1,3,14425.886048,8723.095052,"ops/s",directBuffer,STRUCT2,true
+"org.apache.fory.benchmark.UserTypeDeserializeSuite.kryo_deserialize","thrpt",1,3,979173.981159,178146.966897,"ops/s",array,SAMPLE,false
+"org.apache.fory.benchmark.UserTypeDeserializeSuite.kryo_deserialize","thrpt",1,3,716438.884369,623966.984928,"ops/s",array,SAMPLE,true
+"org.apache.fory.benchmark.UserTypeDeserializeSuite.kryo_deserialize","thrpt",1,3,577631.234369,221011.018380,"ops/s",array,MEDIA_CONTENT,false
+"org.apache.fory.benchmark.UserTypeDeserializeSuite.kryo_deserialize","thrpt",1,3,365530.417232,214946.853015,"ops/s",array,MEDIA_CONTENT,true
+"org.apache.fory.benchmark.UserTypeDeserializeSuite.kryo_deserialize","thrpt",1,3,607750.343557,99638.164976,"ops/s",array,STRUCT,false
+"org.apache.fory.benchmark.UserTypeDeserializeSuite.kryo_deserialize","thrpt",1,3,552802.227807,126286.013177,"ops/s",array,STRUCT,true
+"org.apache.fory.benchmark.UserTypeDeserializeSuite.kryo_deserialize","thrpt",1,3,275984.042401,9405.143983,"ops/s",array,STRUCT2,false
+"org.apache.fory.benchmark.UserTypeDeserializeSuite.kryo_deserialize","thrpt",1,3,222710.554833,45168.519253,"ops/s",array,STRUCT2,true
+"org.apache.fory.benchmark.UserTypeDeserializeSuite.kryo_deserialize","thrpt",1,3,983538.936801,1112062.949472,"ops/s",directBuffer,SAMPLE,false
+"org.apache.fory.benchmark.UserTypeDeserializeSuite.kryo_deserialize","thrpt",1,3,762889.302732,279678.610328,"ops/s",directBuffer,SAMPLE,true
+"org.apache.fory.benchmark.UserTypeDeserializeSuite.kryo_deserialize","thrpt",1,3,389473.174523,43058.395501,"ops/s",directBuffer,MEDIA_CONTENT,false
+"org.apache.fory.benchmark.UserTypeDeserializeSuite.kryo_deserialize","thrpt",1,3,306995.220799,57411.579647,"ops/s",directBuffer,MEDIA_CONTENT,true
+"org.apache.fory.benchmark.UserTypeDeserializeSuite.kryo_deserialize","thrpt",1,3,910534.169114,1888677.766640,"ops/s",directBuffer,STRUCT,false
+"org.apache.fory.benchmark.UserTypeDeserializeSuite.kryo_deserialize","thrpt",1,3,914404.107564,357717.816934,"ops/s",directBuffer,STRUCT,true
+"org.apache.fory.benchmark.UserTypeDeserializeSuite.kryo_deserialize","thrpt",1,3,319247.256793,217674.935649,"ops/s",directBuffer,STRUCT2,false
+"org.apache.fory.benchmark.UserTypeDeserializeSuite.kryo_deserialize","thrpt",1,3,249105.828416,131690.474985,"ops/s",directBuffer,STRUCT2,true
+"org.apache.fory.benchmark.UserTypeDeserializeSuite.kryo_deserialize_compatible","thrpt",1,3,255086.928308,23672.392381,"ops/s",array,SAMPLE,false
+"org.apache.fory.benchmark.UserTypeDeserializeSuite.kryo_deserialize_compatible","thrpt",1,3,238811.995510,18059.118666,"ops/s",array,SAMPLE,true
+"org.apache.fory.benchmark.UserTypeDeserializeSuite.kryo_deserialize_compatible","thrpt",1,3,180882.860363,69339.581545,"ops/s",array,MEDIA_CONTENT,false
+"org.apache.fory.benchmark.UserTypeDeserializeSuite.kryo_deserialize_compatible","thrpt",1,3,154311.211540,23065.912064,"ops/s",array,MEDIA_CONTENT,true
+"org.apache.fory.benchmark.UserTypeDeserializeSuite.kryo_deserialize_compatible","thrpt",1,3,78771.635309,45155.641241,"ops/s",array,STRUCT,false
+"org.apache.fory.benchmark.UserTypeDeserializeSuite.kryo_deserialize_compatible","thrpt",1,3,72805.937649,16849.888437,"ops/s",array,STRUCT,true
+"org.apache.fory.benchmark.UserTypeDeserializeSuite.kryo_deserialize_compatible","thrpt",1,3,60602.285743,61404.274046,"ops/s",array,STRUCT2,false
+"org.apache.fory.benchmark.UserTypeDeserializeSuite.kryo_deserialize_compatible","thrpt",1,3,62729.908347,32805.651539,"ops/s",array,STRUCT2,true
+"org.apache.fory.benchmark.UserTypeDeserializeSuite.kryo_deserialize_compatible","thrpt",1,3,201993.787890,41567.224827,"ops/s",directBuffer,SAMPLE,false
+"org.apache.fory.benchmark.UserTypeDeserializeSuite.kryo_deserialize_compatible","thrpt",1,3,174534.710870,96357.498949,"ops/s",directBuffer,SAMPLE,true
+"org.apache.fory.benchmark.UserTypeDeserializeSuite.kryo_deserialize_compatible","thrpt",1,3,134485.160300,104898.991148,"ops/s",directBuffer,MEDIA_CONTENT,false
+"org.apache.fory.benchmark.UserTypeDeserializeSuite.kryo_deserialize_compatible","thrpt",1,3,119311.787329,66580.856795,"ops/s",directBuffer,MEDIA_CONTENT,true
+"org.apache.fory.benchmark.UserTypeDeserializeSuite.kryo_deserialize_compatible","thrpt",1,3,58574.904225,140682.248378,"ops/s",directBuffer,STRUCT,false
+"org.apache.fory.benchmark.UserTypeDeserializeSuite.kryo_deserialize_compatible","thrpt",1,3,60685.320299,24159.853451,"ops/s",directBuffer,STRUCT,true
+"org.apache.fory.benchmark.UserTypeDeserializeSuite.kryo_deserialize_compatible","thrpt",1,3,54637.329134,14011.283798,"ops/s",directBuffer,STRUCT2,false
+"org.apache.fory.benchmark.UserTypeDeserializeSuite.kryo_deserialize_compatible","thrpt",1,3,51761.569591,61030.640534,"ops/s",directBuffer,STRUCT2,true
+"org.apache.fory.benchmark.UserTypeDeserializeSuite.protostuff_deserialize","thrpt",1,3,619338.385412,275705.847169,"ops/s",array,SAMPLE,false
+"org.apache.fory.benchmark.UserTypeDeserializeSuite.protostuff_deserialize","thrpt",1,3,951662.019963,165160.853007,"ops/s",array,MEDIA_CONTENT,false
+"org.apache.fory.benchmark.UserTypeDeserializeSuite.protostuff_deserialize","thrpt",1,3,517381.168594,313746.662696,"ops/s",array,STRUCT,false
+"org.apache.fory.benchmark.UserTypeDeserializeSuite.protostuff_deserialize","thrpt",1,3,416212.973861,119393.345217,"ops/s",array,STRUCT2,false
+"org.apache.fory.benchmark.UserTypeDeserializeSuite.protostuff_deserialize","thrpt",1,3,624804.978534,147685.682690,"ops/s",directBuffer,SAMPLE,false
+"org.apache.fory.benchmark.UserTypeDeserializeSuite.protostuff_deserialize","thrpt",1,3,964664.641598,218386.902856,"ops/s",directBuffer,MEDIA_CONTENT,false
+"org.apache.fory.benchmark.UserTypeDeserializeSuite.protostuff_deserialize","thrpt",1,3,538922.947147,59168.303230,"ops/s",directBuffer,STRUCT,false
+"org.apache.fory.benchmark.UserTypeDeserializeSuite.protostuff_deserialize","thrpt",1,3,425523.315814,179264.359952,"ops/s",directBuffer,STRUCT2,false
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/benchmarks/object-serialization/native/java/data/jmh-jdk-11-serialization.csv b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/benchmarks/object-serialization/native/java/data/jmh-jdk-11-serialization.csv
new file mode 100644
index 0000000000..2e985751a7
--- /dev/null
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/benchmarks/object-serialization/native/java/data/jmh-jdk-11-serialization.csv
@@ -0,0 +1,153 @@
+"Benchmark","Mode","Threads","Samples","Score","Score Error (99.9%)","Unit","Param: bufferType","Param: objectType","Param: references"
+"org.apache.fory.benchmark.UserTypeSerializeSuite.fst_serialize","thrpt",1,3,915907.574306,87627.907529,"ops/s",array,SAMPLE,false
+"org.apache.fory.benchmark.UserTypeSerializeSuite.fst_serialize","thrpt",1,3,731869.156376,37845.555465,"ops/s",array,SAMPLE,true
+"org.apache.fory.benchmark.UserTypeSerializeSuite.fst_serialize","thrpt",1,3,751892.023189,174327.010719,"ops/s",array,MEDIA_CONTENT,false
+"org.apache.fory.benchmark.UserTypeSerializeSuite.fst_serialize","thrpt",1,3,583859.907758,320047.618377,"ops/s",array,MEDIA_CONTENT,true
+"org.apache.fory.benchmark.UserTypeSerializeSuite.fst_serialize","thrpt",1,3,882178.995727,294884.724923,"ops/s",array,STRUCT,false
+"org.apache.fory.benchmark.UserTypeSerializeSuite.fst_serialize","thrpt",1,3,757753.756691,605180.489112,"ops/s",array,STRUCT,true
+"org.apache.fory.benchmark.UserTypeSerializeSuite.fst_serialize","thrpt",1,3,371762.982661,80513.482138,"ops/s",array,STRUCT2,false
+"org.apache.fory.benchmark.UserTypeSerializeSuite.fst_serialize","thrpt",1,3,380638.700267,101974.434105,"ops/s",array,STRUCT2,true
+"org.apache.fory.benchmark.UserTypeSerializeSuite.fst_serialize","thrpt",1,3,902302.261168,474054.277143,"ops/s",directBuffer,SAMPLE,false
+"org.apache.fory.benchmark.UserTypeSerializeSuite.fst_serialize","thrpt",1,3,723614.066770,77429.645491,"ops/s",directBuffer,SAMPLE,true
+"org.apache.fory.benchmark.UserTypeSerializeSuite.fst_serialize","thrpt",1,3,728001.080250,75699.111305,"ops/s",directBuffer,MEDIA_CONTENT,false
+"org.apache.fory.benchmark.UserTypeSerializeSuite.fst_serialize","thrpt",1,3,595679.580108,117269.848918,"ops/s",directBuffer,MEDIA_CONTENT,true
+"org.apache.fory.benchmark.UserTypeSerializeSuite.fst_serialize","thrpt",1,3,807847.663261,67842.801069,"ops/s",directBuffer,STRUCT,false
+"org.apache.fory.benchmark.UserTypeSerializeSuite.fst_serialize","thrpt",1,3,762088.935404,575559.070335,"ops/s",directBuffer,STRUCT,true
+"org.apache.fory.benchmark.UserTypeSerializeSuite.fst_serialize","thrpt",1,3,365317.705376,138313.634773,"ops/s",directBuffer,STRUCT2,false
+"org.apache.fory.benchmark.UserTypeSerializeSuite.fst_serialize","thrpt",1,3,370851.880711,66834.323719,"ops/s",directBuffer,STRUCT2,true
+"org.apache.fory.benchmark.UserTypeSerializeSuite.fory_serialize","thrpt",1,3,3570966.469087,152949.902180,"ops/s",array,SAMPLE,false
+"org.apache.fory.benchmark.UserTypeSerializeSuite.fory_serialize","thrpt",1,3,1767693.835090,263146.035836,"ops/s",array,SAMPLE,true
+"org.apache.fory.benchmark.UserTypeSerializeSuite.fory_serialize","thrpt",1,3,3031642.924542,567213.986117,"ops/s",array,MEDIA_CONTENT,false
+"org.apache.fory.benchmark.UserTypeSerializeSuite.fory_serialize","thrpt",1,3,2250384.600246,529709.299207,"ops/s",array,MEDIA_CONTENT,true
+"org.apache.fory.benchmark.UserTypeSerializeSuite.fory_serialize","thrpt",1,3,7501415.567260,6672023.542025,"ops/s",array,STRUCT,false
+"org.apache.fory.benchmark.UserTypeSerializeSuite.fory_serialize","thrpt",1,3,6264439.154428,976363.317001,"ops/s",array,STRUCT,true
+"org.apache.fory.benchmark.UserTypeSerializeSuite.fory_serialize","thrpt",1,3,3586126.623874,1966282.728305,"ops/s",array,STRUCT2,false
+"org.apache.fory.benchmark.UserTypeSerializeSuite.fory_serialize","thrpt",1,3,3306474.506382,869558.338568,"ops/s",array,STRUCT2,true
+"org.apache.fory.benchmark.UserTypeSerializeSuite.fory_serialize","thrpt",1,3,3684487.760591,882227.920611,"ops/s",directBuffer,SAMPLE,false
+"org.apache.fory.benchmark.UserTypeSerializeSuite.fory_serialize","thrpt",1,3,1826456.709478,1377648.673630,"ops/s",directBuffer,SAMPLE,true
+"org.apache.fory.benchmark.UserTypeSerializeSuite.fory_serialize","thrpt",1,3,2479862.129632,1498299.302699,"ops/s",directBuffer,MEDIA_CONTENT,false
+"org.apache.fory.benchmark.UserTypeSerializeSuite.fory_serialize","thrpt",1,3,1938527.588331,148125.034055,"ops/s",directBuffer,MEDIA_CONTENT,true
+"org.apache.fory.benchmark.UserTypeSerializeSuite.fory_serialize","thrpt",1,3,9834223.243204,5284494.290641,"ops/s",directBuffer,STRUCT,false
+"org.apache.fory.benchmark.UserTypeSerializeSuite.fory_serialize","thrpt",1,3,7551780.823133,744016.111639,"ops/s",directBuffer,STRUCT,true
+"org.apache.fory.benchmark.UserTypeSerializeSuite.fory_serialize","thrpt",1,3,2643155.135327,200764.008652,"ops/s",directBuffer,STRUCT2,false
+"org.apache.fory.benchmark.UserTypeSerializeSuite.fory_serialize","thrpt",1,3,2391110.083108,2608567.411194,"ops/s",directBuffer,STRUCT2,true
+"org.apache.fory.benchmark.UserTypeSerializeSuite.fory_serialize_compatible","thrpt",1,3,3604596.465625,1232634.245435,"ops/s",array,SAMPLE,false
+"org.apache.fory.benchmark.UserTypeSerializeSuite.fory_serialize_compatible","thrpt",1,3,1619648.337293,212055.067245,"ops/s",array,SAMPLE,true
+"org.apache.fory.benchmark.UserTypeSerializeSuite.fory_serialize_compatible","thrpt",1,3,1679272.036223,788041.322785,"ops/s",array,MEDIA_CONTENT,false
+"org.apache.fory.benchmark.UserTypeSerializeSuite.fory_serialize_compatible","thrpt",1,3,1406736.538716,263608.222325,"ops/s",array,MEDIA_CONTENT,true
+"org.apache.fory.benchmark.UserTypeSerializeSuite.fory_serialize_compatible","thrpt",1,3,3530406.108869,3125642.741982,"ops/s",array,STRUCT,false
+"org.apache.fory.benchmark.UserTypeSerializeSuite.fory_serialize_compatible","thrpt",1,3,3293059.098127,96940.669016,"ops/s",array,STRUCT,true
+"org.apache.fory.benchmark.UserTypeSerializeSuite.fory_serialize_compatible","thrpt",1,3,2773368.997680,503239.905176,"ops/s",array,STRUCT2,false
+"org.apache.fory.benchmark.UserTypeSerializeSuite.fory_serialize_compatible","thrpt",1,3,2564174.550276,978139.792610,"ops/s",array,STRUCT2,true
+"org.apache.fory.benchmark.UserTypeSerializeSuite.fory_serialize_compatible","thrpt",1,3,3484533.218305,476583.192148,"ops/s",directBuffer,SAMPLE,false
+"org.apache.fory.benchmark.UserTypeSerializeSuite.fory_serialize_compatible","thrpt",1,3,1730822.630648,410016.597939,"ops/s",directBuffer,SAMPLE,true
+"org.apache.fory.benchmark.UserTypeSerializeSuite.fory_serialize_compatible","thrpt",1,3,1710680.937387,307207.222026,"ops/s",directBuffer,MEDIA_CONTENT,false
+"org.apache.fory.benchmark.UserTypeSerializeSuite.fory_serialize_compatible","thrpt",1,3,1149999.473994,140915.968294,"ops/s",directBuffer,MEDIA_CONTENT,true
+"org.apache.fory.benchmark.UserTypeSerializeSuite.fory_serialize_compatible","thrpt",1,3,2653169.568374,535312.987476,"ops/s",directBuffer,STRUCT,false
+"org.apache.fory.benchmark.UserTypeSerializeSuite.fory_serialize_compatible","thrpt",1,3,2393817.762938,380997.375838,"ops/s",directBuffer,STRUCT,true
+"org.apache.fory.benchmark.UserTypeSerializeSuite.fory_serialize_compatible","thrpt",1,3,1912402.937879,284090.793301,"ops/s",directBuffer,STRUCT2,false
+"org.apache.fory.benchmark.UserTypeSerializeSuite.fory_serialize_compatible","thrpt",1,3,1848338.968058,108311.846780,"ops/s",directBuffer,STRUCT2,true
+"org.apache.fory.benchmark.UserTypeSerializeSuite.forymetashared_serialize_compatible","thrpt",1,3,4409055.687063,112740.443049,"ops/s",array,SAMPLE,false
+"org.apache.fory.benchmark.UserTypeSerializeSuite.forymetashared_serialize_compatible","thrpt",1,3,1840705.439334,516764.580627,"ops/s",array,SAMPLE,true
+"org.apache.fory.benchmark.UserTypeSerializeSuite.forymetashared_serialize_compatible","thrpt",1,3,2992288.235281,867622.163323,"ops/s",array,MEDIA_CONTENT,false
+"org.apache.fory.benchmark.UserTypeSerializeSuite.forymetashared_serialize_compatible","thrpt",1,3,2058738.716953,2388681.798594,"ops/s",array,MEDIA_CONTENT,true
+"org.apache.fory.benchmark.UserTypeSerializeSuite.forymetashared_serialize_compatible","thrpt",1,3,9204444.777172,1526628.258403,"ops/s",array,STRUCT,false
+"org.apache.fory.benchmark.UserTypeSerializeSuite.forymetashared_serialize_compatible","thrpt",1,3,7064625.291374,2655795.498346,"ops/s",array,STRUCT,true
+"org.apache.fory.benchmark.UserTypeSerializeSuite.forymetashared_serialize_compatible","thrpt",1,3,2575824.143864,2216634.295140,"ops/s",array,STRUCT2,false
+"org.apache.fory.benchmark.UserTypeSerializeSuite.forymetashared_serialize_compatible","thrpt",1,3,3543082.528217,393858.603613,"ops/s",array,STRUCT2,true
+"org.apache.fory.benchmark.UserTypeSerializeSuite.forymetashared_serialize_compatible","thrpt",1,3,5043538.364886,2797987.191909,"ops/s",directBuffer,SAMPLE,false
+"org.apache.fory.benchmark.UserTypeSerializeSuite.forymetashared_serialize_compatible","thrpt",1,3,1859289.705838,366893.710607,"ops/s",directBuffer,SAMPLE,true
+"org.apache.fory.benchmark.UserTypeSerializeSuite.forymetashared_serialize_compatible","thrpt",1,3,2291443.556971,3167882.958411,"ops/s",directBuffer,MEDIA_CONTENT,false
+"org.apache.fory.benchmark.UserTypeSerializeSuite.forymetashared_serialize_compatible","thrpt",1,3,1804349.244125,481995.792041,"ops/s",directBuffer,MEDIA_CONTENT,true
+"org.apache.fory.benchmark.UserTypeSerializeSuite.forymetashared_serialize_compatible","thrpt",1,3,11650229.648715,1101289.207239,"ops/s",directBuffer,STRUCT,false
+"org.apache.fory.benchmark.UserTypeSerializeSuite.forymetashared_serialize_compatible","thrpt",1,3,8702412.752357,1116617.972427,"ops/s",directBuffer,STRUCT,true
+"org.apache.fory.benchmark.UserTypeSerializeSuite.forymetashared_serialize_compatible","thrpt",1,3,2714748.572248,284462.787825,"ops/s",directBuffer,STRUCT2,false
+"org.apache.fory.benchmark.UserTypeSerializeSuite.forymetashared_serialize_compatible","thrpt",1,3,1866073.031851,1521156.537508,"ops/s",directBuffer,STRUCT2,true
+"org.apache.fory.benchmark.UserTypeSerializeSuite.hession_serialize","thrpt",1,3,220386.502846,60892.430853,"ops/s",array,SAMPLE,false
+"org.apache.fory.benchmark.UserTypeSerializeSuite.hession_serialize","thrpt",1,3,192414.014211,34217.359956,"ops/s",array,SAMPLE,true
+"org.apache.fory.benchmark.UserTypeSerializeSuite.hession_serialize","thrpt",1,3,367782.358049,54538.846197,"ops/s",array,MEDIA_CONTENT,false
+"org.apache.fory.benchmark.UserTypeSerializeSuite.hession_serialize","thrpt",1,3,329427.470680,530871.650379,"ops/s",array,MEDIA_CONTENT,true
+"org.apache.fory.benchmark.UserTypeSerializeSuite.hession_serialize","thrpt",1,3,258233.998931,145299.453488,"ops/s",array,STRUCT,false
+"org.apache.fory.benchmark.UserTypeSerializeSuite.hession_serialize","thrpt",1,3,260845.209485,90601.426407,"ops/s",array,STRUCT,true
+"org.apache.fory.benchmark.UserTypeSerializeSuite.hession_serialize","thrpt",1,3,56056.080075,3919.171009,"ops/s",array,STRUCT2,false
+"org.apache.fory.benchmark.UserTypeSerializeSuite.hession_serialize","thrpt",1,3,60038.879790,6808.083631,"ops/s",array,STRUCT2,true
+"org.apache.fory.benchmark.UserTypeSerializeSuite.hession_serialize","thrpt",1,3,220981.308085,153633.380796,"ops/s",directBuffer,SAMPLE,false
+"org.apache.fory.benchmark.UserTypeSerializeSuite.hession_serialize","thrpt",1,3,211949.960255,231322.136517,"ops/s",directBuffer,SAMPLE,true
+"org.apache.fory.benchmark.UserTypeSerializeSuite.hession_serialize","thrpt",1,3,372477.138150,39349.725456,"ops/s",directBuffer,MEDIA_CONTENT,false
+"org.apache.fory.benchmark.UserTypeSerializeSuite.hession_serialize","thrpt",1,3,353376.085025,11334.885856,"ops/s",directBuffer,MEDIA_CONTENT,true
+"org.apache.fory.benchmark.UserTypeSerializeSuite.hession_serialize","thrpt",1,3,266481.009225,113518.076189,"ops/s",directBuffer,STRUCT,false
+"org.apache.fory.benchmark.UserTypeSerializeSuite.hession_serialize","thrpt",1,3,261762.594966,64652.028148,"ops/s",directBuffer,STRUCT,true
+"org.apache.fory.benchmark.UserTypeSerializeSuite.hession_serialize","thrpt",1,3,55924.319442,28173.043405,"ops/s",directBuffer,STRUCT2,false
+"org.apache.fory.benchmark.UserTypeSerializeSuite.hession_serialize","thrpt",1,3,56674.065604,2667.957614,"ops/s",directBuffer,STRUCT2,true
+"org.apache.fory.benchmark.UserTypeSerializeSuite.hession_serialize_compatible","thrpt",1,3,234454.975158,5232.236462,"ops/s",array,SAMPLE,false
+"org.apache.fory.benchmark.UserTypeSerializeSuite.hession_serialize_compatible","thrpt",1,3,206174.173039,54217.176504,"ops/s",array,SAMPLE,true
+"org.apache.fory.benchmark.UserTypeSerializeSuite.hession_serialize_compatible","thrpt",1,3,377195.903772,33297.468886,"ops/s",array,MEDIA_CONTENT,false
+"org.apache.fory.benchmark.UserTypeSerializeSuite.hession_serialize_compatible","thrpt",1,3,351657.879556,10762.766962,"ops/s",array,MEDIA_CONTENT,true
+"org.apache.fory.benchmark.UserTypeSerializeSuite.hession_serialize_compatible","thrpt",1,3,258650.663523,64158.329095,"ops/s",array,STRUCT,false
+"org.apache.fory.benchmark.UserTypeSerializeSuite.hession_serialize_compatible","thrpt",1,3,263564.913879,101476.568014,"ops/s",array,STRUCT,true
+"org.apache.fory.benchmark.UserTypeSerializeSuite.hession_serialize_compatible","thrpt",1,3,58509.125342,10836.872797,"ops/s",array,STRUCT2,false
+"org.apache.fory.benchmark.UserTypeSerializeSuite.hession_serialize_compatible","thrpt",1,3,55552.977735,37802.538138,"ops/s",array,STRUCT2,true
+"org.apache.fory.benchmark.UserTypeSerializeSuite.hession_serialize_compatible","thrpt",1,3,194761.224263,8828.274695,"ops/s",directBuffer,SAMPLE,false
+"org.apache.fory.benchmark.UserTypeSerializeSuite.hession_serialize_compatible","thrpt",1,3,212840.483308,50730.019909,"ops/s",directBuffer,SAMPLE,true
+"org.apache.fory.benchmark.UserTypeSerializeSuite.hession_serialize_compatible","thrpt",1,3,371729.727192,136063.629978,"ops/s",directBuffer,MEDIA_CONTENT,false
+"org.apache.fory.benchmark.UserTypeSerializeSuite.hession_serialize_compatible","thrpt",1,3,343834.954942,13355.085558,"ops/s",directBuffer,MEDIA_CONTENT,true
+"org.apache.fory.benchmark.UserTypeSerializeSuite.hession_serialize_compatible","thrpt",1,3,249221.452137,261034.656030,"ops/s",directBuffer,STRUCT,false
+"org.apache.fory.benchmark.UserTypeSerializeSuite.hession_serialize_compatible","thrpt",1,3,263623.143601,32854.227410,"ops/s",directBuffer,STRUCT,true
+"org.apache.fory.benchmark.UserTypeSerializeSuite.hession_serialize_compatible","thrpt",1,3,58908.567439,4137.470432,"ops/s",directBuffer,STRUCT2,false
+"org.apache.fory.benchmark.UserTypeSerializeSuite.hession_serialize_compatible","thrpt",1,3,55524.373547,668.406873,"ops/s",directBuffer,STRUCT2,true
+"org.apache.fory.benchmark.UserTypeSerializeSuite.jdk_serialize","thrpt",1,3,118374.836631,34704.407553,"ops/s",array,SAMPLE,false
+"org.apache.fory.benchmark.UserTypeSerializeSuite.jdk_serialize","thrpt",1,3,119858.140625,49308.850176,"ops/s",array,SAMPLE,true
+"org.apache.fory.benchmark.UserTypeSerializeSuite.jdk_serialize","thrpt",1,3,137989.198821,40017.148924,"ops/s",array,MEDIA_CONTENT,false
+"org.apache.fory.benchmark.UserTypeSerializeSuite.jdk_serialize","thrpt",1,3,140260.668888,57308.595910,"ops/s",array,MEDIA_CONTENT,true
+"org.apache.fory.benchmark.UserTypeSerializeSuite.jdk_serialize","thrpt",1,3,155908.244240,20385.278504,"ops/s",array,STRUCT,false
+"org.apache.fory.benchmark.UserTypeSerializeSuite.jdk_serialize","thrpt",1,3,151258.539369,12676.385578,"ops/s",array,STRUCT,true
+"org.apache.fory.benchmark.UserTypeSerializeSuite.jdk_serialize","thrpt",1,3,36846.049162,5491.880967,"ops/s",array,STRUCT2,false
+"org.apache.fory.benchmark.UserTypeSerializeSuite.jdk_serialize","thrpt",1,3,38183.705811,14778.659439,"ops/s",array,STRUCT2,true
+"org.apache.fory.benchmark.UserTypeSerializeSuite.jdk_serialize","thrpt",1,3,118273.584257,18950.629048,"ops/s",directBuffer,SAMPLE,false
+"org.apache.fory.benchmark.UserTypeSerializeSuite.jdk_serialize","thrpt",1,3,108263.040839,14982.910444,"ops/s",directBuffer,SAMPLE,true
+"org.apache.fory.benchmark.UserTypeSerializeSuite.jdk_serialize","thrpt",1,3,138567.623369,24365.255940,"ops/s",directBuffer,MEDIA_CONTENT,false
+"org.apache.fory.benchmark.UserTypeSerializeSuite.jdk_serialize","thrpt",1,3,140158.673910,54416.908878,"ops/s",directBuffer,MEDIA_CONTENT,true
+"org.apache.fory.benchmark.UserTypeSerializeSuite.jdk_serialize","thrpt",1,3,154875.908438,11984.781345,"ops/s",directBuffer,STRUCT,false
+"org.apache.fory.benchmark.UserTypeSerializeSuite.jdk_serialize","thrpt",1,3,156404.686214,58131.602098,"ops/s",directBuffer,STRUCT,true
+"org.apache.fory.benchmark.UserTypeSerializeSuite.jdk_serialize","thrpt",1,3,37444.967981,14948.012339,"ops/s",directBuffer,STRUCT2,false
+"org.apache.fory.benchmark.UserTypeSerializeSuite.jdk_serialize","thrpt",1,3,35798.679246,36641.428549,"ops/s",directBuffer,STRUCT2,true
+"org.apache.fory.benchmark.UserTypeSerializeSuite.kryo_serialize","thrpt",1,3,1105365.931217,162251.803619,"ops/s",array,SAMPLE,false
+"org.apache.fory.benchmark.UserTypeSerializeSuite.kryo_serialize","thrpt",1,3,734215.482291,79297.387490,"ops/s",array,SAMPLE,true
+"org.apache.fory.benchmark.UserTypeSerializeSuite.kryo_serialize","thrpt",1,3,730792.521676,678674.266715,"ops/s",array,MEDIA_CONTENT,false
+"org.apache.fory.benchmark.UserTypeSerializeSuite.kryo_serialize","thrpt",1,3,445251.084327,85646.179264,"ops/s",array,MEDIA_CONTENT,true
+"org.apache.fory.benchmark.UserTypeSerializeSuite.kryo_serialize","thrpt",1,3,558194.100861,257156.321315,"ops/s",array,STRUCT,false
+"org.apache.fory.benchmark.UserTypeSerializeSuite.kryo_serialize","thrpt",1,3,557542.628765,63084.390134,"ops/s",array,STRUCT,true
+"org.apache.fory.benchmark.UserTypeSerializeSuite.kryo_serialize","thrpt",1,3,325172.969175,20774.334333,"ops/s",array,STRUCT2,false
+"org.apache.fory.benchmark.UserTypeSerializeSuite.kryo_serialize","thrpt",1,3,259863.332448,86373.633851,"ops/s",array,STRUCT2,true
+"org.apache.fory.benchmark.UserTypeSerializeSuite.kryo_serialize","thrpt",1,3,1376560.302168,147424.342310,"ops/s",directBuffer,SAMPLE,false
+"org.apache.fory.benchmark.UserTypeSerializeSuite.kryo_serialize","thrpt",1,3,932887.968348,249800.928765,"ops/s",directBuffer,SAMPLE,true
+"org.apache.fory.benchmark.UserTypeSerializeSuite.kryo_serialize","thrpt",1,3,608972.517580,249598.971835,"ops/s",directBuffer,MEDIA_CONTENT,false
+"org.apache.fory.benchmark.UserTypeSerializeSuite.kryo_serialize","thrpt",1,3,359875.473951,274870.064607,"ops/s",directBuffer,MEDIA_CONTENT,true
+"org.apache.fory.benchmark.UserTypeSerializeSuite.kryo_serialize","thrpt",1,3,1078046.011115,249527.480472,"ops/s",directBuffer,STRUCT,false
+"org.apache.fory.benchmark.UserTypeSerializeSuite.kryo_serialize","thrpt",1,3,853350.408656,126642.692106,"ops/s",directBuffer,STRUCT,true
+"org.apache.fory.benchmark.UserTypeSerializeSuite.kryo_serialize","thrpt",1,3,355688.882786,37587.645927,"ops/s",directBuffer,STRUCT2,false
+"org.apache.fory.benchmark.UserTypeSerializeSuite.kryo_serialize","thrpt",1,3,338960.426033,36185.446014,"ops/s",directBuffer,STRUCT2,true
+"org.apache.fory.benchmark.UserTypeSerializeSuite.kryo_serialize_compatible","thrpt",1,3,378907.663184,280309.649766,"ops/s",array,SAMPLE,false
+"org.apache.fory.benchmark.UserTypeSerializeSuite.kryo_serialize_compatible","thrpt",1,3,320815.567701,455179.720989,"ops/s",array,SAMPLE,true
+"org.apache.fory.benchmark.UserTypeSerializeSuite.kryo_serialize_compatible","thrpt",1,3,188911.259146,97827.317807,"ops/s",array,MEDIA_CONTENT,false
+"org.apache.fory.benchmark.UserTypeSerializeSuite.kryo_serialize_compatible","thrpt",1,3,145782.916427,81270.905462,"ops/s",array,MEDIA_CONTENT,true
+"org.apache.fory.benchmark.UserTypeSerializeSuite.kryo_serialize_compatible","thrpt",1,3,145964.199559,88578.667153,"ops/s",array,STRUCT,false
+"org.apache.fory.benchmark.UserTypeSerializeSuite.kryo_serialize_compatible","thrpt",1,3,136180.832879,167433.069232,"ops/s",array,STRUCT,true
+"org.apache.fory.benchmark.UserTypeSerializeSuite.kryo_serialize_compatible","thrpt",1,3,125807.748004,23178.451287,"ops/s",array,STRUCT2,false
+"org.apache.fory.benchmark.UserTypeSerializeSuite.kryo_serialize_compatible","thrpt",1,3,114983.546343,7341.380140,"ops/s",array,STRUCT2,true
+"org.apache.fory.benchmark.UserTypeSerializeSuite.kryo_serialize_compatible","thrpt",1,3,296102.615094,18485.738321,"ops/s",directBuffer,SAMPLE,false
+"org.apache.fory.benchmark.UserTypeSerializeSuite.kryo_serialize_compatible","thrpt",1,3,276757.392449,61173.636852,"ops/s",directBuffer,SAMPLE,true
+"org.apache.fory.benchmark.UserTypeSerializeSuite.kryo_serialize_compatible","thrpt",1,3,185363.714829,121440.885632,"ops/s",directBuffer,MEDIA_CONTENT,false
+"org.apache.fory.benchmark.UserTypeSerializeSuite.kryo_serialize_compatible","thrpt",1,3,142836.961878,12450.918452,"ops/s",directBuffer,MEDIA_CONTENT,true
+"org.apache.fory.benchmark.UserTypeSerializeSuite.kryo_serialize_compatible","thrpt",1,3,106695.800225,13463.570576,"ops/s",directBuffer,STRUCT,false
+"org.apache.fory.benchmark.UserTypeSerializeSuite.kryo_serialize_compatible","thrpt",1,3,106458.212005,2994.065295,"ops/s",directBuffer,STRUCT,true
+"org.apache.fory.benchmark.UserTypeSerializeSuite.kryo_serialize_compatible","thrpt",1,3,92130.672361,9515.661170,"ops/s",directBuffer,STRUCT2,false
+"org.apache.fory.benchmark.UserTypeSerializeSuite.kryo_serialize_compatible","thrpt",1,3,88989.724768,9379.338279,"ops/s",directBuffer,STRUCT2,true
+"org.apache.fory.benchmark.UserTypeSerializeSuite.protostuff_serialize","thrpt",1,3,663272.710783,522116.492895,"ops/s",array,SAMPLE,false
+"org.apache.fory.benchmark.UserTypeSerializeSuite.protostuff_serialize","thrpt",1,3,780618.761219,406063.945348,"ops/s",array,MEDIA_CONTENT,false
+"org.apache.fory.benchmark.UserTypeSerializeSuite.protostuff_serialize","thrpt",1,3,330975.350403,196475.862643,"ops/s",array,STRUCT,false
+"org.apache.fory.benchmark.UserTypeSerializeSuite.protostuff_serialize","thrpt",1,3,322563.440433,201276.713653,"ops/s",array,STRUCT2,false
+"org.apache.fory.benchmark.UserTypeSerializeSuite.protostuff_serialize","thrpt",1,3,693641.589806,43883.803566,"ops/s",directBuffer,SAMPLE,false
+"org.apache.fory.benchmark.UserTypeSerializeSuite.protostuff_serialize","thrpt",1,3,805941.345157,91281.699006,"ops/s",directBuffer,MEDIA_CONTENT,false
+"org.apache.fory.benchmark.UserTypeSerializeSuite.protostuff_serialize","thrpt",1,3,340262.650047,152117.387028,"ops/s",directBuffer,STRUCT,false
+"org.apache.fory.benchmark.UserTypeSerializeSuite.protostuff_serialize","thrpt",1,3,325093.716261,56485.972228,"ops/s",directBuffer,STRUCT2,false
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/benchmarks/object-serialization/native/java/data/jmh-jdk-11-zerocopy.csv b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/benchmarks/object-serialization/native/java/data/jmh-jdk-11-zerocopy.csv
new file mode 100644
index 0000000000..503298291f
--- /dev/null
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/benchmarks/object-serialization/native/java/data/jmh-jdk-11-zerocopy.csv
@@ -0,0 +1,73 @@
+"Benchmark","Mode","Threads","Samples","Score","Score Error (99.9%)","Unit","Param: array_size","Param: bufferType","Param: dataType","Param: references"
+"org.apache.fory.benchmark.ZeroCopySuite.fst_deserialize","thrpt",1,3,219333.990504,40075.312705,"ops/s",200,array,PRIMITIVE_ARRAY,false
+"org.apache.fory.benchmark.ZeroCopySuite.fst_deserialize","thrpt",1,3,657754.887247,408901.031753,"ops/s",200,array,BUFFER,false
+"org.apache.fory.benchmark.ZeroCopySuite.fst_deserialize","thrpt",1,3,179604.045774,45387.509931,"ops/s",200,directBuffer,PRIMITIVE_ARRAY,false
+"org.apache.fory.benchmark.ZeroCopySuite.fst_deserialize","thrpt",1,3,598421.278941,135411.381215,"ops/s",200,directBuffer,BUFFER,false
+"org.apache.fory.benchmark.ZeroCopySuite.fst_deserialize","thrpt",1,3,53100.903684,17709.358858,"ops/s",1000,array,PRIMITIVE_ARRAY,false
+"org.apache.fory.benchmark.ZeroCopySuite.fst_deserialize","thrpt",1,3,422147.154601,528539.529166,"ops/s",1000,array,BUFFER,false
+"org.apache.fory.benchmark.ZeroCopySuite.fst_deserialize","thrpt",1,3,38572.001768,24685.893533,"ops/s",1000,directBuffer,PRIMITIVE_ARRAY,false
+"org.apache.fory.benchmark.ZeroCopySuite.fst_deserialize","thrpt",1,3,298929.116572,135040.133488,"ops/s",1000,directBuffer,BUFFER,false
+"org.apache.fory.benchmark.ZeroCopySuite.fst_deserialize","thrpt",1,3,10672.872798,11519.184075,"ops/s",5000,array,PRIMITIVE_ARRAY,false
+"org.apache.fory.benchmark.ZeroCopySuite.fst_deserialize","thrpt",1,3,136934.604328,19269.032565,"ops/s",5000,array,BUFFER,false
+"org.apache.fory.benchmark.ZeroCopySuite.fst_deserialize","thrpt",1,3,8561.694533,2137.867210,"ops/s",5000,directBuffer,PRIMITIVE_ARRAY,false
+"org.apache.fory.benchmark.ZeroCopySuite.fst_deserialize","thrpt",1,3,77950.612503,83587.484192,"ops/s",5000,directBuffer,BUFFER,false
+"org.apache.fory.benchmark.ZeroCopySuite.fst_serialize","thrpt",1,3,313986.053417,29311.641179,"ops/s",200,array,PRIMITIVE_ARRAY,false
+"org.apache.fory.benchmark.ZeroCopySuite.fst_serialize","thrpt",1,3,2400193.220466,242732.420524,"ops/s",200,array,BUFFER,false
+"org.apache.fory.benchmark.ZeroCopySuite.fst_serialize","thrpt",1,3,294132.218623,60640.778775,"ops/s",200,directBuffer,PRIMITIVE_ARRAY,false
+"org.apache.fory.benchmark.ZeroCopySuite.fst_serialize","thrpt",1,3,2282550.111756,93004.652618,"ops/s",200,directBuffer,BUFFER,false
+"org.apache.fory.benchmark.ZeroCopySuite.fst_serialize","thrpt",1,3,67209.107012,5947.935958,"ops/s",1000,array,PRIMITIVE_ARRAY,false
+"org.apache.fory.benchmark.ZeroCopySuite.fst_serialize","thrpt",1,3,1805557.477810,5232839.112456,"ops/s",1000,array,BUFFER,false
+"org.apache.fory.benchmark.ZeroCopySuite.fst_serialize","thrpt",1,3,66108.014322,16869.542536,"ops/s",1000,directBuffer,PRIMITIVE_ARRAY,false
+"org.apache.fory.benchmark.ZeroCopySuite.fst_serialize","thrpt",1,3,1644789.427010,54907.475118,"ops/s",1000,directBuffer,BUFFER,false
+"org.apache.fory.benchmark.ZeroCopySuite.fst_serialize","thrpt",1,3,14997.400124,12425.308762,"ops/s",5000,array,PRIMITIVE_ARRAY,false
+"org.apache.fory.benchmark.ZeroCopySuite.fst_serialize","thrpt",1,3,811029.402136,39593.863849,"ops/s",5000,array,BUFFER,false
+"org.apache.fory.benchmark.ZeroCopySuite.fst_serialize","thrpt",1,3,15000.378818,2219.583522,"ops/s",5000,directBuffer,PRIMITIVE_ARRAY,false
+"org.apache.fory.benchmark.ZeroCopySuite.fst_serialize","thrpt",1,3,477148.540850,34970.176073,"ops/s",5000,directBuffer,BUFFER,false
+"org.apache.fory.benchmark.ZeroCopySuite.fory_deserialize","thrpt",1,3,986136.067809,274606.792449,"ops/s",200,array,PRIMITIVE_ARRAY,false
+"org.apache.fory.benchmark.ZeroCopySuite.fory_deserialize","thrpt",1,3,3302149.383135,3166455.521704,"ops/s",200,array,BUFFER,false
+"org.apache.fory.benchmark.ZeroCopySuite.fory_deserialize","thrpt",1,3,991807.969328,296490.837932,"ops/s",200,directBuffer,PRIMITIVE_ARRAY,false
+"org.apache.fory.benchmark.ZeroCopySuite.fory_deserialize","thrpt",1,3,3113115.471758,4861106.592529,"ops/s",200,directBuffer,BUFFER,false
+"org.apache.fory.benchmark.ZeroCopySuite.fory_deserialize","thrpt",1,3,205671.992736,127494.951753,"ops/s",1000,array,PRIMITIVE_ARRAY,false
+"org.apache.fory.benchmark.ZeroCopySuite.fory_deserialize","thrpt",1,3,2831942.848999,1720214.698856,"ops/s",1000,array,BUFFER,false
+"org.apache.fory.benchmark.ZeroCopySuite.fory_deserialize","thrpt",1,3,202275.242341,56270.238293,"ops/s",1000,directBuffer,PRIMITIVE_ARRAY,false
+"org.apache.fory.benchmark.ZeroCopySuite.fory_deserialize","thrpt",1,3,3397690.327371,146058.097383,"ops/s",1000,directBuffer,BUFFER,false
+"org.apache.fory.benchmark.ZeroCopySuite.fory_deserialize","thrpt",1,3,40312.590172,11836.614114,"ops/s",5000,array,PRIMITIVE_ARRAY,false
+"org.apache.fory.benchmark.ZeroCopySuite.fory_deserialize","thrpt",1,3,3296658.120035,2199676.238015,"ops/s",5000,array,BUFFER,false
+"org.apache.fory.benchmark.ZeroCopySuite.fory_deserialize","thrpt",1,3,40413.743717,9893.735875,"ops/s",5000,directBuffer,PRIMITIVE_ARRAY,false
+"org.apache.fory.benchmark.ZeroCopySuite.fory_deserialize","thrpt",1,3,3284441.570594,998247.999163,"ops/s",5000,directBuffer,BUFFER,false
+"org.apache.fory.benchmark.ZeroCopySuite.fory_serialize","thrpt",1,3,8297232.942927,6613235.386482,"ops/s",200,array,PRIMITIVE_ARRAY,false
+"org.apache.fory.benchmark.ZeroCopySuite.fory_serialize","thrpt",1,3,5123572.914045,9342104.794019,"ops/s",200,array,BUFFER,false
+"org.apache.fory.benchmark.ZeroCopySuite.fory_serialize","thrpt",1,3,8335248.350301,2796789.944593,"ops/s",200,directBuffer,PRIMITIVE_ARRAY,false
+"org.apache.fory.benchmark.ZeroCopySuite.fory_serialize","thrpt",1,3,5400346.890126,7654935.504676,"ops/s",200,directBuffer,BUFFER,false
+"org.apache.fory.benchmark.ZeroCopySuite.fory_serialize","thrpt",1,3,8772856.921028,1984208.178343,"ops/s",1000,array,PRIMITIVE_ARRAY,false
+"org.apache.fory.benchmark.ZeroCopySuite.fory_serialize","thrpt",1,3,4979590.929127,5568756.926202,"ops/s",1000,array,BUFFER,false
+"org.apache.fory.benchmark.ZeroCopySuite.fory_serialize","thrpt",1,3,8207563.785251,4153794.222735,"ops/s",1000,directBuffer,PRIMITIVE_ARRAY,false
+"org.apache.fory.benchmark.ZeroCopySuite.fory_serialize","thrpt",1,3,5376191.775007,9167580.616022,"ops/s",1000,directBuffer,BUFFER,false
+"org.apache.fory.benchmark.ZeroCopySuite.fory_serialize","thrpt",1,3,8027439.580226,6148996.477681,"ops/s",5000,array,PRIMITIVE_ARRAY,false
+"org.apache.fory.benchmark.ZeroCopySuite.fory_serialize","thrpt",1,3,5018916.322770,1424045.598203,"ops/s",5000,array,BUFFER,false
+"org.apache.fory.benchmark.ZeroCopySuite.fory_serialize","thrpt",1,3,7695981.988316,578662.201123,"ops/s",5000,directBuffer,PRIMITIVE_ARRAY,false
+"org.apache.fory.benchmark.ZeroCopySuite.fory_serialize","thrpt",1,3,5330897.682960,8055585.038901,"ops/s",5000,directBuffer,BUFFER,false
+"org.apache.fory.benchmark.ZeroCopySuite.kryo_deserialize","thrpt",1,3,146675.360652,23502.675233,"ops/s",200,array,PRIMITIVE_ARRAY,false
+"org.apache.fory.benchmark.ZeroCopySuite.kryo_deserialize","thrpt",1,3,1296284.787720,297204.673569,"ops/s",200,array,BUFFER,false
+"org.apache.fory.benchmark.ZeroCopySuite.kryo_deserialize","thrpt",1,3,518713.299422,600548.228171,"ops/s",200,directBuffer,PRIMITIVE_ARRAY,false
+"org.apache.fory.benchmark.ZeroCopySuite.kryo_deserialize","thrpt",1,3,1004844.498712,552313.083272,"ops/s",200,directBuffer,BUFFER,false
+"org.apache.fory.benchmark.ZeroCopySuite.kryo_deserialize","thrpt",1,3,30409.835023,9562.322209,"ops/s",1000,array,PRIMITIVE_ARRAY,false
+"org.apache.fory.benchmark.ZeroCopySuite.kryo_deserialize","thrpt",1,3,721266.541130,62426.822891,"ops/s",1000,array,BUFFER,false
+"org.apache.fory.benchmark.ZeroCopySuite.kryo_deserialize","thrpt",1,3,112132.004609,6625.327605,"ops/s",1000,directBuffer,PRIMITIVE_ARRAY,false
+"org.apache.fory.benchmark.ZeroCopySuite.kryo_deserialize","thrpt",1,3,592972.713203,511777.226637,"ops/s",1000,directBuffer,BUFFER,false
+"org.apache.fory.benchmark.ZeroCopySuite.kryo_deserialize","thrpt",1,3,6122.351228,3021.683209,"ops/s",5000,array,PRIMITIVE_ARRAY,false
+"org.apache.fory.benchmark.ZeroCopySuite.kryo_deserialize","thrpt",1,3,147251.846111,278375.379465,"ops/s",5000,array,BUFFER,false
+"org.apache.fory.benchmark.ZeroCopySuite.kryo_deserialize","thrpt",1,3,21826.040410,2246.004993,"ops/s",5000,directBuffer,PRIMITIVE_ARRAY,false
+"org.apache.fory.benchmark.ZeroCopySuite.kryo_deserialize","thrpt",1,3,148614.476829,87146.409451,"ops/s",5000,directBuffer,BUFFER,false
+"org.apache.fory.benchmark.ZeroCopySuite.kryo_serialize","thrpt",1,3,147342.606262,138864.952435,"ops/s",200,array,PRIMITIVE_ARRAY,false
+"org.apache.fory.benchmark.ZeroCopySuite.kryo_serialize","thrpt",1,3,1985187.977633,70426.638387,"ops/s",200,array,BUFFER,false
+"org.apache.fory.benchmark.ZeroCopySuite.kryo_serialize","thrpt",1,3,972683.763633,604464.052899,"ops/s",200,directBuffer,PRIMITIVE_ARRAY,false
+"org.apache.fory.benchmark.ZeroCopySuite.kryo_serialize","thrpt",1,3,1739454.519770,1053963.541481,"ops/s",200,directBuffer,BUFFER,false
+"org.apache.fory.benchmark.ZeroCopySuite.kryo_serialize","thrpt",1,3,31395.721514,3652.506399,"ops/s",1000,array,PRIMITIVE_ARRAY,false
+"org.apache.fory.benchmark.ZeroCopySuite.kryo_serialize","thrpt",1,3,1616159.671230,2722436.839807,"ops/s",1000,array,BUFFER,false
+"org.apache.fory.benchmark.ZeroCopySuite.kryo_serialize","thrpt",1,3,209183.090868,25323.702489,"ops/s",1000,directBuffer,PRIMITIVE_ARRAY,false
+"org.apache.fory.benchmark.ZeroCopySuite.kryo_serialize","thrpt",1,3,1377272.568510,203974.331559,"ops/s",1000,directBuffer,BUFFER,false
+"org.apache.fory.benchmark.ZeroCopySuite.kryo_serialize","thrpt",1,3,6248.006967,783.226602,"ops/s",5000,array,PRIMITIVE_ARRAY,false
+"org.apache.fory.benchmark.ZeroCopySuite.kryo_serialize","thrpt",1,3,711287.533377,86363.201941,"ops/s",5000,array,BUFFER,false
+"org.apache.fory.benchmark.ZeroCopySuite.kryo_serialize","thrpt",1,3,43565.678616,4221.267495,"ops/s",5000,directBuffer,PRIMITIVE_ARRAY,false
+"org.apache.fory.benchmark.ZeroCopySuite.kryo_serialize","thrpt",1,3,707092.956534,298737.951680,"ops/s",5000,directBuffer,BUFFER,false
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/benchmarks/object-serialization/native/java/java_heap_deserialize_compatible.png b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/benchmarks/object-serialization/native/java/java_heap_deserialize_compatible.png
new file mode 100644
index 0000000000..52dd292a3c
Binary files /dev/null and b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/benchmarks/object-serialization/native/java/java_heap_deserialize_compatible.png differ
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/benchmarks/object-serialization/native/java/java_heap_deserialize_consistent.png b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/benchmarks/object-serialization/native/java/java_heap_deserialize_consistent.png
new file mode 100644
index 0000000000..a21445421a
Binary files /dev/null and b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/benchmarks/object-serialization/native/java/java_heap_deserialize_consistent.png differ
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/benchmarks/object-serialization/native/java/java_heap_serialize_compatible.png b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/benchmarks/object-serialization/native/java/java_heap_serialize_compatible.png
new file mode 100644
index 0000000000..2142dfdbab
Binary files /dev/null and b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/benchmarks/object-serialization/native/java/java_heap_serialize_compatible.png differ
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/benchmarks/object-serialization/native/java/java_heap_serialize_consistent.png b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/benchmarks/object-serialization/native/java/java_heap_serialize_consistent.png
new file mode 100644
index 0000000000..5703f72473
Binary files /dev/null and b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/benchmarks/object-serialization/native/java/java_heap_serialize_consistent.png differ
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/benchmarks/object-serialization/native/java/java_offheap_deserialize_compatible.png b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/benchmarks/object-serialization/native/java/java_offheap_deserialize_compatible.png
new file mode 100644
index 0000000000..ce77bf6fb7
Binary files /dev/null and b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/benchmarks/object-serialization/native/java/java_offheap_deserialize_compatible.png differ
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/benchmarks/object-serialization/native/java/java_offheap_deserialize_consistent.png b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/benchmarks/object-serialization/native/java/java_offheap_deserialize_consistent.png
new file mode 100644
index 0000000000..04c3e3d04a
Binary files /dev/null and b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/benchmarks/object-serialization/native/java/java_offheap_deserialize_consistent.png differ
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/benchmarks/object-serialization/native/java/java_offheap_serialize_compatible.png b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/benchmarks/object-serialization/native/java/java_offheap_serialize_compatible.png
new file mode 100644
index 0000000000..8d9197121c
Binary files /dev/null and b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/benchmarks/object-serialization/native/java/java_offheap_serialize_compatible.png differ
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/benchmarks/object-serialization/native/java/java_offheap_serialize_consistent.png b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/benchmarks/object-serialization/native/java/java_offheap_serialize_consistent.png
new file mode 100644
index 0000000000..8bdea8f559
Binary files /dev/null and b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/benchmarks/object-serialization/native/java/java_offheap_serialize_consistent.png differ
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/benchmarks/object-serialization/native/java/java_repo_deserialization_throughput.png b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/benchmarks/object-serialization/native/java/java_repo_deserialization_throughput.png
new file mode 100644
index 0000000000..d64f5e77a1
Binary files /dev/null and b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/benchmarks/object-serialization/native/java/java_repo_deserialization_throughput.png differ
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/benchmarks/object-serialization/native/java/java_repo_serialization_throughput.png b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/benchmarks/object-serialization/native/java/java_repo_serialization_throughput.png
new file mode 100644
index 0000000000..8f9824ffe1
Binary files /dev/null and b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/benchmarks/object-serialization/native/java/java_repo_serialization_throughput.png differ
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/benchmarks/object-serialization/native/java/java_zero_copy_deserialize.png b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/benchmarks/object-serialization/native/java/java_zero_copy_deserialize.png
new file mode 100644
index 0000000000..a91315eb34
Binary files /dev/null and b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/benchmarks/object-serialization/native/java/java_zero_copy_deserialize.png differ
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/benchmarks/object-serialization/native/java/java_zero_copy_serialize.png b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/benchmarks/object-serialization/native/java/java_zero_copy_serialize.png
new file mode 100644
index 0000000000..a3f1b98346
Binary files /dev/null and b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/benchmarks/object-serialization/native/java/java_zero_copy_serialize.png differ
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/benchmarks/object-serialization/xlang/_category_.json b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/benchmarks/object-serialization/xlang/_category_.json
new file mode 100644
index 0000000000..d2418b5e5e
--- /dev/null
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/benchmarks/object-serialization/xlang/_category_.json
@@ -0,0 +1,6 @@
+{
+  "position": 1,
+  "label": "Xlang",
+  "collapsible": true,
+  "collapsed": true
+}
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/benchmarks/object-serialization/xlang/cpp/README.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/benchmarks/object-serialization/xlang/cpp/README.md
new file mode 100644
index 0000000000..36291851d6
--- /dev/null
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/benchmarks/object-serialization/xlang/cpp/README.md
@@ -0,0 +1,78 @@
+# C++ 基准测试性能报告
+
+_生成时间:2026-06-12 16:14:04_
+
+## 如何生成此报告
+
+```bash
+cd benchmarks/cpp/build
+./fory_benchmark --benchmark_format=json --benchmark_out=benchmark_results.json
+cd ..
+python benchmark_report.py --json-file build/benchmark_results.json --output-dir report
+```
+
+## 基准测试图表
+
+下图展示吞吐量(ops/sec);数值越高越好。
+
+![吞吐量](throughput.png)
+
+## 硬件和操作系统信息
+
+| 项目                   | 值                        |
+| ---------------------- | ------------------------- |
+| 操作系统               | Darwin 24.6.0             |
+| 机器架构               | arm64                     |
+| 处理器                 | arm                       |
+| CPU 核心数(物理)     | 12                        |
+| CPU 核心数(逻辑)     | 12                        |
+| 内存总量(GB)         | 48.0                      |
+| 基准测试日期           | 2026-06-12T16:13:27+08:00 |
+| CPU 核心数(基准测试) | 12                        |
+
+## 基准测试结果
+
+### 耗时结果(nanoseconds)
+
+| 数据类型          | 操作     | fory (ns) | protobuf (ns) | msgpack (ns) | 最快 |
+| ----------------- | -------- | --------- | ------------- | ------------ | ---- |
+| NumericStruct     | 序列化   | 25.7      | 48.2          | 85.4         | fory |
+| NumericStruct     | 反序列化 | 25.1      | 31.8          | 887.2        | fory |
+| Sample            | 序列化   | 60.6      | 96.4          | 361.6        | fory |
+| Sample            | 反序列化 | 176.7     | 397.0         | 2031.6       | fory |
+| MediaContent      | 序列化   | 113.5     | 471.0         | 290.4        | fory |
+| MediaContent      | 反序列化 | 247.3     | 641.9         | 2015.4       | fory |
+| NumericStructList | 序列化   | 83.3      | 372.9         | 446.9        | fory |
+| NumericStructList | 反序列化 | 158.1     | 268.2         | 4342.4       | fory |
+| SampleList        | 序列化   | 258.8     | 2829.7        | 2602.3       | fory |
+| SampleList        | 反序列化 | 1001.7    | 2794.4        | 12220.7      | fory |
+| MediaContentList  | 序列化   | 504.2     | 2589.8        | 1549.5       | fory |
+| MediaContentList  | 反序列化 | 1258.6    | 3620.3        | 10263.4      | fory |
+
+### 吞吐量结果(ops/sec)
+
+| 数据类型          | 操作     | fory TPS   | protobuf TPS | msgpack TPS | 最快 |
+| ----------------- | -------- | ---------- | ------------ | ----------- | ---- |
+| NumericStruct     | 序列化   | 38,845,461 | 20,734,963   | 11,707,994  | fory |
+| NumericStruct     | 反序列化 | 39,872,217 | 31,443,829   | 1,127,092   | fory |
+| Sample            | 序列化   | 16,496,488 | 10,372,657   | 2,765,312   | fory |
+| Sample            | 反序列化 | 5,660,852  | 2,518,926    | 492,232     | fory |
+| MediaContent      | 序列化   | 8,808,084  | 2,122,926    | 3,443,519   | fory |
+| MediaContent      | 反序列化 | 4,043,028  | 1,557,819    | 496,175     | fory |
+| NumericStructList | 序列化   | 11,999,598 | 2,681,661    | 2,237,536   | fory |
+| NumericStructList | 反序列化 | 6,323,730  | 3,728,133    | 230,285     | fory |
+| SampleList        | 序列化   | 3,864,068  | 353,391      | 384,276     | fory |
+| SampleList        | 反序列化 | 998,326    | 357,854      | 81,828      | fory |
+| MediaContentList  | 序列化   | 1,983,502  | 386,135      | 645,372     | fory |
+| MediaContentList  | 反序列化 | 794,544    | 276,221      | 97,434      | fory |
+
+### 序列化数据大小(bytes)
+
+| 数据类型          | fory | protobuf | msgpack |
+| ----------------- | ---- | -------- | ------- |
+| NumericStruct     | 78   | 93       | 87      |
+| Sample            | 445  | 375      | 530     |
+| MediaContent      | 362  | 301      | 480     |
+| NumericStructList | 255  | 475      | 449     |
+| SampleList        | 1978 | 1890     | 2664    |
+| MediaContentList  | 1531 | 1520     | 2421    |
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/benchmarks/object-serialization/xlang/cpp/throughput.png b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/benchmarks/object-serialization/xlang/cpp/throughput.png
new file mode 100644
index 0000000000..b2d6bfffb9
Binary files /dev/null and b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/benchmarks/object-serialization/xlang/cpp/throughput.png differ
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/benchmarks/object-serialization/xlang/csharp/README.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/benchmarks/object-serialization/xlang/csharp/README.md
new file mode 100644
index 0000000000..898f69defb
--- /dev/null
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/benchmarks/object-serialization/xlang/csharp/README.md
@@ -0,0 +1,89 @@
+# C# 基准测试性能报告
+
+_生成于 2026-05-08 17:54:45_
+
+## 如何生成本报告
+
+```bash
+cd benchmarks/csharp
+dotnet run -c Release --project ./Fory.CSharpBenchmark.csproj -- --output build/benchmark_results.json
+python3 benchmark_report.py --json-file build/benchmark_results.json --output-dir report
+```
+
+## 基准测试图表
+
+该图展示吞吐量(ops/sec);数值越高越好。
+
+![吞吐量](throughput.png)
+
+## 硬件和操作系统信息
+
+| 键                             | 值                                                                                                                           |
+| ------------------------------ | ---------------------------------------------------------------------------------------------------------------------------- |
+| 操作系统                       | Darwin 24.6.0 Darwin Kernel Version 24.6.0: Wed Oct 15 21:12:15 PDT 2025; root:xnu-11417.140.69.703.14~1/RELEASE_ARM64_T6041 |
+| 操作系统架构                   | Arm64                                                                                                                        |
+| 机器架构                       | Arm64                                                                                                                        |
+| 运行时版本                     | 8.0.24                                                                                                                       |
+| 基准测试日期(UTC)            | 2026-05-08T08:17:48.7871870Z                                                                                                 |
+| 预热时间(秒)                 | 1                                                                                                                            |
+| 运行时间(秒)                 | 3                                                                                                                            |
+| CPU 逻辑核心数(来自基准测试) | 12                                                                                                                           |
+| CPU 核心数(物理)             | 12                                                                                                                           |
+| CPU 核心数(逻辑)             | 12                                                                                                                           |
+| 内存总量(GB)                 | 48.0                                                                                                                         |
+
+## 基准测试覆盖范围
+
+| 键                   | 值                                                                     |
+| -------------------- | ---------------------------------------------------------------------- |
+| 输入 JSON 中的用例数 | 36 / 36                                                                |
+| 序列化器             | fory, msgpack, protobuf                                                |
+| 数据类型             | struct, sample, mediacontent, structlist, samplelist, mediacontentlist |
+| 操作                 | serialize, deserialize                                                 |
+
+## 基准测试结果
+
+### 耗时结果(纳秒)
+
+| 数据类型          | 操作     | fory(ns) | protobuf(ns) | msgpack(ns) | 最快 |
+| ----------------- | -------- | ---------- | -------------- | ------------- | ---- |
+| NumericStruct     | 序列化   | 50.3       | 170.8          | 107.8         | fory |
+| NumericStruct     | 反序列化 | 82.4       | 252.0          | 143.4         | fory |
+| Sample            | 序列化   | 263.2      | 607.1          | 377.1         | fory |
+| Sample            | 反序列化 | 199.4      | 1191.7         | 785.6         | fory |
+| MediaContent      | 序列化   | 379.7      | 509.6          | 417.6         | fory |
+| MediaContent      | 反序列化 | 450.3      | 846.6          | 791.4         | fory |
+| NumericStructList | 序列化   | 183.7      | 641.8          | 447.8         | fory |
+| NumericStructList | 反序列化 | 288.3      | 974.3          | 702.1         | fory |
+| SampleList        | 序列化   | 1205.7     | 3559.1         | 1864.1        | fory |
+| SampleList        | 反序列化 | 895.1      | 5710.3         | 2757.4        | fory |
+| MediaContentList  | 序列化   | 1495.4     | 2473.6         | 1812.4        | fory |
+| MediaContentList  | 反序列化 | 1946.7     | 3789.3         | 3778.4        | fory |
+
+### 吞吐量结果(ops/sec)
+
+| 数据类型          | 操作     | fory TPS   | protobuf TPS | msgpack TPS | 最快 |
+| ----------------- | -------- | ---------- | ------------ | ----------- | ---- |
+| NumericStruct     | 序列化   | 19,881,457 | 5,853,473    | 9,276,378   | fory |
+| NumericStruct     | 反序列化 | 12,137,374 | 3,968,585    | 6,973,504   | fory |
+| Sample            | 序列化   | 3,799,418  | 1,647,119    | 2,652,142   | fory |
+| Sample            | 反序列化 | 5,016,006  | 839,129      | 1,272,975   | fory |
+| MediaContent      | 序列化   | 2,633,704  | 1,962,428    | 2,394,549   | fory |
+| MediaContent      | 反序列化 | 2,220,537  | 1,181,222    | 1,263,568   | fory |
+| NumericStructList | 序列化   | 5,445,002  | 1,558,156    | 2,232,996   | fory |
+| NumericStructList | 反序列化 | 3,469,207  | 1,026,402    | 1,424,322   | fory |
+| SampleList        | 序列化   | 829,415    | 280,973      | 536,448     | fory |
+| SampleList        | 反序列化 | 1,117,133  | 175,122      | 362,663     | fory |
+| MediaContentList  | 序列化   | 668,732    | 404,272      | 551,755     | fory |
+| MediaContentList  | 反序列化 | 513,699    | 263,899      | 264,664     | fory |
+
+### 序列化数据大小(字节)
+
+| 数据类型          | fory | protobuf | msgpack |
+| ----------------- | ---- | -------- | ------- |
+| NumericStruct     | 78   | 93       | 87      |
+| Sample            | 445  | 460      | 562     |
+| MediaContent      | 362  | 307      | 479     |
+| NumericStructList | 255  | 475      | 444     |
+| SampleList        | 1978 | 2315     | 2819    |
+| MediaContentList  | 1531 | 1550     | 2404    |
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/benchmarks/object-serialization/xlang/csharp/throughput.png b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/benchmarks/object-serialization/xlang/csharp/throughput.png
new file mode 100644
index 0000000000..2c6c7bdd8c
Binary files /dev/null and b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/benchmarks/object-serialization/xlang/csharp/throughput.png differ
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/benchmarks/object-serialization/xlang/dart/README.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/benchmarks/object-serialization/xlang/dart/README.md
new file mode 100644
index 0000000000..da607168fe
--- /dev/null
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/benchmarks/object-serialization/xlang/dart/README.md
@@ -0,0 +1,49 @@
+# Fory Dart 基准测试
+
+本基准测试对比 Apache Fory、Protocol Buffers 和 JSON 在 Dart 中的序列化与反序列化吞吐量。
+
+## 吞吐量图表
+
+![吞吐量](throughput.png)
+
+## 硬件和运行时信息
+
+| 键                       | 值                                                                |
+| ------------------------ | ----------------------------------------------------------------- |
+| 时间戳                   | 2026-05-08T08:23:10.201764Z                                       |
+| 操作系统                 | Version 15.7.2 (Build 24G325)                                     |
+| 主机                     | MacBook-Pro.local                                                 |
+| CPU 核心数(逻辑)       | 12                                                                |
+| 内存(GB)               | 48.00                                                             |
+| Dart                     | 3.10.7 (stable) (Tue Dec 23 00:01:57 2025 -0800) on "macos_arm64" |
+| 每个用例的样本数         | 5                                                                 |
+| 每个用例的预热时间(秒) | 1.0                                                               |
+| 每个用例的运行时间(秒) | 1.5                                                               |
+
+## 吞吐量结果
+
+| 数据类型          | 操作     |  Fory TPS | Protobuf TPS |  JSON TPS | 最快          |
+| ----------------- | -------- | --------: | -----------: | --------: | ------------- |
+| NumericStruct     | 序列化   | 9,007,809 |    1,582,003 |   774,574 | fory (5.69x)  |
+| NumericStruct     | 反序列化 | 9,039,403 |    3,343,459 | 1,391,036 | fory (2.70x)  |
+| Sample            | 序列化   | 2,434,800 |      538,385 |   133,800 | fory (4.52x)  |
+| Sample            | 反序列化 | 2,362,665 |      909,410 |   239,924 | fory (2.60x)  |
+| MediaContent      | 序列化   | 1,167,225 |      423,564 |   223,387 | fory (2.76x)  |
+| MediaContent      | 反序列化 | 1,987,141 |      770,107 |   254,156 | fory (2.58x)  |
+| NumericStructList | 序列化   | 2,551,102 |      283,827 |   139,615 | fory (8.99x)  |
+| NumericStructList | 反序列化 | 3,028,068 |      530,360 |   265,058 | fory (5.71x)  |
+| SampleList        | 序列化   |   568,937 |       47,426 |    25,386 | fory (12.00x) |
+| SampleList        | 反序列化 |   542,871 |      108,349 |    48,058 | fory (5.01x)  |
+| MediaContentList  | 序列化   |   226,507 |       81,828 |    41,780 | fory (2.77x)  |
+| MediaContentList  | 反序列化 |   458,667 |      139,395 |    50,183 | fory (3.29x)  |
+
+## 序列化大小(字节)
+
+| 数据类型          | Fory | Protobuf | JSON |
+| ----------------- | ---: | -------: | ---: |
+| NumericStruct     |   78 |       93 |  159 |
+| Sample            |  445 |      377 |  791 |
+| MediaContent      |  362 |      307 |  619 |
+| NumericStructList |  255 |      475 |  816 |
+| SampleList        | 1978 |     1900 | 3976 |
+| MediaContentList  | 1531 |     1550 | 3122 |
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/benchmarks/object-serialization/xlang/dart/throughput.png b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/benchmarks/object-serialization/xlang/dart/throughput.png
new file mode 100644
index 0000000000..ee3833d8bc
Binary files /dev/null and b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/benchmarks/object-serialization/xlang/dart/throughput.png differ
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/benchmarks/object-serialization/xlang/go/README.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/benchmarks/object-serialization/xlang/go/README.md
new file mode 100644
index 0000000000..3ec8c1d2da
--- /dev/null
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/benchmarks/object-serialization/xlang/go/README.md
@@ -0,0 +1,58 @@
+# Go 序列化基准测试报告
+
+生成时间:2026-08-07 12:14:23
+
+## 性能图表
+
+![吞吐量](throughput.png)
+
+## 系统信息
+
+- **操作系统**:Darwin 24.6.0
+- **架构**:arm64
+- **Python**:3.10.8
+
+## 性能摘要
+
+| 数据类型          | 操作     | Fory (ops/s) | Protobuf (ops/s) | Msgpack (ops/s) | Fory 对比 PB | Fory 对比 MP |
+| ----------------- | -------- | ------------ | ---------------- | --------------- | ------------ | ------------ |
+| NumericStruct     | 序列化   | 18.49M       | 7.63M            | 3.78M           | 2.42x        | 4.90x        |
+| NumericStruct     | 反序列化 | 13.57M       | 8.55M            | 1.99M           | 1.59x        | 6.82x        |
+| Sample            | 序列化   | 8.2M         | 2.72M            | 683.53K         | 3.01x        | 12.00x       |
+| Sample            | 反序列化 | 3.91M        | 2.25M            | 372.3K          | 1.74x        | 10.50x       |
+| MediaContent      | 序列化   | 3.89M        | 2.07M            | 1.22M           | 1.87x        | 3.19x        |
+| MediaContent      | 反序列化 | 2.35M        | 1.77M            | 704.23K         | 1.32x        | 3.33x        |
+| NumericStructList | 序列化   | 1.5M         | 412.88K          | 212.81K         | 3.64x        | 7.06x        |
+| NumericStructList | 反序列化 | 1.18M        | 396.83K          | 104.62K         | 2.98x        | 11.29x       |
+| SampleList        | 序列化   | 484.73K      | 145.75K          | 38.43K          | 3.33x        | 12.61x       |
+| SampleList        | 反序列化 | 225.89K      | 103.72K          | 18.56K          | 2.18x        | 12.17x       |
+| MediaContentList  | 序列化   | 243.43K      | 110.25K          | 68.82K          | 2.21x        | 3.54x        |
+| MediaContentList  | 反序列化 | 132.59K      | 86.84K           | 35.41K          | 1.53x        | 3.74x        |
+
+## 详细耗时(ns/op)
+
+| 数据类型          | 操作     | Fory   | Protobuf | Msgpack |
+| ----------------- | -------- | ------ | -------- | ------- |
+| NumericStruct     | 序列化   | 54.1   | 131.1    | 264.9   |
+| NumericStruct     | 反序列化 | 73.7   | 117.0    | 502.2   |
+| Sample            | 序列化   | 121.9  | 367.4    | 1463.0  |
+| Sample            | 反序列化 | 255.8  | 444.6    | 2686.0  |
+| MediaContent      | 序列化   | 257.4  | 482.0    | 820.0   |
+| MediaContent      | 反序列化 | 426.3  | 564.3    | 1420.0  |
+| NumericStructList | 序列化   | 665.8  | 2422.0   | 4699.0  |
+| NumericStructList | 反序列化 | 846.8  | 2520.0   | 9558.0  |
+| SampleList        | 序列化   | 2063.0 | 6861.0   | 26023.0 |
+| SampleList        | 反序列化 | 4427.0 | 9641.0   | 53893.0 |
+| MediaContentList  | 序列化   | 4108.0 | 9070.0   | 14530.0 |
+| MediaContentList  | 反序列化 | 7542.0 | 11515.0  | 28241.0 |
+
+### 序列化数据大小(字节)
+
+| 数据类型          | Fory | Protobuf | Msgpack |
+| ----------------- | ---- | -------- | ------- |
+| NumericStruct     | 78   | 93       | 88      |
+| Sample            | 445  | 375      | 524     |
+| MediaContent      | 362  | 301      | 400     |
+| NumericStructList | 855  | 1900     | 1766    |
+| SampleList        | 7663 | 7560     | 10486   |
+| MediaContentList  | 5851 | 6080     | 8006    |
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/benchmarks/object-serialization/xlang/go/benchmark_results.txt b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/benchmarks/object-serialization/xlang/go/benchmark_results.txt
new file mode 100644
index 0000000000..2cbdf728d4
--- /dev/null
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/benchmarks/object-serialization/xlang/go/benchmark_results.txt
@@ -0,0 +1,326 @@
+============================================
+Serialized Sizes (bytes):
+============================================
+NumericStruct:
+  Fory:     78 bytes
+  Protobuf: 93 bytes
+  Msgpack:  88 bytes
+Sample:
+  Fory:     445 bytes
+  Protobuf: 375 bytes
+  Msgpack:  524 bytes
+MediaContent:
+  Fory:     362 bytes
+  Protobuf: 301 bytes
+  Msgpack:  400 bytes
+NumericStructList:
+  Fory:     855 bytes
+  Protobuf: 1900 bytes
+  Msgpack:  1766 bytes
+SampleList:
+  Fory:     7663 bytes
+  Protobuf: 7560 bytes
+  Msgpack:  10486 bytes
+MediaContentList:
+  Fory:     5851 bytes
+  Protobuf: 6080 bytes
+  Msgpack:  8006 bytes
+============================================
+============================================
+Serialized Sizes (bytes):
+============================================
+NumericStruct:
+  Fory:     78 bytes
+  Protobuf: 93 bytes
+  Msgpack:  88 bytes
+Sample:
+  Fory:     445 bytes
+  Protobuf: 375 bytes
+  Msgpack:  524 bytes
+MediaContent:
+  Fory:     362 bytes
+  Protobuf: 301 bytes
+  Msgpack:  400 bytes
+NumericStructList:
+  Fory:     855 bytes
+  Protobuf: 1900 bytes
+  Msgpack:  1766 bytes
+SampleList:
+  Fory:     7663 bytes
+  Protobuf: 7560 bytes
+  Msgpack:  10486 bytes
+MediaContentList:
+  Fory:     5851 bytes
+  Protobuf: 6080 bytes
+  Msgpack:  8006 bytes
+============================================
+============================================
+Serialized Sizes (bytes):
+============================================
+NumericStruct:
+  Fory:     78 bytes
+  Protobuf: 93 bytes
+  Msgpack:  88 bytes
+Sample:
+  Fory:     445 bytes
+  Protobuf: 375 bytes
+  Msgpack:  524 bytes
+MediaContent:
+  Fory:     362 bytes
+  Protobuf: 301 bytes
+  Msgpack:  400 bytes
+NumericStructList:
+  Fory:     855 bytes
+  Protobuf: 1900 bytes
+  Msgpack:  1766 bytes
+SampleList:
+  Fory:     7663 bytes
+  Protobuf: 7560 bytes
+  Msgpack:  10486 bytes
+MediaContentList:
+  Fory:     5851 bytes
+  Protobuf: 6080 bytes
+  Msgpack:  8006 bytes
+============================================
+============================================
+Serialized Sizes (bytes):
+============================================
+NumericStruct:
+  Fory:     78 bytes
+  Protobuf: 93 bytes
+  Msgpack:  88 bytes
+Sample:
+  Fory:     445 bytes
+  Protobuf: 375 bytes
+  Msgpack:  524 bytes
+MediaContent:
+  Fory:     362 bytes
+  Protobuf: 301 bytes
+  Msgpack:  400 bytes
+NumericStructList:
+  Fory:     855 bytes
+  Protobuf: 1900 bytes
+  Msgpack:  1766 bytes
+SampleList:
+  Fory:     7663 bytes
+  Protobuf: 7560 bytes
+  Msgpack:  10486 bytes
+MediaContentList:
+  Fory:     5851 bytes
+  Protobuf: 6080 bytes
+  Msgpack:  8006 bytes
+============================================
+============================================
+Serialized Sizes (bytes):
+============================================
+NumericStruct:
+  Fory:     78 bytes
+  Protobuf: 93 bytes
+  Msgpack:  88 bytes
+Sample:
+  Fory:     445 bytes
+  Protobuf: 375 bytes
+  Msgpack:  524 bytes
+MediaContent:
+  Fory:     362 bytes
+  Protobuf: 301 bytes
+  Msgpack:  400 bytes
+NumericStructList:
+  Fory:     855 bytes
+  Protobuf: 1900 bytes
+  Msgpack:  1766 bytes
+SampleList:
+  Fory:     7663 bytes
+  Protobuf: 7560 bytes
+  Msgpack:  10486 bytes
+MediaContentList:
+  Fory:     5851 bytes
+  Protobuf: 6080 bytes
+  Msgpack:  8006 bytes
+============================================
+goos: darwin
+goarch: arm64
+pkg: github.com/apache/fory/benchmarks/go
+cpu: Apple M4 Pro
+BenchmarkFory_NumericStruct_Serialize-12              	22048402	        54.53 ns/op	       0 B/op	       0 allocs/op
+BenchmarkFory_NumericStruct_Serialize-12              	22058012	        54.45 ns/op	       0 B/op	       0 allocs/op
+BenchmarkFory_NumericStruct_Serialize-12              	22176328	        55.38 ns/op	       0 B/op	       0 allocs/op
+BenchmarkFory_NumericStruct_Serialize-12              	22106401	        54.22 ns/op	       0 B/op	       0 allocs/op
+BenchmarkFory_NumericStruct_Serialize-12              	22254522	        54.07 ns/op	       0 B/op	       0 allocs/op
+BenchmarkProtobuf_NumericStruct_Serialize-12          	 8963738	       131.3 ns/op	     192 B/op	       2 allocs/op
+BenchmarkProtobuf_NumericStruct_Serialize-12          	 9236372	       129.2 ns/op	     192 B/op	       2 allocs/op
+BenchmarkProtobuf_NumericStruct_Serialize-12          	 9132246	       129.2 ns/op	     192 B/op	       2 allocs/op
+BenchmarkProtobuf_NumericStruct_Serialize-12          	 9175611	       131.4 ns/op	     192 B/op	       2 allocs/op
+BenchmarkProtobuf_NumericStruct_Serialize-12          	 8954976	       131.1 ns/op	     192 B/op	       2 allocs/op
+BenchmarkMsgpack_NumericStruct_Serialize-12           	 4606771	       264.5 ns/op	     240 B/op	       3 allocs/op
+BenchmarkMsgpack_NumericStruct_Serialize-12           	 4461562	       261.8 ns/op	     240 B/op	       3 allocs/op
+BenchmarkMsgpack_NumericStruct_Serialize-12           	 4631194	       261.1 ns/op	     240 B/op	       3 allocs/op
+BenchmarkMsgpack_NumericStruct_Serialize-12           	 4468142	       264.8 ns/op	     240 B/op	       3 allocs/op
+BenchmarkMsgpack_NumericStruct_Serialize-12           	 4402513	       264.9 ns/op	     240 B/op	       3 allocs/op
+BenchmarkFory_NumericStruct_Deserialize-12            	16227700	        74.24 ns/op	      48 B/op	       1 allocs/op
+BenchmarkFory_NumericStruct_Deserialize-12            	16269540	        73.24 ns/op	      48 B/op	       1 allocs/op
+BenchmarkFory_NumericStruct_Deserialize-12            	16324466	        73.70 ns/op	      48 B/op	       1 allocs/op
+BenchmarkFory_NumericStruct_Deserialize-12            	16199805	        73.64 ns/op	      48 B/op	       1 allocs/op
+BenchmarkFory_NumericStruct_Deserialize-12            	16368146	        73.67 ns/op	      48 B/op	       1 allocs/op
+BenchmarkProtobuf_NumericStruct_Deserialize-12        	10233286	       116.3 ns/op	      96 B/op	       1 allocs/op
+BenchmarkProtobuf_NumericStruct_Deserialize-12        	10415528	       116.1 ns/op	      96 B/op	       1 allocs/op
+BenchmarkProtobuf_NumericStruct_Deserialize-12        	10308709	       116.5 ns/op	      96 B/op	       1 allocs/op
+BenchmarkProtobuf_NumericStruct_Deserialize-12        	10203318	       117.5 ns/op	      96 B/op	       1 allocs/op
+BenchmarkProtobuf_NumericStruct_Deserialize-12        	10256920	       117.0 ns/op	      96 B/op	       1 allocs/op
+BenchmarkMsgpack_NumericStruct_Deserialize-12         	 2358616	       495.9 ns/op	      96 B/op	       2 allocs/op
+BenchmarkMsgpack_NumericStruct_Deserialize-12         	 2273918	       518.9 ns/op	      96 B/op	       2 allocs/op
+BenchmarkMsgpack_NumericStruct_Deserialize-12         	 2373148	       505.9 ns/op	      96 B/op	       2 allocs/op
+BenchmarkMsgpack_NumericStruct_Deserialize-12         	 2408899	       501.9 ns/op	      96 B/op	       2 allocs/op
+BenchmarkMsgpack_NumericStruct_Deserialize-12         	 2372222	       502.2 ns/op	      96 B/op	       2 allocs/op
+BenchmarkFory_NumericStructList_Serialize-12          	 1796719	       660.7 ns/op	      48 B/op	       1 allocs/op
+BenchmarkFory_NumericStructList_Serialize-12          	 1756392	       647.7 ns/op	      48 B/op	       1 allocs/op
+BenchmarkFory_NumericStructList_Serialize-12          	 1818304	       659.1 ns/op	      48 B/op	       1 allocs/op
+BenchmarkFory_NumericStructList_Serialize-12          	 1822184	       652.0 ns/op	      48 B/op	       1 allocs/op
+BenchmarkFory_NumericStructList_Serialize-12          	 1813196	       665.8 ns/op	      48 B/op	       1 allocs/op
+BenchmarkProtobuf_NumericStructList_Serialize-12      	  493580	      2430 ns/op	    4192 B/op	      23 allocs/op
+BenchmarkProtobuf_NumericStructList_Serialize-12      	  498306	      2463 ns/op	    4192 B/op	      23 allocs/op
+BenchmarkProtobuf_NumericStructList_Serialize-12      	  469477	      2432 ns/op	    4192 B/op	      23 allocs/op
+BenchmarkProtobuf_NumericStructList_Serialize-12      	  495613	      2431 ns/op	    4192 B/op	      23 allocs/op
+BenchmarkProtobuf_NumericStructList_Serialize-12      	  503056	      2422 ns/op	    4192 B/op	      23 allocs/op
+BenchmarkMsgpack_NumericStructList_Serialize-12       	  255328	      4788 ns/op	    4106 B/op	       8 allocs/op
+BenchmarkMsgpack_NumericStructList_Serialize-12       	  250656	      4784 ns/op	    4106 B/op	       8 allocs/op
+BenchmarkMsgpack_NumericStructList_Serialize-12       	  248538	      4766 ns/op	    4106 B/op	       8 allocs/op
+BenchmarkMsgpack_NumericStructList_Serialize-12       	  249808	      4798 ns/op	    4106 B/op	       8 allocs/op
+BenchmarkMsgpack_NumericStructList_Serialize-12       	  251359	      4699 ns/op	    4106 B/op	       8 allocs/op
+BenchmarkFory_NumericStructList_Deserialize-12        	 1442926	       831.6 ns/op	    1072 B/op	       3 allocs/op
+BenchmarkFory_NumericStructList_Deserialize-12        	 1442542	       831.3 ns/op	    1072 B/op	       3 allocs/op
+BenchmarkFory_NumericStructList_Deserialize-12        	 1321963	       831.6 ns/op	    1072 B/op	       3 allocs/op
+BenchmarkFory_NumericStructList_Deserialize-12        	 1440138	       829.4 ns/op	    1072 B/op	       3 allocs/op
+BenchmarkFory_NumericStructList_Deserialize-12        	 1434574	       846.8 ns/op	    1072 B/op	       3 allocs/op
+BenchmarkProtobuf_NumericStructList_Deserialize-12    	  487072	      2443 ns/op	    3512 B/op	      28 allocs/op
+BenchmarkProtobuf_NumericStructList_Deserialize-12    	  491452	      2447 ns/op	    3512 B/op	      28 allocs/op
+BenchmarkProtobuf_NumericStructList_Deserialize-12    	  484132	      2477 ns/op	    3512 B/op	      28 allocs/op
+BenchmarkProtobuf_NumericStructList_Deserialize-12    	  486200	      2449 ns/op	    3512 B/op	      28 allocs/op
+BenchmarkProtobuf_NumericStructList_Deserialize-12    	  483763	      2520 ns/op	    3512 B/op	      28 allocs/op
+BenchmarkMsgpack_NumericStructList_Deserialize-12     	  124959	      9614 ns/op	    2193 B/op	       7 allocs/op
+BenchmarkMsgpack_NumericStructList_Deserialize-12     	  124986	      9663 ns/op	    2193 B/op	       7 allocs/op
+BenchmarkMsgpack_NumericStructList_Deserialize-12     	  124622	      9564 ns/op	    2193 B/op	       7 allocs/op
+BenchmarkMsgpack_NumericStructList_Deserialize-12     	  124821	      9517 ns/op	    2193 B/op	       7 allocs/op
+BenchmarkMsgpack_NumericStructList_Deserialize-12     	  126458	      9558 ns/op	    2193 B/op	       7 allocs/op
+BenchmarkFory_Sample_Serialize-12                     	 9952366	       120.9 ns/op	       0 B/op	       0 allocs/op
+BenchmarkFory_Sample_Serialize-12                     	 9720504	       120.8 ns/op	       0 B/op	       0 allocs/op
+BenchmarkFory_Sample_Serialize-12                     	 9936180	       121.7 ns/op	       0 B/op	       0 allocs/op
+BenchmarkFory_Sample_Serialize-12                     	 9867582	       120.8 ns/op	       0 B/op	       0 allocs/op
+BenchmarkFory_Sample_Serialize-12                     	 9773203	       121.9 ns/op	       0 B/op	       0 allocs/op
+BenchmarkProtobuf_Sample_Serialize-12                 	 3359570	       354.6 ns/op	     704 B/op	       2 allocs/op
+BenchmarkProtobuf_Sample_Serialize-12                 	 3318685	       354.4 ns/op	     704 B/op	       2 allocs/op
+BenchmarkProtobuf_Sample_Serialize-12                 	 3402387	       354.2 ns/op	     704 B/op	       2 allocs/op
+BenchmarkProtobuf_Sample_Serialize-12                 	 3316545	       361.8 ns/op	     704 B/op	       2 allocs/op
+BenchmarkProtobuf_Sample_Serialize-12                 	 3286450	       367.4 ns/op	     704 B/op	       2 allocs/op
+BenchmarkMsgpack_Sample_Serialize-12                  	  756360	      1487 ns/op	    2321 B/op	       7 allocs/op
+BenchmarkMsgpack_Sample_Serialize-12                  	  797206	      1486 ns/op	    2321 B/op	       7 allocs/op
+BenchmarkMsgpack_Sample_Serialize-12                  	  804738	      1462 ns/op	    2321 B/op	       7 allocs/op
+BenchmarkMsgpack_Sample_Serialize-12                  	  797922	      1468 ns/op	    2321 B/op	       7 allocs/op
+BenchmarkMsgpack_Sample_Serialize-12                  	  832318	      1463 ns/op	    2321 B/op	       7 allocs/op
+BenchmarkFory_Sample_Deserialize-12                   	 4585981	       255.6 ns/op	     676 B/op	       9 allocs/op
+BenchmarkFory_Sample_Deserialize-12                   	 4675981	       255.6 ns/op	     676 B/op	       9 allocs/op
+BenchmarkFory_Sample_Deserialize-12                   	 4639005	       258.4 ns/op	     676 B/op	       9 allocs/op
+BenchmarkFory_Sample_Deserialize-12                   	 4741363	       254.5 ns/op	     676 B/op	       9 allocs/op
+BenchmarkFory_Sample_Deserialize-12                   	 4678129	       255.8 ns/op	     676 B/op	       9 allocs/op
+BenchmarkProtobuf_Sample_Deserialize-12               	 2786370	       433.2 ns/op	     708 B/op	       9 allocs/op
+BenchmarkProtobuf_Sample_Deserialize-12               	 2750157	       430.1 ns/op	     708 B/op	       9 allocs/op
+BenchmarkProtobuf_Sample_Deserialize-12               	 2780458	       458.7 ns/op	     708 B/op	       9 allocs/op
+BenchmarkProtobuf_Sample_Deserialize-12               	 2428318	       444.5 ns/op	     708 B/op	       9 allocs/op
+BenchmarkProtobuf_Sample_Deserialize-12               	 2688910	       444.6 ns/op	     708 B/op	       9 allocs/op
+BenchmarkMsgpack_Sample_Deserialize-12                	  439947	      2734 ns/op	    1576 B/op	      38 allocs/op
+BenchmarkMsgpack_Sample_Deserialize-12                	  447328	      2717 ns/op	    1576 B/op	      38 allocs/op
+BenchmarkMsgpack_Sample_Deserialize-12                	  438544	      2716 ns/op	    1576 B/op	      38 allocs/op
+BenchmarkMsgpack_Sample_Deserialize-12                	  442526	      2706 ns/op	    1576 B/op	      38 allocs/op
+BenchmarkMsgpack_Sample_Deserialize-12                	  442413	      2686 ns/op	    1576 B/op	      38 allocs/op
+BenchmarkFory_SampleList_Serialize-12                 	  566211	      2039 ns/op	     288 B/op	       1 allocs/op
+BenchmarkFory_SampleList_Serialize-12                 	  578923	      2040 ns/op	     288 B/op	       1 allocs/op
+BenchmarkFory_SampleList_Serialize-12                 	  579772	      2075 ns/op	     288 B/op	       1 allocs/op
+BenchmarkFory_SampleList_Serialize-12                 	  593736	      2058 ns/op	     288 B/op	       1 allocs/op
+BenchmarkFory_SampleList_Serialize-12                 	  580461	      2063 ns/op	     288 B/op	       1 allocs/op
+BenchmarkProtobuf_SampleList_Serialize-12             	  167936	      7038 ns/op	   14816 B/op	      23 allocs/op
+BenchmarkProtobuf_SampleList_Serialize-12             	  168691	      6922 ns/op	   14816 B/op	      23 allocs/op
+BenchmarkProtobuf_SampleList_Serialize-12             	  168943	      6961 ns/op	   14816 B/op	      23 allocs/op
+BenchmarkProtobuf_SampleList_Serialize-12             	  175226	      6935 ns/op	   14816 B/op	      23 allocs/op
+BenchmarkProtobuf_SampleList_Serialize-12             	  175560	      6861 ns/op	   14816 B/op	      23 allocs/op
+BenchmarkMsgpack_SampleList_Serialize-12              	   45961	     26219 ns/op	   32792 B/op	      11 allocs/op
+BenchmarkMsgpack_SampleList_Serialize-12              	   46327	     26028 ns/op	   32792 B/op	      11 allocs/op
+BenchmarkMsgpack_SampleList_Serialize-12              	   44845	     25843 ns/op	   32793 B/op	      11 allocs/op
+BenchmarkMsgpack_SampleList_Serialize-12              	   45948	     26155 ns/op	   32793 B/op	      11 allocs/op
+BenchmarkMsgpack_SampleList_Serialize-12              	   46552	     26023 ns/op	   32792 B/op	      11 allocs/op
+BenchmarkFory_SampleList_Deserialize-12               	  265274	      4393 ns/op	   13952 B/op	     163 allocs/op
+BenchmarkFory_SampleList_Deserialize-12               	  270634	      4439 ns/op	   13952 B/op	     163 allocs/op
+BenchmarkFory_SampleList_Deserialize-12               	  268773	      4376 ns/op	   13952 B/op	     163 allocs/op
+BenchmarkFory_SampleList_Deserialize-12               	  268900	      4430 ns/op	   13952 B/op	     163 allocs/op
+BenchmarkFory_SampleList_Deserialize-12               	  268454	      4427 ns/op	   13952 B/op	     163 allocs/op
+BenchmarkProtobuf_SampleList_Deserialize-12           	  129838	      9336 ns/op	   20872 B/op	     188 allocs/op
+BenchmarkProtobuf_SampleList_Deserialize-12           	  129367	      9273 ns/op	   20872 B/op	     188 allocs/op
+BenchmarkProtobuf_SampleList_Deserialize-12           	  127551	      9996 ns/op	   20872 B/op	     188 allocs/op
+BenchmarkProtobuf_SampleList_Deserialize-12           	  123700	      9720 ns/op	   20872 B/op	     188 allocs/op
+BenchmarkProtobuf_SampleList_Deserialize-12           	  125986	      9641 ns/op	   20872 B/op	     188 allocs/op
+BenchmarkMsgpack_SampleList_Deserialize-12            	   22058	     54683 ns/op	   37251 B/op	     727 allocs/op
+BenchmarkMsgpack_SampleList_Deserialize-12            	   22000	     53942 ns/op	   37251 B/op	     727 allocs/op
+BenchmarkMsgpack_SampleList_Deserialize-12            	   22323	     53936 ns/op	   37251 B/op	     727 allocs/op
+BenchmarkMsgpack_SampleList_Deserialize-12            	   22395	     54215 ns/op	   37251 B/op	     727 allocs/op
+BenchmarkMsgpack_SampleList_Deserialize-12            	   22155	     53893 ns/op	   37251 B/op	     727 allocs/op
+BenchmarkFory_MediaContent_Serialize-12               	 4720441	       257.8 ns/op	      48 B/op	       1 allocs/op
+BenchmarkFory_MediaContent_Serialize-12               	 4677813	       256.8 ns/op	      48 B/op	       1 allocs/op
+BenchmarkFory_MediaContent_Serialize-12               	 4663876	       257.4 ns/op	      48 B/op	       1 allocs/op
+BenchmarkFory_MediaContent_Serialize-12               	 4563858	       258.3 ns/op	      48 B/op	       1 allocs/op
+BenchmarkFory_MediaContent_Serialize-12               	 4684438	       257.4 ns/op	      48 B/op	       1 allocs/op
+BenchmarkProtobuf_MediaContent_Serialize-12           	 2540131	       483.0 ns/op	    1144 B/op	      11 allocs/op
+BenchmarkProtobuf_MediaContent_Serialize-12           	 2528174	       471.4 ns/op	    1144 B/op	      11 allocs/op
+BenchmarkProtobuf_MediaContent_Serialize-12           	 2564924	       472.3 ns/op	    1144 B/op	      11 allocs/op
+BenchmarkProtobuf_MediaContent_Serialize-12           	 2504013	       472.9 ns/op	    1144 B/op	      11 allocs/op
+BenchmarkProtobuf_MediaContent_Serialize-12           	 2551820	       482.0 ns/op	    1144 B/op	      11 allocs/op
+BenchmarkMsgpack_MediaContent_Serialize-12            	 1498474	       807.0 ns/op	    1168 B/op	       6 allocs/op
+BenchmarkMsgpack_MediaContent_Serialize-12            	 1495797	       808.8 ns/op	    1168 B/op	       6 allocs/op
+BenchmarkMsgpack_MediaContent_Serialize-12            	 1513142	       809.3 ns/op	    1168 B/op	       6 allocs/op
+BenchmarkMsgpack_MediaContent_Serialize-12            	 1510410	       809.4 ns/op	    1168 B/op	       6 allocs/op
+BenchmarkMsgpack_MediaContent_Serialize-12            	 1501597	       820.0 ns/op	    1168 B/op	       6 allocs/op
+BenchmarkFory_MediaContent_Deserialize-12             	 2872570	       422.5 ns/op	     656 B/op	      13 allocs/op
+BenchmarkFory_MediaContent_Deserialize-12             	 2838810	       420.0 ns/op	     656 B/op	      13 allocs/op
+BenchmarkFory_MediaContent_Deserialize-12             	 2818161	       425.1 ns/op	     656 B/op	      13 allocs/op
+BenchmarkFory_MediaContent_Deserialize-12             	 2772471	       429.5 ns/op	     656 B/op	      13 allocs/op
+BenchmarkFory_MediaContent_Deserialize-12             	 2795403	       426.3 ns/op	     656 B/op	      13 allocs/op
+BenchmarkProtobuf_MediaContent_Deserialize-12         	 2154655	       560.8 ns/op	    1088 B/op	      21 allocs/op
+BenchmarkProtobuf_MediaContent_Deserialize-12         	 2131860	       564.7 ns/op	    1088 B/op	      21 allocs/op
+BenchmarkProtobuf_MediaContent_Deserialize-12         	 2128532	       560.8 ns/op	    1088 B/op	      21 allocs/op
+BenchmarkProtobuf_MediaContent_Deserialize-12         	 2126889	       562.1 ns/op	    1088 B/op	      21 allocs/op
+BenchmarkProtobuf_MediaContent_Deserialize-12         	 2114772	       564.3 ns/op	    1088 B/op	      21 allocs/op
+BenchmarkMsgpack_MediaContent_Deserialize-12          	  848928	      1422 ns/op	     896 B/op	      17 allocs/op
+BenchmarkMsgpack_MediaContent_Deserialize-12          	  850116	      1408 ns/op	     896 B/op	      17 allocs/op
+BenchmarkMsgpack_MediaContent_Deserialize-12          	  847324	      1424 ns/op	     896 B/op	      17 allocs/op
+BenchmarkMsgpack_MediaContent_Deserialize-12          	  830918	      1422 ns/op	     896 B/op	      17 allocs/op
+BenchmarkMsgpack_MediaContent_Deserialize-12          	  851023	      1420 ns/op	     896 B/op	      17 allocs/op
+BenchmarkFory_MediaContentList_Serialize-12           	  286959	      4177 ns/op	    1120 B/op	      21 allocs/op
+BenchmarkFory_MediaContentList_Serialize-12           	  286754	      4239 ns/op	    1120 B/op	      21 allocs/op
+BenchmarkFory_MediaContentList_Serialize-12           	  281565	      4186 ns/op	    1120 B/op	      21 allocs/op
+BenchmarkFory_MediaContentList_Serialize-12           	  285084	      4179 ns/op	    1120 B/op	      21 allocs/op
+BenchmarkFory_MediaContentList_Serialize-12           	  290010	      4108 ns/op	    1120 B/op	      21 allocs/op
+BenchmarkProtobuf_MediaContentList_Serialize-12       	  132528	      9121 ns/op	   22848 B/op	     203 allocs/op
+BenchmarkProtobuf_MediaContentList_Serialize-12       	  130459	      9076 ns/op	   22848 B/op	     203 allocs/op
+BenchmarkProtobuf_MediaContentList_Serialize-12       	  127272	      9106 ns/op	   22848 B/op	     203 allocs/op
+BenchmarkProtobuf_MediaContentList_Serialize-12       	  128955	      9462 ns/op	   22848 B/op	     203 allocs/op
+BenchmarkProtobuf_MediaContentList_Serialize-12       	  131900	      9070 ns/op	   22848 B/op	     203 allocs/op
+BenchmarkMsgpack_MediaContentList_Serialize-12        	   83436	     14480 ns/op	   16880 B/op	      30 allocs/op
+BenchmarkMsgpack_MediaContentList_Serialize-12        	   83728	     14436 ns/op	   16880 B/op	      30 allocs/op
+BenchmarkMsgpack_MediaContentList_Serialize-12        	   83997	     14310 ns/op	   16880 B/op	      30 allocs/op
+BenchmarkMsgpack_MediaContentList_Serialize-12        	   84308	     14375 ns/op	   16880 B/op	      30 allocs/op
+BenchmarkMsgpack_MediaContentList_Serialize-12        	   82885	     14530 ns/op	   16880 B/op	      30 allocs/op
+BenchmarkFory_MediaContentList_Deserialize-12         	  145394	      7719 ns/op	   13040 B/op	     243 allocs/op
+BenchmarkFory_MediaContentList_Deserialize-12         	  157838	      7526 ns/op	   13040 B/op	     243 allocs/op
+BenchmarkFory_MediaContentList_Deserialize-12         	  154821	      7502 ns/op	   13040 B/op	     243 allocs/op
+BenchmarkFory_MediaContentList_Deserialize-12         	  157782	      7555 ns/op	   13040 B/op	     243 allocs/op
+BenchmarkFory_MediaContentList_Deserialize-12         	  161598	      7542 ns/op	   13040 B/op	     243 allocs/op
+BenchmarkProtobuf_MediaContentList_Deserialize-12     	  105784	     11472 ns/op	   25400 B/op	     428 allocs/op
+BenchmarkProtobuf_MediaContentList_Deserialize-12     	  104074	     11597 ns/op	   25400 B/op	     428 allocs/op
+BenchmarkProtobuf_MediaContentList_Deserialize-12     	  103701	     11524 ns/op	   25400 B/op	     428 allocs/op
+BenchmarkProtobuf_MediaContentList_Deserialize-12     	  102218	     11472 ns/op	   25400 B/op	     428 allocs/op
+BenchmarkProtobuf_MediaContentList_Deserialize-12     	  105387	     11515 ns/op	   25400 B/op	     428 allocs/op
+BenchmarkMsgpack_MediaContentList_Deserialize-12      	   42776	     27946 ns/op	   20058 B/op	     307 allocs/op
+BenchmarkMsgpack_MediaContentList_Deserialize-12      	   42944	     27855 ns/op	   20058 B/op	     307 allocs/op
+BenchmarkMsgpack_MediaContentList_Deserialize-12      	   42837	     27976 ns/op	   20058 B/op	     307 allocs/op
+BenchmarkMsgpack_MediaContentList_Deserialize-12      	   43257	     27886 ns/op	   20058 B/op	     307 allocs/op
+BenchmarkMsgpack_MediaContentList_Deserialize-12      	   42781	     28241 ns/op	   20058 B/op	     307 allocs/op
+PASS
+ok  	github.com/apache/fory/benchmarks/go	258.432s
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/benchmarks/object-serialization/xlang/go/serialized_sizes.txt b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/benchmarks/object-serialization/xlang/go/serialized_sizes.txt
new file mode 100644
index 0000000000..ae66f376b8
--- /dev/null
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/benchmarks/object-serialization/xlang/go/serialized_sizes.txt
@@ -0,0 +1,27 @@
+Serialized Sizes (bytes):
+============================================
+NumericStruct:
+  Fory:     78 bytes
+  Protobuf: 93 bytes
+  Msgpack:  88 bytes
+Sample:
+  Fory:     445 bytes
+  Protobuf: 375 bytes
+  Msgpack:  524 bytes
+MediaContent:
+  Fory:     362 bytes
+  Protobuf: 301 bytes
+  Msgpack:  400 bytes
+NumericStructList:
+  Fory:     855 bytes
+  Protobuf: 1900 bytes
+  Msgpack:  1766 bytes
+SampleList:
+  Fory:     7663 bytes
+  Protobuf: 7560 bytes
+  Msgpack:  10486 bytes
+MediaContentList:
+  Fory:     5851 bytes
+  Protobuf: 6080 bytes
+  Msgpack:  8006 bytes
+============================================
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/benchmarks/object-serialization/xlang/go/throughput.png b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/benchmarks/object-serialization/xlang/go/throughput.png
new file mode 100644
index 0000000000..d93b986185
Binary files /dev/null and b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/benchmarks/object-serialization/xlang/go/throughput.png differ
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/benchmarks/object-serialization/xlang/java/README.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/benchmarks/object-serialization/xlang/java/README.md
new file mode 100644
index 0000000000..faed899e00
--- /dev/null
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/benchmarks/object-serialization/xlang/java/README.md
@@ -0,0 +1,44 @@
+# Java Xlang 序列化基准测试
+
+有关 fory-json、Jackson 和 Gson 的结果,请参阅 [Java JSON 基准测试报告](../../../json/java/README.md)。
+
+本报告涵盖由 `benchmarks/java/run.sh` 生成的 xlang 基准测试组。它不沿用单独的 [Java 原生模式报告](../../native/java/README.md) 中记录的环境或原生模式工作负载。仓库中检入的 xlang 快照没有记录主机、Fory 提交或依赖版本;在使用这些结果进行当前对比之前,请重新运行基准测试。
+
+新建或更新报告时所需的元数据,请参阅[基准测试方法](../../../methodology.md)。
+
+## 工作负载
+
+- `NumericStruct`:包含基本类型数值字段。
+- `Sample`:[Kryo 基准测试套件](https://github.com/EsotericSoftware/kryo/blob/master/benchmarks/src/main/java/com/esotericsoftware/kryo/benchmarks/data/Sample.java)使用的模型。
+- `MediaContent`:[jvm-serializers](https://github.com/eishay/jvm-serializers/blob/master/tpc/src/data/media/MediaContent.java) 中的媒体模型。
+- `*List`:对应模型的列表。
+
+## 运行基准测试
+
+从 `benchmarks/java/run.sh` 运行。原始 JMH JSON 保留在已忽略的本地 `benchmarks/java/reports/` 目录中;`throughput.png` 和这份 xlang 报告发布在 `docs/benchmarks/object-serialization/xlang/java/` 下。
+
+```bash
+cd benchmarks/java
+./run.sh
+```
+
+JMH 参数:`-f 1 -wi 3 -i 3 -t 1 -w 3s -r 3s -bm thrpt -tu s`。不要跳过预热。吞吐量越高越好。
+
+## 结果
+
+![Java Xlang 序列化吞吐量](throughput.png)
+
+| 数据类型          | 操作     | Fory ops/sec | Protobuf ops/sec | Flatbuffer ops/sec | 最快 |
+| ----------------- | -------- | ------------ | ---------------- | ------------------ | ---- |
+| NumericStruct     | 序列化   | 46,787,647   | 33,024,161       | 9,612,018          | Fory |
+| NumericStruct     | 反序列化 | 71,683,707   | 29,837,931       | 40,514,436         | Fory |
+| Sample            | 序列化   | 17,406,902   | 2,071,963        | 3,153,672          | Fory |
+| Sample            | 反序列化 | 17,772,123   | 1,867,967        | 4,179,494          | Fory |
+| MediaContent      | 序列化   | 10,783,325   | 1,781,338        | 1,444,737          | Fory |
+| MediaContent      | 反序列化 | 7,950,203    | 2,184,597        | 3,453,985          | Fory |
+| NumericStructList | 序列化   | 21,263,673   | 2,511,081        | 3,047,836          | Fory |
+| NumericStructList | 反序列化 | 19,249,877   | 2,067,204        | 8,168,569          | Fory |
+| SampleList        | 序列化   | 4,580,165    | 401,280          | 696,268            | Fory |
+| SampleList        | 反序列化 | 3,811,985    | 344,945          | 773,625            | Fory |
+| MediaContentList  | 序列化   | 1,657,717    | 353,717          | 296,868            | Fory |
+| MediaContentList  | 反序列化 | 1,111,043    | 435,956          | 516,192            | Fory |
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/benchmarks/object-serialization/xlang/java/throughput.png b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/benchmarks/object-serialization/xlang/java/throughput.png
new file mode 100644
index 0000000000..025f8b4329
Binary files /dev/null and b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/benchmarks/object-serialization/xlang/java/throughput.png differ
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/benchmarks/object-serialization/xlang/javascript/README.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/benchmarks/object-serialization/xlang/javascript/README.md
new file mode 100644
index 0000000000..c32ddd8479
--- /dev/null
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/benchmarks/object-serialization/xlang/javascript/README.md
@@ -0,0 +1,82 @@
+# JavaScript 基准测试性能报告
+
+_生成于 2026-05-08 17:55:12_
+
+## 如何生成此报告
+
+```bash
+cd benchmarks/javascript
+./run.sh
+```
+
+## 基准测试语义
+
+计时的序列化器循环使用各序列化器原生的类型化值。Fory 接收其模式所使用的预规范化 Fory 值,protobuf 接收预先构建的 protobuf 形态值,JSON 接收基准测试所用的 JavaScript 对象。protobuf 的计时不包括 `toProto`、`fromProto`、`protobufjs.create` 或 `toObject` 的转换开销。
+
+## 基准测试图
+
+图中展示吞吐量(ops/sec);数值越高越好。
+
+![吞吐量](throughput.png)
+
+## 硬件和操作系统信息
+
+| 项目                       | 值                       |
+| -------------------------- | ------------------------ |
+| 操作系统                   | Darwin 24.6.0            |
+| 机器架构                   | arm64                    |
+| 处理器                     | arm                      |
+| CPU 核心数(物理)         | 12                       |
+| CPU 核心数(逻辑)         | 12                       |
+| 内存总量(GB)             | 48.0                     |
+| 基准测试日期               | 2026-05-08T08:07:36.073Z |
+| CPU 核心数(来自基准测试) | 12                       |
+| Node.js                    | v22.20.0                 |
+| V8                         | 12.4.254.21-node.33      |
+
+## 基准测试结果
+
+### 耗时结果(纳秒)
+
+| 数据类型          | 操作     | fory (ns) | protobuf (ns) | json (ns) | 最快     |
+| ----------------- | -------- | --------- | ------------- | --------- | -------- |
+| NumericStruct     | 序列化   | 76.0      | 613.0         | 496.0     | fory     |
+| NumericStruct     | 反序列化 | 56.9      | 94.8          | 333.0     | fory     |
+| Sample            | 序列化   | 318.0     | 2016.6        | 1409.3    | fory     |
+| Sample            | 反序列化 | 496.0     | 902.5         | 1609.6    | fory     |
+| MediaContent      | 序列化   | 494.1     | 1358.5        | 803.5     | fory     |
+| MediaContent      | 反序列化 | 539.3     | 628.3         | 1134.3    | fory     |
+| NumericStructList | 序列化   | 195.3     | 3019.3        | 2013.5    | fory     |
+| NumericStructList | 反序列化 | 183.7     | 606.9         | 1944.0    | fory     |
+| SampleList        | 序列化   | 1681.9    | 19346.7       | 11870.3   | fory     |
+| SampleList        | 反序列化 | 2571.9    | 5730.6        | 9074.5    | fory     |
+| MediaContentList  | 序列化   | 2785.9    | 7616.6        | 3611.5    | fory     |
+| MediaContentList  | 反序列化 | 3709.7    | 3018.6        | 5294.5    | protobuf |
+
+### 吞吐量结果(ops/sec)
+
+| 数据类型          | 操作     | fory TPS   | protobuf TPS | json TPS  | 最快     |
+| ----------------- | -------- | ---------- | ------------ | --------- | -------- |
+| NumericStruct     | 序列化   | 13,162,466 | 1,631,271    | 2,016,097 | fory     |
+| NumericStruct     | 反序列化 | 17,568,418 | 10,543,763   | 3,002,971 | fory     |
+| Sample            | 序列化   | 3,144,194  | 495,893      | 709,593   | fory     |
+| Sample            | 反序列化 | 2,015,942  | 1,108,010    | 621,285   | fory     |
+| MediaContent      | 序列化   | 2,023,719  | 736,097      | 1,244,512 | fory     |
+| MediaContent      | 反序列化 | 1,854,348  | 1,591,617    | 881,572   | fory     |
+| NumericStructList | 序列化   | 5,121,376  | 331,201      | 496,645   | fory     |
+| NumericStructList | 反序列化 | 5,444,504  | 1,647,728    | 514,414   | fory     |
+| SampleList        | 序列化   | 594,551    | 51,688       | 84,244    | fory     |
+| SampleList        | 反序列化 | 388,820    | 174,503      | 110,199   | fory     |
+| MediaContentList  | 序列化   | 358,954    | 131,293      | 276,891   | fory     |
+| MediaContentList  | 反序列化 | 269,561    | 331,275      | 188,876   | protobuf |
+
+### 序列化数据大小(字节)
+
+| 数据类型          | fory | protobuf | json |
+| ----------------- | ---- | -------- | ---- |
+| NumericStruct     | 78   | 93       | 159  |
+| Sample            | 445  | 377      | 724  |
+| MediaContent      | 388  | 307      | 596  |
+| NumericStructList | 255  | 475      | 817  |
+| SampleList        | 1978 | 1900     | 3642 |
+| MediaContentList  | 1661 | 1550     | 3009 |
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/benchmarks/object-serialization/xlang/javascript/throughput.png b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/benchmarks/object-serialization/xlang/javascript/throughput.png
new file mode 100644
index 0000000000..54c24051d6
Binary files /dev/null and b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/benchmarks/object-serialization/xlang/javascript/throughput.png differ
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/benchmarks/object-serialization/xlang/python/README.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/benchmarks/object-serialization/xlang/python/README.md
new file mode 100644
index 0000000000..db46fc47ee
--- /dev/null
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/benchmarks/object-serialization/xlang/python/README.md
@@ -0,0 +1,87 @@
+# Python 基准测试性能报告
+
+_生成于 2026-05-08 17:54:45_
+
+## 如何生成本报告
+
+```bash
+cd benchmarks/python
+./run.sh
+```
+
+## 基准测试图表
+
+图表显示吞吐量(ops/sec);越高越好。
+
+![吞吐量](throughput.png)
+
+## 硬件和操作系统信息
+
+| 键                 | 值                           |
+| ------------------ | ---------------------------- |
+| 操作系统           | Darwin 24.6.0                |
+| 机器架构           | arm64                        |
+| 处理器             | arm                          |
+| Python             | 3.10.8                       |
+| CPU 核心数(物理) | 12                           |
+| CPU 核心数(逻辑) | 12                           |
+| 内存总量(GB)     | 48.0                         |
+| Python 实现        | CPython                      |
+| 基准测试平台       | macOS-15.7.2-arm64-arm-64bit |
+
+## 基准测试配置
+
+| 键         | 值   |
+| ---------- | ---- |
+| warmup     | 3    |
+| iterations | 15   |
+| repeat     | 5    |
+| number     | 1000 |
+| list_size  | 5    |
+
+## 基准测试结果
+
+### 耗时结果(nanoseconds)
+
+| 数据类型          | 操作     | fory (ns) | protobuf (ns) | pickle (ns) | 最快 |
+| ----------------- | -------- | --------- | ------------- | ----------- | ---- |
+| NumericStruct     | 序列化   | 491.4     | 802.3         | 1119.8      | fory |
+| NumericStruct     | 反序列化 | 522.2     | 1211.6        | 1788.7      | fory |
+| Sample            | 序列化   | 1096.4    | 3315.8        | 10185.2     | fory |
+| Sample            | 反序列化 | 2772.0    | 6659.7        | 7061.9      | fory |
+| MediaContent      | 序列化   | 989.2     | 3433.2        | 4392.7      | fory |
+| MediaContent      | 反序列化 | 1518.7    | 4381.2        | 4305.1      | fory |
+| NumericStructList | 序列化   | 1111.2    | 4707.9        | 3235.8      | fory |
+| NumericStructList | 反序列化 | 1891.7    | 6891.0        | 3974.9      | fory |
+| SampleList        | 序列化   | 3447.2    | 18719.1       | 32125.7     | fory |
+| SampleList        | 反序列化 | 13131.6   | 35264.2       | 24154.4     | fory |
+| MediaContentList  | 序列化   | 2996.5    | 17597.4       | 11087.8     | fory |
+| MediaContentList  | 反序列化 | 6228.7    | 21562.0       | 10459.3     | fory |
+
+### 吞吐量结果(ops/sec)
+
+| 数据类型          | 操作     | fory TPS  | protobuf TPS | pickle TPS | 最快 |
+| ----------------- | -------- | --------- | ------------ | ---------- | ---- |
+| NumericStruct     | 序列化   | 2,035,025 | 1,246,379    | 893,009    | fory |
+| NumericStruct     | 反序列化 | 1,915,112 | 825,344      | 559,055    | fory |
+| Sample            | 序列化   | 912,072   | 301,590      | 98,182     | fory |
+| Sample            | 反序列化 | 360,751   | 150,158      | 141,605    | fory |
+| MediaContent      | 序列化   | 1,010,939 | 291,275      | 227,652    | fory |
+| MediaContent      | 反序列化 | 658,462   | 228,247      | 232,281    | fory |
+| NumericStructList | 序列化   | 899,960   | 212,407      | 309,040    | fory |
+| NumericStructList | 反序列化 | 528,636   | 145,116      | 251,580    | fory |
+| SampleList        | 序列化   | 290,092   | 53,421       | 31,128     | fory |
+| SampleList        | 反序列化 | 76,152    | 28,357       | 41,400     | fory |
+| MediaContentList  | 序列化   | 333,720   | 56,826       | 90,189     | fory |
+| MediaContentList  | 反序列化 | 160,547   | 46,378       | 95,609     | fory |
+
+### 序列化数据大小(bytes)
+
+| 数据类型          | fory | protobuf | pickle |
+| ----------------- | ---- | -------- | ------ |
+| NumericStruct     | 78   | 93       | 169    |
+| Sample            | 445  | 375      | 1176   |
+| MediaContent      | 366  | 301      | 624    |
+| NumericStructList | 219  | 475      | 582    |
+| SampleList        | 1914 | 1890     | 3546   |
+| MediaContentList  | 1614 | 1520     | 1415   |
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/benchmarks/object-serialization/xlang/python/throughput.png b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/benchmarks/object-serialization/xlang/python/throughput.png
new file mode 100644
index 0000000000..7bd99a82e6
Binary files /dev/null and b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/benchmarks/object-serialization/xlang/python/throughput.png differ
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/benchmarks/object-serialization/xlang/rust/README.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/benchmarks/object-serialization/xlang/rust/README.md
new file mode 100644
index 0000000000..c5d2021d0f
--- /dev/null
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/benchmarks/object-serialization/xlang/rust/README.md
@@ -0,0 +1,78 @@
+# Rust 基准测试性能报告
+
+_生成时间:2026-05-08 17:55:12_
+
+## 如何生成此报告
+
+```bash
+cd benchmarks/rust
+cargo bench --manifest-path xlang/Cargo.toml --bench serialization_bench 2>&1 | tee results/cargo_bench.log
+cargo bench --manifest-path local/Cargo.toml --bench external_type_bench 2>&1 | tee -a results/cargo_bench.log
+cargo run --release --manifest-path xlang/Cargo.toml --bin fory_profiler -- --print-all-serialized-sizes | tee results/serialized_sizes.txt
+python benchmark_report.py --log-file results/cargo_bench.log --size-file results/serialized_sizes.txt --output-dir results
+```
+
+## 基准测试图表
+
+下图展示吞吐量(ops/sec);数值越高越好。
+
+![吞吐量](throughput.png)
+
+## 硬件和操作系统信息
+
+| 项目               | 值                  |
+| ------------------ | ------------------- |
+| 操作系统           | Darwin 24.6.0       |
+| 机器架构           | arm64               |
+| 处理器             | arm                 |
+| CPU 核心数(物理) | 12                  |
+| CPU 核心数(逻辑) | 12                  |
+| 内存总量(GB)     | 48.0                |
+| 基准测试日期       | 2026-05-08T16:47:49 |
+
+## 基准测试结果
+
+### 耗时结果(nanoseconds)
+
+| 数据类型          | 操作     | fory (ns) | protobuf (ns) | msgpack (ns) | 最快 |
+| ----------------- | -------- | --------- | ------------- | ------------ | ---- |
+| NumericStruct     | 序列化   | 38.1      | 94.6          | 239.5        | fory |
+| NumericStruct     | 反序列化 | 32.6      | 62.4          | 107.3        | fory |
+| Sample            | 序列化   | 95.3      | 591.8         | 601.1        | fory |
+| Sample            | 反序列化 | 410.1     | 925.8         | 805.9        | fory |
+| MediaContent      | 序列化   | 120.0     | 553.9         | 446.9        | fory |
+| MediaContent      | 反序列化 | 566.7     | 713.0         | 902.6        | fory |
+| NumericStructList | 序列化   | 121.5     | 512.0         | 618.0        | fory |
+| NumericStructList | 反序列化 | 137.9     | 404.9         | 615.9        | fory |
+| SampleList        | 序列化   | 267.7     | 2920.2        | 2011.1       | fory |
+| SampleList        | 反序列化 | 1831.9    | 4636.4        | 4141.4       | fory |
+| MediaContentList  | 序列化   | 367.1     | 2835.6        | 1441.7       | fory |
+| MediaContentList  | 反序列化 | 2703.8    | 3622.3        | 4832.3       | fory |
+
+### 吞吐量结果(ops/sec)
+
+| 数据类型          | 操作     | fory TPS   | protobuf TPS | msgpack TPS | 最快 |
+| ----------------- | -------- | ---------- | ------------ | ----------- | ---- |
+| NumericStruct     | 序列化   | 26,237,767 | 10,572,613   | 4,174,668   | fory |
+| NumericStruct     | 反序列化 | 30,720,079 | 16,035,920   | 9,322,271   | fory |
+| Sample            | 序列化   | 10,494,611 | 1,689,874    | 1,663,700   | fory |
+| Sample            | 反序列化 | 2,438,311  | 1,080,170    | 1,240,895   | fory |
+| MediaContent      | 序列化   | 8,331,945  | 1,805,445    | 2,237,687   | fory |
+| MediaContent      | 反序列化 | 1,764,633  | 1,402,426    | 1,107,960   | fory |
+| NumericStructList | 序列化   | 8,232,485  | 1,953,125    | 1,618,071   | fory |
+| NumericStructList | 反序列化 | 7,250,580  | 2,469,563    | 1,623,535   | fory |
+| SampleList        | 序列化   | 3,735,664  | 342,442      | 497,240     | fory |
+| SampleList        | 反序列化 | 545,881    | 215,685      | 241,464     | fory |
+| MediaContentList  | 序列化   | 2,724,350  | 352,659      | 693,626     | fory |
+| MediaContentList  | 反序列化 | 369,850    | 276,068      | 206,941     | fory |
+
+### 序列化数据大小(bytes)
+
+| 数据类型          | fory | protobuf | msgpack |
+| ----------------- | ---- | -------- | ------- |
+| NumericStruct     | 78   | 93       | 87      |
+| Sample            | 445  | 375      | 590     |
+| MediaContent      | 362  | 301      | 500     |
+| NumericStructList | 255  | 475      | 449     |
+| SampleList        | 1978 | 1890     | 2964    |
+| MediaContentList  | 1531 | 1520     | 2521    |
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/benchmarks/object-serialization/xlang/rust/throughput.png b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/benchmarks/object-serialization/xlang/rust/throughput.png
new file mode 100644
index 0000000000..5640e734e4
Binary files /dev/null and b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/benchmarks/object-serialization/xlang/rust/throughput.png differ
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/benchmarks/object-serialization/xlang/swift/README.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/benchmarks/object-serialization/xlang/swift/README.md
new file mode 100644
index 0000000000..ddd72b8129
--- /dev/null
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/benchmarks/object-serialization/xlang/swift/README.md
@@ -0,0 +1,51 @@
+# Fory Swift 基准测试
+
+本基准测试比较 Apache Fory、Protocol Buffers 和 JSON 在 Swift 中的序列化与反序列化吞吐量。
+
+## 基准测试范围
+
+以下结果涵盖 `swift-benchmark` 运行的常规/xlang 测试用例。外部类型与载体对比使用独立的
+`swift-external-benchmark` 可执行文件,仅在明确请求时才会包含。
+
+## 吞吐量图
+
+![吞吐量](throughput.png)
+
+## 硬件和运行时信息
+
+| 项目                   | 值                            |
+| ---------------------- | ----------------------------- |
+| 时间戳                 | 2026-08-04T09:52:12Z          |
+| 操作系统               | Version 15.7.2 (Build 24G325) |
+| 主机                   | MacBook-Pro.local             |
+| CPU 核心数(逻辑)     | 12                            |
+| 内存 (GB)              | 48.00                         |
+| 每个测试用例的时长 (s) | 3                             |
+
+## 吞吐量结果
+
+| 数据类型          | 操作     |   Fory TPS | Protobuf TPS | JSON TPS | 最快         |
+| ----------------- | -------- | ---------: | -----------: | -------: | ------------ |
+| NumericStruct     | 序列化   | 14,759,606 |    7,572,190 |  481,278 | fory (1.95x) |
+| NumericStruct     | 反序列化 | 18,155,795 |    7,317,942 |  377,802 | fory (2.48x) |
+| Sample            | 序列化   |  5,633,231 |    1,380,130 |  102,372 | fory (4.08x) |
+| Sample            | 反序列化 |  1,509,740 |      916,626 |   52,897 | fory (1.65x) |
+| MediaContent      | 序列化   |  2,987,821 |      784,863 |  111,200 | fory (3.81x) |
+| MediaContent      | 反序列化 |  1,072,345 |      549,726 |   97,799 | fory (1.95x) |
+| NumericStructList | 序列化   |  5,515,769 |    1,093,924 |   93,635 | fory (5.04x) |
+| NumericStructList | 反序列化 |  2,598,609 |      746,527 |   76,161 | fory (3.48x) |
+| SampleList        | 序列化   |  1,201,868 |      220,772 |   20,772 | fory (5.44x) |
+| SampleList        | 反序列化 |    286,949 |      161,192 |   10,777 | fory (1.78x) |
+| MediaContentList  | 序列化   |    657,276 |      118,004 |   22,744 | fory (5.57x) |
+| MediaContentList  | 反序列化 |    215,726 |       99,445 |   19,521 | fory (2.17x) |
+
+## 序列化大小 (bytes)
+
+| 数据类型          | Fory | Protobuf | JSON |
+| ----------------- | ---: | -------: | ---: |
+| NumericStruct     |   78 |       93 |  159 |
+| Sample            |  445 |      375 |  696 |
+| MediaContent      |  362 |      301 |  608 |
+| NumericStructList |  255 |      475 |  816 |
+| SampleList        | 1978 |     1890 | 3501 |
+| MediaContentList  | 1531 |     1520 | 3067 |
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/benchmarks/object-serialization/xlang/swift/throughput.png b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/benchmarks/object-serialization/xlang/swift/throughput.png
new file mode 100644
index 0000000000..3e1ee73540
Binary files /dev/null and b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/benchmarks/object-serialization/xlang/swift/throughput.png differ
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/community/community.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/community/community.md
new file mode 100644
index 0000000000..3115215910
--- /dev/null
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/community/community.md
@@ -0,0 +1,84 @@
+---
+title: 社区
+sidebar_position: 0
+id: community
+---
+
+Apache Fory™ 是一个志愿者项目,依靠社区贡献蓬勃发展。
+无论您愿意投入多少精力,我们都诚邀您参与。以下是几种贡献方式:
+
+- 使用我们的项目并分享反馈。
+- 提供项目用例。
+- 报告 Bug 并贡献修复。
+- 贡献代码和改进文档。
+
+## 邮件列表
+
+| 名称                    | 说明             | 订阅                                             | 取消订阅                                               | 发帖                               | 存档                                                               |
+| ----------------------- | ---------------- | ------------------------------------------------ | ------------------------------------------------------ | ---------------------------------- | ------------------------------------------------------------------ |
+| dev@fory.apache.org     | 开发相关讨论     | [订阅](mailto:dev-subscribe@fory.apache.org)     | [取消订阅](mailto:dev-unsubscribe@fory.apache.org)     | [发帖](mailto:dev@fory.apache.org) | [存档](https://lists.apache.org/list.html?dev@fory.apache.org)     |
+| commits@fory.apache.org | 仓库中的所有提交 | [订阅](mailto:commits-subscribe@fory.apache.org) | [取消订阅](mailto:commits-unsubscribe@fory.apache.org) | 只读列表                           | [存档](https://lists.apache.org/list.html?commits@fory.apache.org) |
+
+尝试发帖前,请务必先订阅相应的邮件列表。
+
+如果您没有订阅邮件列表,您的消息将被拒绝,或者您将无法收到回复。
+
+### 如何订阅邮件列表
+
+要发布消息,请先按以下步骤订阅:
+
+1. 向 listname-subscribe@fory.apache.org 发送电子邮件,并相应替换 `listname`。
+2. 回复收到的确认邮件,并保持主题行不变。
+3. 随后您将收到欢迎邮件,表示订阅成功。
+
+通过电子邮件讨论代码片段时,请确保:
+
+- 不要链接到外部服务中的文件,因为这些文件可能会更改、被删除或链接可能失效,从而使存档的邮件讨论串失去价值。
+- 粘贴文本,而不是文字截图。
+- 粘贴代码时保留格式,以确保代码可读。
+- 包含足够的导入语句,以避免歧义。
+
+## Slack
+
+您可以加入 [Slack 上的 Apache Fory™ 社区](https://join.slack.com/t/fory-project/shared_invite/zt-1u8soj4qc-ieYEu7ciHOqA2mo47llS8A)。
+
+社区有以下几项规则:
+
+- 相互尊重,友善交流。
+- 所有重要决定和结论都必须同步到邮件列表。“如果没有在邮件列表中发生,就等于没有发生。”——[Apache 格言](https://theapacheway.com/on-list/)。
+- 使用 Slack 讨论串,避免并行对话淹没频道。
+- 请勿通过私信请求他人协助排查问题、分配 Issue 或评审 PR。这些工作应由社区成员自愿认领。
+
+## Issue 跟踪器
+
+我们使用 GitHub Issues 跟踪所有问题:
+
+- 代码相关问题:https://github.com/apache/fory/issues
+- 网站相关问题:https://github.com/apache/fory-site/issues
+
+您需要拥有 [GitHub 账号](https://github.com/signup)才能创建 Issue。
+如果您没有 [GitHub 账号](https://github.com/signup),可以向 dev@fory.apache.org 发送电子邮件。
+
+### Bug 报告
+
+报告 Bug 时:
+
+- 确认该 Bug 确实存在。
+- 搜索 [Issue 跟踪器](https://github.com/apache/fory/issues),确认其中没有报告您所发现 Bug 的现有 Issue。
+- 在 Issue 跟踪器中创建 [Bug 报告](https://github.com/apache/fory/issues/new?assignees=&labels=bug&projects=&template=bug_report.yml)。
+- 如果可以,请深入研究 Fory 源代码,并为您报告的 Bug 提交补丁,这有助于确保 Bug 得到快速修复。
+
+### 报告安全漏洞
+
+Apache Fory™ 是 [Apache 软件基金会](https://apache.org/)的项目,并遵循 [ASF 漏洞处理流程](https://apache.org/security/#vulnerability-handling)。
+
+如需报告您发现的新漏洞,请遵循 [ASF 漏洞报告流程](https://apache.org/security/#reporting-a-vulnerability),该流程说明了如何私下向我们发送详细信息。
+
+### 功能增强
+
+我们也欢迎功能增强或新功能提案。提案越具体、理由越充分,被纳入未来版本的可能性就越大。
+
+## 源代码
+
+- Fory 核心仓库:https://github.com/apache/fory
+- Fory 网站仓库:https://github.com/apache/fory-site
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/community/how_to_join_community.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/community/how_to_join_community.md
new file mode 100644
index 0000000000..b9abbc3036
--- /dev/null
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/community/how_to_join_community.md
@@ -0,0 +1,105 @@
+---
+title: 如何加入 Apache Fory™
+sidebar_position: 0
+id: how_to_join_community
+---
+
+首先,为您选择加入开源贡献者行列点赞。其次,非常感谢您选择参与 Fory 社区,并为这个开源项目贡献力量。
+
+## Fory 贡献指南
+
+Fory 团队通常在 GitHub 上进行开发和维护 Issue。请打开 [GitHub 网站](https://github.com/),点击右上角的 `Sign up` 按钮,注册自己的账号,迈出开源之旅的第一步。
+
+在 [Fory 仓库](https://github.com/apache/fory)中,我们为所有开源贡献者准备了一份[指南](https://fory.apache.org/zh-CN/docs/community/),其中介绍了版本管理和分支管理等内容。**请花几分钟时间阅读并理解它**。
+
+## 您的第一个 Pull Request
+
+### 第 0 步:安装 Git
+
+Git 是一种版本控制系统,用于跟踪和管理软件开发项目中的代码变更。它可以帮助开发者记录和管理代码历史,便于团队协作、代码版本控制、代码合并等操作。借助 Git,您可以跟踪每个文件的各个版本,并轻松切换和比较不同版本。Git 还提供分支管理功能,允许同时开展多个并行开发任务。
+
+- 访问 Git 官方网站:[https://git-scm.com/] (https://git-scm.com/)
+- 下载最新版本的 Git 安装程序。
+- 运行下载的安装程序,并按照安装向导的提示完成安装。
+- 安装完成后,可以在命令行中使用 `git version` 命令确认是否安装成功。
+
+### 第 1 步:Fork 项目
+
+- 首先,您需要 Fork 此项目。进入 [Fory 项目页面](https://github.com/apache/fory),然后点击右上角的 Fork 按钮。
+- 在您的 GitHub 账号中,将会出现 xxxx(您的 GitHub 用户名)/fory 项目。
+- 在本地计算机上,使用以下命令获取 fory 文件夹:
+
+```
+// ssh
+git clone git@github.com:xxxx (your GitHub username)/fory.git
+// https
+git clone https://github.com/xxxx (your GitHub username)/fory.git
+```
+
+### 第 2 步:获取项目代码
+
+- 进入 fory 文件夹,并添加 fory 的远程地址:
+
+```
+git remote add upstream https://github.com/apache/fory.git
+```
+
+### 第 3 步:创建分支
+
+- 现在,您可以开始贡献代码了。Fory 的默认分支是 main 分支。无论是开发功能、修复 Bug 还是编写文档,请先创建新分支,再将其合并到 main 分支。使用以下代码创建分支:
+
+```
+// Create a function development branch
+git checkout -b feat/xxxx
+
+// Create a problem-fixing development branch
+git checkout -b fix/xxxx
+
+// Create a documentation, demo branch
+git checkout -b docs/add-java-demo
+```
+
+假设我们已创建文档修改分支 `docs/add-java-demo`,添加了一些代码并将其提交到了代码仓库。
+
+- `git add .`
+- `git commit -a -m "docs: add java demo and related docs"`
+
+### 第 4 步:合并修改
+
+- 切换回您的开发分支:
+
+```
+git checkout docs/add-java-demo
+```
+
+- 将更新后的代码提交到您的分支:
+
+```
+git push origin docs/add-java-demo
+```
+
+### 第 5 步:提交 Pull Request
+
+您可以在 GitHub 代码仓库页面点击 `Compare & pull request` 按钮,也可以通过 `contribute` 按钮创建。
+
+- 填写此次修改的类型。
+- 填写关联的 Issue。
+- 如果变更较为复杂,请说明背景和解决方案。
+
+填写相关信息后,点击 Create pull request 提交。
+
+## **轻松开启 Fory 开源贡献之旅**
+
+“**good first issue**”是开源社区中的常见标签,目的是帮助新贡献者找到适合入门的 Issue。
+
+您可以通过 [Issue 列表](https://github.com/apache/fory/issues)查看 Fory 的入门 Issue。
+
+如果您目前**有时间也有意愿**参与社区贡献,可以查看 Issue 中的 **good first issue**,选择一个自己感兴趣且适合认领的 Issue。
+
+## 融入 Apache Fory™ 社区
+
+在为 Fory 贡献代码的同时,我们也鼓励您参与其他有助于社区繁荣的活动,例如:
+
+- 为项目发展、功能规划等提出建议。
+- 创作文章和视频,举办讲座来推广 Fory。
+- 编写推广计划,并与团队共同执行。
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/community/how_to_release.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/community/how_to_release.md
new file mode 100644
index 0000000000..227d59f5f5
--- /dev/null
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/community/how_to_release.md
@@ -0,0 +1,607 @@
+---
+title: 如何发布
+sidebar_position: 0
+id: how_to_release
+---
+
+本文主要介绍发布经理如何发布 Apache Fory™ 的新版本。
+
+## 简介
+
+源码发布是 Apache 最为重视的环节。
+
+请特别注意许可证和签名问题。发布软件是一件严肃的事情,并会产生法律后果。
+
+## 首次担任发布经理
+
+### 环境要求
+
+本发布流程在 Ubuntu 操作系统上执行,需要以下工具:
+
+- OpenJDK 25+
+- Apache Maven 3.6.3+
+- Python 3.8+
+- GnuPG 2.x
+- Git
+- SVN(Apache 使用 SVN 托管项目发布版本)
+- 可选的软件包发布与验证工具:Node.js LTS 和 npm、通过 rustup 安装的 Rust、Go 1.24+、Dart、.NET SDK 8.0+ 以及 sbt
+- 请注意设置环境变量:如果将 GPG 密钥配置在其他目录中,请执行 `export GNUPGHOME=$(xxx)`
+
+### 准备 GPG 密钥
+
+如果您是第一次担任发布经理,需要准备一个 GPG 密钥。
+
+下面提供快速设置步骤。更多详情请参阅 [Apache OpenPGP 文档](https://infra.apache.org/openpgp.html)。
+
+#### 安装 GPG
+
+```bash
+sudo apt install gnupg2
+```
+
+#### 生成 GPG 密钥
+
+请使用您的 Apache 用户名和电子邮件地址生成密钥。
+
+```bash
+$ gpg --full-gen-key
+gpg (GnuPG) 2.2.20; Copyright (C) 2020 Free Software Foundation, Inc.
+This is free software: you are free to change and redistribute it.
+There is NO WARRANTY, to the extent permitted by law.
+
+Please select what kind of key you want:
+   (1) RSA and RSA (default)
+   (2) DSA and Elgamal
+   (3) DSA (sign only)
+   (4) RSA (sign only)
+  (14) Existing key from card
+Your selection? 1 # input 1
+RSA keys may be between 1024 and 4096 bits long.
+What keysize do you want? (2048) 4096 # input 4096
+Requested keysize is 4096 bits
+Please specify how long the key should be valid.
+         0 = key does not expire
+      <n>  = key expires in n days
+      <n>w = key expires in n weeks
+      <n>m = key expires in n months
+      <n>y = key expires in n years
+Key is valid for? (0) 0 # input 0
+Key does not expire at all
+Is this correct? (y/N) y # input y
+
+GnuPG needs to construct a user ID to identify your key.
+
+Real name: Chaokun Yang                   # input your name
+Email address: chaokunyang@apache.org     # input your email
+Comment: CODE SIGNING KEY                 # input some annotations, optional
+You selected this USER-ID:
+    "Chaokun <ch...@apache.org>"
+
+Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? O # input O
+We need to generate a lot of random bytes. It is a good idea to perform
+some other action (type on the keyboard, move the mouse, utilize the
+disks) during the prime generation; this gives the random number
+generator a better chance to gain enough entropy.
+We need to generate a lot of random bytes. It is a good idea to perform
+some other action (type on the keyboard, move the mouse, utilize the
+disks) during the prime generation; this gives the random number
+generator a better chance to gain enough entropy.
+
+# Input the security key
+┌──────────────────────────────────────────────────────┐
+│ Please enter this passphrase                         │
+│                                                      │
+│ Passphrase: _______________________________          │
+│                                                      │
+│       <OK>                              <Cancel>     │
+└──────────────────────────────────────────────────────┘
+# key generation will be done after your inputting the key with the following output
+gpg: key E49B00F626B marked as ultimately trusted
+gpg: revocation certificate stored as '/Users/chaokunyang/.gnupg/openpgp-revocs.d/1E2CDAE4C08AD7D694D1CB139D7BE8E45E580BA4.rev'
+public and secret key created and signed.
+
+pub   rsa4096 2022-07-12 [SC]
+      1E2CDAE4C08AD7D694D1CB139D7BE8E45E580BA4
+uid           [ultimate] Chaokun <ch...@apache.org>
+sub   rsa4096 2022-07-12 [E]
+```
+
+#### 将公钥上传到公共 GPG 密钥服务器
+
+首先,列出您的密钥:
+
+```bash
+gpg --list-keys
+```
+
+输出类似如下:
+
+```bash
+--------------------------------------------------
+pub   rsa4096 2024-03-27 [SC]
+      1E2CDAE4C08AD7D694D1CB139D7BE8E45E580BA4
+uid           [ultimate] chaokunyang (CODE SIGNING KEY) <ch...@apache.org>
+sub   rsa4096 2024-03-27 [E]
+```
+
+然后,将您的密钥 ID 发送到密钥服务器:
+
+```bash
+gpg --keyserver keys.openpgp.org --send-key <key-id> # e.g., 1E2CDAE4C08AD7D694D1CB139D7BE8E45E580BA4
+```
+
+这里随机选择了 `keys.openpgp.org` 作为密钥服务器,您也可以使用 keyserver.ubuntu.com 或其他功能完整的密钥服务器。
+
+#### 检查密钥是否创建成功
+
+上传大约需要一分钟,之后可以通过相应密钥服务器的电子邮件验证功能进行检查。
+
+将密钥上传到密钥服务器,主要是为了加入[信任网络(Web of Trust)](https://infra.apache.org/release-signing.html#web-of-trust)。
+
+#### 将 GPG 公钥添加到项目的 KEYS 文件
+
+发布分支的 SVN 仓库地址为:https://dist.apache.org/repos/dist/release/fory
+
+请将公钥添加到发布分支的 KEYS 文件中:
+
+```bash
+svn co --depth=files https://dist.apache.org/repos/dist/release/fory fory-dist
+cd fory-dist
+(gpg --list-sigs YOUR_NAME@apache.org && gpg --export --armor YOUR_NAME@apache.org) >> KEYS # Append your key to the KEYS file
+svn add .   # It is not needed if the KEYS document exists before.
+svn ci -m "add gpg key for YOUR_NAME" # Later on, if you are asked to enter a username and password, just use your apache username and password.
+```
+
+#### 将 GPG 公钥上传到您的 GitHub 账户
+
+- 访问 https://github.com/settings/keys 添加您的 GPG 密钥。
+- 如果添加后显示 "unverified",请记得将 GPG 密钥使用的电子邮件地址绑定到您的 GitHub 账户(https://github.com/settings/emails)。
+
+### 延伸阅读
+
+建议在发布前阅读以下文档,以进一步了解 Apache 发布流程,但这不是强制要求:
+
+- 发布政策:https://www.apache.org/legal/release-policy.html
+- TLP 发布:https://infra.apache.org/release-distribution
+- 发布签名:https://infra.apache.org/release-signing.html
+- 发布软件:https://infra.apache.org/release-publishing.html
+- 发布下载页面:https://infra.apache.org/release-download-pages.html
+- 发布 Maven artifacts:https://infra.apache.org/publishing-maven-artifacts.html
+
+## 发起发布讨论
+
+向 dev@fory.apache.org 发送电子邮件,发起关于下一版本的讨论:
+
+标题:
+
+```
+[DISCUSS] Release Apache Fory ${release_version}
+```
+
+正文:
+
+```
+Hello, Apache Fory Community,
+
+This is a call for a discussion to release Apache Fory version ${release_version}.
+
+The planned change list for this release:
+
+https://github.com/apache/fory/compare/v${previous_release_version}...main
+
+Please leave your comments here about this release plan. We will bump the version in repo and start the release process after the discussion.
+
+Thanks,
+
+${name}
+```
+
+## 准备发布
+
+如果讨论结果积极,则需要准备发布 artifacts。
+
+### GitHub 分支和标签
+
+- 创建名为 `releases-${release_version}` 的新分支。也可以运行 `python ci/release.py prepare -v ${release_version}` 来创建分支、更新所有版本并创建准备提交。
+- 将版本更新为 `${release_version}`:请执行命令 `python ci/release.py bump_version -l all -version ${release_version}`,但使用 `prepare` 时无需执行。
+- 创建 Git 提交并将分支推送到 `git@github.com:apache/fory.git`。
+- 使用 `git tag v${release_version}-${rc_version}` 创建新的候选发布标签,然后将其推送到 `git@github.com:apache/fory.git`。
+- 如果本次发布包含 `go/fory` 下的 Go 模块,请在投票通过后创建并推送 Go 子模块标签。例如,对于最终的 `${release_version}` 版本:
+
+```bash
+git remote add apache git@github.com:apache/fory.git
+git tag go/fory/v${release_version}
+git push apache go/fory/v${release_version}
+```
+
+### 构建 artifacts 并上传到 SVN dist/dev 仓库
+
+首先,执行 `python ci/release.py build -v ${release_version}` 构建源码发布 artifacts。
+
+然后,将其上传到 SVN dist 仓库。dev 分支的 dist 仓库地址为:https://dist.apache.org/repos/dist/dev/fory
+
+```bash
+# As this step will copy all the versions, it will take some time. If the network is broken, please use svn cleanup to delete the lock before re-execute it.
+svn co https://dist.apache.org/repos/dist/dev/fory fory-dist-dev
+```
+
+然后上传 artifacts:
+
+```bash
+cd fory-dist-dev
+# create a directory named by version
+mkdir ${release_version}-${rc_version}
+# copy source code and signature package to the versioned directory
+cp ${repo_dir}/dist/* ${release_version}-${rc_version}
+# check svn status
+svn status
+# add to svn
+svn add ${release_version}-${rc_version}
+# check svn status
+svn status
+# commit to SVN remote server
+svn commit -m "Prepare for fory ${release_version}-${rc_version}"
+```
+
+访问 https://dist.apache.org/repos/dist/dev/fory/ 检查 artifacts 是否已正确上传。
+
+### 出现问题时如何处理
+
+如果出现非预期文件,请使用 `svn delete` 删除,然后重复上述上传流程。
+
+## 投票
+
+### 检查版本
+
+Fory 发布需要获得 Fory 社区的投票。
+
+- release_version:Fory 的版本,例如 1.0.0。
+- release_candidate_version:用于投票的版本,例如 1.0.0-rc1。
+- maven_artifact_number:Maven 暂存 artifacts 的编号,例如 1001。可以在 https://repository.apache.org/#stagingRepositories 上搜索 "fory" 找到该编号。
+
+### 构建 Fory 源码并发布到 Nexus
+
+#### 配置 Apache 账户密码
+
+将 Fory 发布到 Nexus 之前,需要安全地配置 Apache 账户凭据。由于密码必须加密,此步骤至关重要。
+
+首先,打开 Maven 全局设置文件 `settings.xml`,该文件通常位于 `~/.m2/settings.xml`。添加或修改以下部分:
+
+```xml
+
+<servers>
+    <server>
+        <id>apache.snapshots.https</id>
+        <username>your-apache-username</username>
+        <password>{your-encrypted-password}</password>
+    </server>
+    <server>
+        <id>apache.releases.https</id>
+        <username>your-apache-username</username>
+        <password>{your-encrypted-password}</password>
+    </server>
+</servers>
+```
+
+**重要说明:**
+
+- 将 `your-apache-username` 替换为您的 Apache LDAP 用户名。
+- 密码必须使用 Maven 密码加密工具进行加密。
+- 加密后的密码应放在花括号 `{}` 中。
+
+有关详细的加密说明,请参阅官方文档:[发布 Maven Artifacts](https://infra.apache.org/publishing-maven-artifacts.html)
+
+密码加密步骤如下:
+
+1. 生成主密码(如果尚未生成):
+
+2. ```sh
+
+   mvn --encrypt-master-password your-master-password
+
+   ```
+
+   将输出保存到 `~/.m2/settings-security.xml`:
+
+3. ```xml
+
+   <settingsSecurity>
+       <master>{your-encrypted-master-password}</master>
+   </settingsSecurity>
+
+   ```
+
+4. 加密您的 Apache 账户密码:
+
+   ```sh
+
+   mvn --encrypt-password your-apache-password
+
+   ```
+
+   将加密后的输出写入 `password` 字段(位于 `settings.xml` 中)。
+
+#### 构建并发布 Java、Kotlin 和 Scala 模块
+
+在仓库根目录运行 JVM 发布命令。默认情况下,它会依次发布 Java、Kotlin 和 Scala:
+
+```sh
+python ci/release.py publish_jvm
+```
+
+发布脚本会选择 OpenJDK 25 运行时,在正确的模块目录中执行各模块的发布命令,并验证 `fory-core` 的 multi-release 二进制 JAR 和源码 JAR。在 macOS 以外的平台上,请先安装 OpenJDK 25,并在运行命令前设置 `JAVA_HOME` 和 `PATH`。
+
+如需重新运行或逐个发布模块,请使用相应命令:
+
+```sh
+python ci/release.py publish_java
+python ci/release.py publish_kotlin
+python ci/release.py publish_scala
+```
+
+单独使用这些命令时,请先发布 Java,并保留在 `java/fory-core/target` 下生成的 artifacts。Kotlin 和 Scala 发布流程需要使用这些 artifacts 完成最终的 `fory-core` 发布 JAR 验证。
+
+#### 在 Nexus 中关闭 Maven 暂存仓库
+
+完成所有模块的发布后,在 Nexus 中执行以下步骤:
+
+1. 登录 Apache Nexus 仓库管理界面。
+2. 前往暂存仓库页面。
+3. 找到最新的 Fory 暂存仓库,例如 `orgapachefory-1001`。
+4. 执行 "Close" 操作,验证所有已上传的 artifacts。
+5. 记录暂存仓库 ID,以便写入投票邮件。
+6. 在投票通过之前,不要执行 "Release" 操作。
+
+这些步骤可确保所有暂存 artifacts 在社区投票前都已通过验证。
+
+### 构建预发布版本
+
+投票前需要构建一个预发布版本,例如:
+https://github.com/apache/fory/releases/tag/v${release_version}-${rc_version}
+
+推送 `v*` 标签会触发 Python、compiler、JavaScript、Rust、Dart 和 C# 基于标签的软件包发布工作流。对于包含 `-` 的候选发布标签,各工作流会在相应生态系统支持的情况下发布预发布或暂存 artifacts,例如将 Python 软件包发布到 TestPyPI,以及为 npm 软件包使用 `next` 标签。开始投票前,请监控所有触发的工作流。
+
+### Fory 社区投票
+
+向 Fory 社区 dev@fory.apache.org 发送电子邮件:
+
+标题:
+
+```
+[VOTE] Release Apache Fory v${release_version}-${rc_version}
+```
+
+正文:
+
+```
+Hello, Apache Fory Community:
+
+This is a call for vote to release Apache Fory
+v${release_version}-${rc_version}.
+
+Apache Fory is a blazingly fast multi-language serialization framework
+for idiomatic domain objects, schema IDL, and cross-language data
+exchange.
+
+The discussion thread:
+https://lists.apache.org/thread/xxr3od301g6v3ndj14zqc05byp9qvclh
+
+The change lists about this release:
+https://github.com/apache/fory/compare/v${previous_release_version}...v${release_version}-${rc_version}
+
+The release candidates:
+https://dist.apache.org/repos/dist/dev/fory/${release_version}-${rc_version}/
+
+The maven staging for this release:
+https://repository.apache.org/content/repositories/orgapachefory-${maven_artifact_number}
+
+Git tag for the release:
+https://github.com/apache/fory/releases/tag/v${release_version}-${rc_version}
+
+If this release also publishes the Go module, include the Go submodule tag too:
+https://github.com/apache/fory/releases/tag/go/fory/v${release_version}
+
+Git commit for the release:
+https://github.com/apache/fory/commit/${release_commit}
+
+The artifacts signed with PGP key [${gpg_key_id}], corresponding to
+[${apache_email}], that can be found in keys file:
+https://downloads.apache.org/fory/KEYS
+
+The vote will be open for at least 72 hours until the necessary number of votes are reached.
+
+Please vote accordingly:
+
+[ ] +1 approve
+[ ] +0 no opinion
+[ ] -1 disapprove with the reason
+
+To learn more about Fory, please see https://fory.apache.org/
+
+*Valid check is a requirement for a vote. *Checklist for reference:
+
+[ ] Download Fory is valid.
+[ ] Checksums and PGP signatures are valid.
+[ ] Source code distributions have correct names matching the current release.
+[ ] LICENSE and NOTICE files are correct.
+[ ] All files have license headers if necessary.
+[ ] No compiled archives bundled in source archive.
+[ ] Can compile from source.
+
+How to Build and Test, please refer to: https://github.com/apache/fory/blob/main/docs/development/index.md
+
+
+Thanks,
+${name}
+```
+
+在获得至少 3 票来自 Apache Fory PMC 成员且具有约束力的 +1 票,并且没有否决票后,请先回复上述投票邮件线程,通知投票已经结束。
+
+```
+Hi all,
+
+The vote for Release Apache Fory v${release_version}-${rc_version} is closed now.
+
+Thanks to everyone for helping checking and voting for the release.
+
+I will close the vote later in another thread.
+
+Best,
+${name}
+```
+
+随后立即发起一个新邮件线程,公布投票结果。
+
+标题:
+
+```
+[RESULT][VOTE] Release Apache Fory v${release_version}-${rc_version}
+```
+
+正文:
+
+```
+Hello, Apache Fory Community,
+
+The vote to release Apache Fory v${release_version}-${rc_version} has passed.
+
+The vote PASSED with 3 binding +1 votes and 0 -1 votes:
+
+Binding votes:
+
+- xxx
+- yyy
+- zzz
+
+Vote thread: ${vote_thread_url}
+
+Thanks,
+
+${name}
+```
+
+### 投票失败时如何处理
+
+如果投票失败,请点击 "Drop" 删除暂存的 Maven artifacts。
+
+解决提出的问题,然后递增 `rc_version` 并重新发起投票。
+
+## 正式发布
+
+### 将 artifacts 发布到 SVN 发布目录
+
+- release_version:Fory 的发布版本,例如 1.0.0。
+- release_candidate_version:用于投票的版本,例如 1.0.0-rc1。
+
+```bash
+svn mv https://dist.apache.org/repos/dist/dev/fory/${release_version}-${rc_version} https://dist.apache.org/repos/dist/release/fory/${release_version} -m "Release fory ${release_version}"
+```
+
+发布 release_version 时,如果 https://dist.apache.org/repos/dist/dev/fory/ 仓库中还留有过期的 release_candidate_version,请将其清理,以保持 dev 仓库整洁。
+
+当 `https://archive.apache.org/dist/fory/${release_version}/` 可访问时,即可确认 release_version 已成功发布并归档。此时可以清理发布仓库中的上一发布版本,仅保留当前版本。
+
+### 更新 Fory 和 Fory-Site 内容
+
+向 https://github.com/apache/fory-site 提交 PR 以更新 Fory-Site。
+参考实现:[#283](https://github.com/apache/fory-site/pull/283) 和 [#285](https://github.com/apache/fory-site/pull/285)。
+
+#### 更新 Fory-Site
+
+通常需要修改以下关键部分:
+
+1. 编写一则新公告,例如:
+   在 blog 目录下添加新的 Markdown 文件:
+
+```
+The Apache Fory team is pleased to announce the [?] release. This is a major release that includes [? PR](https://github.com/apache/fory/compare/v[?]...v[?]) from ? distinct contributors. See [Getting Started](https://fory.apache.org/docs/start/) to choose a runtime and install the libraries for your platform.
+```
+
+2. 将旧版本号更新为新版本号。
+   例如,更新开发分支和最新发布分支的 [Java 配置](https://fory.apache.org/docs/start/java)及其链接的功能指南:
+
+```
+<dependency>
+ <groupId>org.apache.fory</groupId>
+ <artifactId>fory-core</artifactId>
+ <version>0.11.2</version>
+</dependency>
+```
+
+3. 更新下载页面、校验和与签名示例、发布说明链接、current 文档、zh-CN 翻译、versioned docs 快照、`versions.json` 以及 `docusaurus.config.ts` 中的默认文档版本。
+
+#### 更新 Fory
+
+向 https://github.com/apache/fory 提交 PR,更新 [README](https://github.com/apache/fory/blob/main/README.md)、下一开发版本的软件包元数据,以及应指向最新发布版本的面向用户的安装代码片段。
+
+### 在 GitHub 上正式发布
+
+需要在 Fory 项目中正式发布此版本。
+参考实现:https://github.com/apache/fory/releases/tag/v${release_version}
+
+投票通过后,根据通过投票的提交创建并推送最终的 `v${release_version}` 标签。此标签会触发 Python、compiler、JavaScript、Rust、Dart 和 C# 的最终软件包发布工作流。发送公告前,请监控每个工作流直至完成。
+
+### 发布 Maven artifacts
+
+- maven_artifact_number:Maven 暂存 artifacts 的编号,例如 1001。
+- 打开 https://repository.apache.org/#stagingRepositories。
+- 找到 artifact `orgapachefory-${maven_artifact_number}`,点击 "Release"。
+
+### 发送公告
+
+将发布公告发送到 dev@fory.apache.org,并抄送 announce@apache.org。
+
+标题:
+
+```
+[ANNOUNCE] Apache Fory ${release_version} released
+```
+
+正文:
+
+```
+Hi all,
+
+The Apache Fory community is pleased to announce
+that Apache Fory ${release_version} is now available.
+
+Apache Fory is a blazingly fast multi-language serialization framework
+for idiomatic domain objects, schema IDL, and cross-language data
+exchange.
+
+This release includes ${pr_count} PRs from ${contributor_count} contributors.
+
+Highlights in ${release_version} include:
+
+- ...
+
+Release blog, with details and examples:
+https://fory.apache.org/blog/fory_${release_version_with_underscores}_release
+
+The release notes are available here:
+https://github.com/apache/fory/releases/tag/v${release_version}
+
+For the complete list of changes:
+https://github.com/apache/fory/compare/v${previous_release_version}...v${release_version}
+
+Apache Fory website: https://fory.apache.org/
+
+Download Links: https://fory.apache.org/download
+
+Fory Resources:
+- Fory github repo: https://github.com/apache/fory
+- Issue: https://github.com/apache/fory/issues
+- Mailing list: dev@fory.apache.org
+
+We are looking to grow our community and welcome new contributors. If
+you are interested in contributing to Fory, please contact us on the
+mailing list or on GitHub. We will be happy to help you get started.
+
+------------------
+Best Regards,
+${your_name}
+```
+
+请使用纯文本而不是富文本格式,否则抄送 announce@apache.org 时邮件可能会被拒收。
+
+完成以上步骤后,Fory 发布流程至此结束。
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/community/how_to_verify.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/community/how_to_verify.md
new file mode 100644
index 0000000000..01a3db3e04
--- /dev/null
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/community/how_to_verify.md
@@ -0,0 +1,125 @@
+---
+title: 如何验证
+sidebar_position: 0
+id: how_to_verify
+---
+
+## 下载候选版本
+
+```bash
+#If there is svn locally, you can clone to the local
+svn co https://dist.apache.org/repos/dist/dev/fory/${release_version}-${rc_version}/
+# You can download the material file directly
+wget https://dist.apache.org/repos/dist/dev/fory/${release_version}-${rc_version}/xxx.xxx
+```
+
+## 验证校验和与签名
+
+首先需要安装 gpg:
+
+```bash
+apt-get install gnupg
+# or
+yum install gnupg
+# or
+brew install gnupg
+```
+
+然后导入 Fory 发布经理的公钥:
+
+```bash
+curl https://downloads.apache.org/fory/KEYS > KEYS # Download KEYS
+gpg --import KEYS # Import KEYS to local
+# Then, trust the public key:
+gpg --edit-key <KEY-used-in-this-version> # Edit the key(mentioned in vote email)
+# It will enter the interactive mode, use the following command to trust the key:
+gpg (GnuPG) 2.0.22; Copyright (C) 2013 Free Software Foundation, Inc.
+This is free software: you are free to change and redistribute it.
+There is NO WARRANTY, to the extent permitted by law.
+
+
+pub  4096R/5E580BA4  created: 2024-03-27  expires: never       usage: SC
+                     trust: unknown       validity: unknown
+sub  4096R/A31EF728  created: 2024-03-27  expires: never       usage: E
+[ unknown] (1). chaokunyang (CODE SIGNING KEY) <ch...@apache.org>
+
+gpg> trust
+pub  4096R/5E580BA4  created: 2024-03-27  expires: never       usage: SC
+                     trust: unknown       validity: unknown
+sub  4096R/A31EF728  created: 2024-03-27  expires: never       usage: E
+[ unknown] (1). chaokunyang (CODE SIGNING KEY) <ch...@apache.org>
+
+Please decide how far you trust this user to correctly verify other users' keys
+(by looking at passports, checking fingerprints from different sources, etc.)
+
+  1 = I don't know or won't say
+  2 = I do NOT trust
+  3 = I trust marginally
+  4 = I trust fully
+  5 = I trust ultimately
+  m = back to the main menu
+
+Your decision? 5
+Do you really want to set this key to ultimate trust? (y/N) y
+
+pub  4096R/5E580BA4  created: 2024-03-27  expires: never       usage: SC
+                     trust: ultimate      validity: unknown
+sub  4096R/A31EF728  created: 2024-03-27  expires: never       usage: E
+[ unknown] (1). chaokunyang (CODE SIGNING KEY) <ch...@apache.org>
+Please note that the shown key validity is not necessarily correct
+unless you restart the program.
+```
+
+接下来验证签名:
+
+```bash
+for i in *.tar.gz; do echo $i; gpg --verify $i.asc $i; done
+```
+
+如果出现类似以下内容,则表示签名正确:
+
+```bash
+apache-fory-0.12.0-src.tar.gz
+gpg: Signature made Wed 17 Apr 2024 11:49:45 PM CST using RSA key ID 5E580BA4
+gpg: checking the trustdb
+gpg: 3 marginal(s) needed, 1 complete(s) needed, PGP trust model
+gpg: depth: 0  valid:   1  signed:   0  trust: 0-, 0q, 0n, 0m, 0f, 1u
+gpg: Good signature from "chaokunyang (CODE SIGNING KEY) <ch...@apache.org>"
+```
+
+然后验证校验和:
+
+```bash
+for i in *.tar.gz; do echo $i; sha512sum --check  $i.sha512*; done
+```
+
+输出应类似于:
+
+```bash
+apache-fory-0.12.0-src.tar.gz
+apache-fory-0.12.0-src.tar.gz: OK
+```
+
+快速完成上述验证的方法是:
+
+```bash
+curl -s https://raw.githubusercontent.com/apache/fory/main/ci/release.py | python3 - verify -v 0.5.0
+```
+
+## 检查源代码包的文件内容
+
+解压 `apache-fory-${release_version}-${rc_version}-src.tar.gz`,并检查以下内容:
+
+- LICENSE 和 NOTICE 文件对于该仓库是正确的。
+- 所有需要许可证头的文件都带有 ASF 许可证头。
+- 可以正常构建。
+
+## 检查 fory-java 的 Maven 制品
+
+从 https://repository.apache.org/content/repositories/orgapachefory-${maven_artifact_number}/ 下载制品。
+
+可以检查以下内容:
+
+- JAR 的校验和与随附的校验和文件一致。
+- JAR 的签名与随附的签名文件一致。
+- JAR 可以在本地复现。这意味着您可以在自己的计算机上构建 JAR,并验证其校验和与随附制品的校验和相同。
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/compiler/_category_.json b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/compiler/_category_.json
new file mode 100644
index 0000000000..eece8717d2
--- /dev/null
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/compiler/_category_.json
@@ -0,0 +1,6 @@
+{
+  "position": 7,
+  "label": "Fory IDL 与编译器",
+  "collapsible": true,
+  "collapsed": true
+}
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/compiler/build-integration.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/compiler/build-integration.md
new file mode 100644
index 0000000000..6d7b2de5c0
--- /dev/null
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/compiler/build-integration.md
@@ -0,0 +1,230 @@
+---
+title: 构建集成
+sidebar_position: 2
+id: build-integration
+license: |
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+     http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+---
+
+## Maven (Java)
+
+添加到 `pom.xml`:
+
+```xml
+<build>
+  <plugins>
+    <plugin>
+      <groupId>org.codehaus.mojo</groupId>
+      <artifactId>exec-maven-plugin</artifactId>
+      <version>3.1.0</version>
+      <executions>
+        <execution>
+          <id>generate-fory-types</id>
+          <phase>generate-sources</phase>
+          <goals>
+            <goal>exec</goal>
+          </goals>
+          <configuration>
+            <executable>foryc</executable>
+            <arguments>
+              <argument>${project.basedir}/src/main/fdl/schema.fdl</argument>
+              <argument>--java_out</argument>
+              <argument>${project.build.directory}/generated-sources/fory</argument>
+            </arguments>
+          </configuration>
+        </execution>
+      </executions>
+    </plugin>
+  </plugins>
+</build>
+```
+
+添加生成的源代码:
+
+```xml
+<build>
+  <plugins>
+    <plugin>
+      <groupId>org.codehaus.mojo</groupId>
+      <artifactId>build-helper-maven-plugin</artifactId>
+      <version>3.4.0</version>
+      <executions>
+        <execution>
+          <phase>generate-sources</phase>
+          <goals>
+            <goal>add-source</goal>
+          </goals>
+          <configuration>
+            <sources>
+              <source>${project.build.directory}/generated-sources/fory</source>
+            </sources>
+          </configuration>
+        </execution>
+      </executions>
+    </plugin>
+  </plugins>
+</build>
+```
+
+## Gradle (Java/Kotlin)
+
+添加到 `build.gradle`:
+
+```groovy
+task generateForyTypes(type: Exec) {
+    commandLine 'foryc',
+        "${projectDir}/src/main/fdl/schema.fdl",
+        '--java_out', "${buildDir}/generated/sources/fory"
+}
+
+compileJava.dependsOn generateForyTypes
+
+sourceSets {
+    main {
+        java {
+            srcDir "${buildDir}/generated/sources/fory"
+        }
+    }
+}
+```
+
+## Python (setuptools)
+
+添加到 `setup.py` 或 `pyproject.toml`:
+
+```python
+# setup.py
+from setuptools import setup
+from setuptools.command.build_py import build_py
+import subprocess
+
+class BuildWithForyIdl(build_py):
+    def run(self):
+        subprocess.run([
+            'foryc',
+            'schema.fdl',
+            '--python_out', 'src/generated'
+        ], check=True)
+        super().run()
+
+setup(
+    cmdclass={'build_py': BuildWithForyIdl},
+    # ...
+)
+```
+
+## Go (go generate)
+
+添加到 Go 文件:
+
+```go
+//go:generate foryc ../schema.fdl --lang go --output .
+package models
+```
+
+运行:
+
+```bash
+go generate ./...
+```
+
+## Rust (build.rs)
+
+添加到 `build.rs`:
+
+```rust
+use std::process::Command;
+
+fn main() {
+    println!("cargo:rerun-if-changed=schema.fdl");
+
+    let status = Command::new("foryc")
+        .args(&["schema.fdl", "--rust_out", "src/generated"])
+        .status()
+        .expect("Failed to run foryc");
+
+    if !status.success() {
+        panic!("Fory IDL compilation failed");
+    }
+}
+```
+
+## CMake (C++)
+
+添加到 `CMakeLists.txt`:
+
+```cmake
+find_program(FORY_COMPILER foryc)
+
+add_custom_command(
+    OUTPUT ${CMAKE_CURRENT_SOURCE_DIR}/generated/example.h
+    COMMAND ${FORY_COMPILER}
+        ${CMAKE_CURRENT_SOURCE_DIR}/schema.fdl
+        --cpp_out ${CMAKE_CURRENT_SOURCE_DIR}/generated
+    DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/schema.fdl
+    COMMENT "Generating Fory IDL types"
+)
+
+add_custom_target(generate_fory_idl DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/generated/example.h)
+
+add_library(mylib ...)
+add_dependencies(mylib generate_fory_idl)
+target_include_directories(mylib PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/generated)
+```
+
+## Bazel
+
+在 `BUILD` 中创建规则:
+
+```python
+genrule(
+    name = "generate_fdl",
+    srcs = ["schema.fdl"],
+    outs = ["generated/example.h"],
+    cmd = "$(location //:fory_compiler) $(SRCS) --cpp_out $(RULEDIR)/generated",
+    tools = ["//:fory_compiler"],
+)
+
+cc_library(
+    name = "models",
+    hdrs = [":generate_fdl"],
+    # ...
+)
+```
+
+## Dart / Flutter
+
+将 Fory 依赖添加到 `pubspec.yaml`:
+
+```yaml
+dependencies:
+  fory: ^1.6.0
+
+dev_dependencies:
+  build_runner: ^2.4.0
+```
+
+使用编译器生成 Schema 类型:
+
+```bash
+foryc schema.fdl --dart_out=lib/generated
+```
+
+然后运行 `build_runner` 生成序列化器:
+
+```bash
+dart run build_runner build
+```
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/compiler/cli.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/compiler/cli.md
new file mode 100644
index 0000000000..e5004f9c1d
--- /dev/null
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/compiler/cli.md
@@ -0,0 +1,670 @@
+---
+title: 编译器 CLI
+sidebar_position: 4
+id: cli
+license: |
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+     http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+---
+
+## 命令行界面
+
+### 基本用法
+
+```bash
+foryc [OPTIONS] FILES...
+```
+
+```bash
+foryc --scan-generated [OPTIONS]
+```
+
+### 选项
+
+编译选项:
+
+| 选项                                  | 说明                                             | 默认值        |
+| ------------------------------------- | ------------------------------------------------ | ------------- |
+| `--lang`                              | 以逗号分隔的目标语言                             | `all`         |
+| `--output`, `-o`                      | 输出目录                                         | `./generated` |
+| `-I`, `--proto_path`, `--import_path` | 向导入搜索路径添加目录(可重复指定)             | (无)        |
+| `--java_out=DST_DIR`                  | 在 DST_DIR 中生成 Java 代码                      | (无)        |
+| `--python_out=DST_DIR`                | 在 DST_DIR 中生成 Python 代码                    | (无)        |
+| `--cpp_out=DST_DIR`                   | 在 DST_DIR 中生成 C++ 代码                       | (无)        |
+| `--go_out=DST_DIR`                    | 在 DST_DIR 中生成 Go 代码                        | (无)        |
+| `--rust_out=DST_DIR`                  | 在 DST_DIR 中生成 Rust 代码                      | (无)        |
+| `--csharp_out=DST_DIR`                | 在 DST_DIR 中生成 C# 代码                        | (无)        |
+| `--javascript_out=DST_DIR`            | 在 DST_DIR 中生成 JavaScript/TypeScript 代码     | (无)        |
+| `--swift_out=DST_DIR`                 | 在 DST_DIR 中生成 Swift 代码                     | (无)        |
+| `--dart_out=DST_DIR`                  | 在 DST_DIR 中生成 Dart 代码                      | (无)        |
+| `--scala_out=DST_DIR`                 | 在 DST_DIR 中生成 Scala 3 代码                   | (无)        |
+| `--kotlin_out=DST_DIR`                | 在 DST_DIR 中生成 Kotlin 代码                    | (无)        |
+| `--go_nested_type_style`              | Go 嵌套类型命名风格:`camelcase` 或 `underscore` | `underscore`  |
+| `--swift_namespace_style`             | Swift 命名空间风格:`enum` 或 `flatten`          | `enum`        |
+| `--emit-fdl`                          | 输出转换后的 FDL(用于非 FDL 输入)              | `false`       |
+| `--emit-fdl-path`                     | 将转换后的 FDL 写入此路径(文件或目录)          | (标准输出)  |
+| `--grpc`                              | 为支持的输出生成 gRPC 服务配套代码               | `false`       |
+| `--grpc-python-mode=MODE`             | Python gRPC 模式:`async` 或 `sync`              | `async`       |
+| `--grpc-web`                          | 生成 JavaScript gRPC-Web 客户端配套代码          | `false`       |
+
+编译器支持使用 Schema 级文件选项控制特定语言的生成行为。
+当 `go_nested_type_style` 和 `swift_namespace_style` 同时出现在 CLI 与 Schema 中时,CLI 标志优先。
+Rust 时间类型代码生成没有 CLI 标志:在 Schema 中设置
+`option rust_use_chrono_temporal_types = true;`,即可生成
+`chrono::NaiveDate`、`chrono::NaiveDateTime` 和 `chrono::Duration`,而不是默认的
+`fory::Date`、`fory::Timestamp` 和 `fory::Duration`。编译这些基于 chrono 的 Rust 生成代码时,
+crate 必须依赖 `chrono` 并启用 Fory 的 `chrono` feature。
+
+扫描选项(与 `--scan-generated` 一起使用):
+
+| 选项         | 说明                   | 默认值  |
+| ------------ | ---------------------- | ------- |
+| `--root`     | 要扫描的根目录         | `.`     |
+| `--relative` | 输出相对于根目录的路径 | `false` |
+| `--delete`   | 删除匹配的生成文件     | `false` |
+| `--dry-run`  | 仅扫描并输出,不删除   | `false` |
+
+### 扫描生成文件
+
+使用 `--scan-generated` 查找 `foryc` 生成的文件。扫描器会递归遍历目录树,
+跳过 `build/`、`target/` 和隐藏目录,并在发现每个生成文件时输出其路径。
+
+```bash
+# Scan current directory
+foryc --scan-generated
+
+# Scan a specific root
+foryc --scan-generated --root ./src
+
+# Print paths relative to the scan root
+foryc --scan-generated --root ./src --relative
+
+# Delete scanned generated files
+foryc --scan-generated --root ./src --delete
+
+# Dry-run (scan and print only)
+foryc --scan-generated --root ./src --dry-run
+```
+
+### 示例
+
+**为所有语言编译:**
+
+```bash
+foryc schema.fdl
+```
+
+**为选定的语言子集编译:**
+
+```bash
+foryc schema.fdl --lang java,python,csharp,javascript,swift,dart,kotlin
+```
+
+**指定输出目录:**
+
+```bash
+foryc schema.fdl --output ./src/generated
+```
+
+**编译多个文件:**
+
+```bash
+foryc user.fdl order.fdl product.fdl --output ./generated
+```
+
+**编译包含服务定义的简单 Schema(Java + Python + Go + Rust + C# + Dart + Scala + Kotlin + JavaScript 模型):**
+
+```bash
+foryc compiler/examples/service.fdl --java_out=./generated/java --python_out=./generated/python --go_out=./generated/go --rust_out=./generated/rust --csharp_out=./generated/csharp --dart_out=./generated/dart --scala_out=./generated/scala --kotlin_out=./generated/kotlin --javascript_out=./generated/javascript
+```
+
+**生成 Java、Python、Go、Rust、C++、C#、Dart、Scala、Kotlin 和 Node.js JavaScript gRPC 服务配套代码:**
+
+```bash
+foryc compiler/examples/service.fdl --java_out=./generated/java --python_out=./generated/python --go_out=./generated/go --rust_out=./generated/rust --cpp_out=./generated/cpp --csharp_out=./generated/csharp --dart_out=./generated/dart --scala_out=./generated/scala --kotlin_out=./generated/kotlin --javascript_out=./generated/javascript --grpc
+```
+
+生成的 gRPC 服务代码使用 Fory 序列化请求和响应载荷。Java 输出导入 grpc-java API,Python 输出默认使用
+`grpc.aio`,Go 输出导入 grpc-go,Rust 输出导入 `tonic` 和 `bytes`;
+C++ 输出包含 gRPC C++ 的 `grpcpp` 头文件,编译它的目标必须将生成代码目录加入 include 路径,
+并链接 `fory::serialization` 和 `gRPC::grpc++`。
+Scala 输出导入 grpc-java API;Kotlin 输出导入 grpc-java 和 grpc-kotlin API,并使用协程 stub。
+C# 输出导入 `Grpc.Core.Api` 类型,可以通过 `Grpc.AspNetCore` 等常规 .NET gRPC 包托管,
+也可以通过 `Grpc.Net.Client` 调用。Dart 输出导入 `package:grpc`。
+JavaScript 输出导入 `@grpc/grpc-js`。
+编译或运行这些生成服务文件的应用必须自行提供 gRPC 依赖。Fory 软件包不会为此功能引入强制 gRPC 依赖。
+
+对于现有的同步 `grpcio` 应用,可使用以下命令生成同步 Python gRPC 配套代码:
+
+```bash
+foryc compiler/examples/service.fdl --python_out=./generated/python --grpc --grpc-python-mode=sync
+```
+
+**生成 JavaScript gRPC-Web 浏览器客户端:**
+
+```bash
+foryc compiler/examples/service.fdl --javascript_out=./generated/javascript --grpc-web
+```
+
+如果同一份 JavaScript 输出需要同时包含 Node.js 和浏览器配套代码,请同时使用 `--grpc` 和 `--grpc-web`。
+浏览器配套代码会导入 `grpc-web`;应用必须提供该软件包以及与 gRPC-Web 兼容的服务器或代理。
+
+**使用导入搜索路径:**
+
+```bash
+# Add a single import path
+foryc src/main.fdl -I libs/common
+
+# Add multiple import paths (repeated option)
+foryc src/main.fdl -I libs/common -I libs/types
+
+# Add multiple import paths (comma-separated)
+foryc src/main.fdl -I libs/common,libs/types,third_party/
+
+# Using --proto_path (protoc-compatible alias)
+foryc src/main.fdl --proto_path=libs/common
+
+# Mix all styles
+foryc src/main.fdl -I libs/common,libs/types --proto_path third_party/
+```
+
+**特定语言的输出目录(protoc 风格):**
+
+```bash
+# Generate only Java code to a specific directory
+foryc schema.fdl --java_out=./src/main/java
+
+# Generate multiple languages to different directories
+foryc schema.fdl --java_out=./java/gen --python_out=./python/src --cpp_out=./cpp/gen --go_out=./go/gen --rust_out=./rust/gen --csharp_out=./csharp/gen --javascript_out=./javascript/src --swift_out=./swift/gen --dart_out=./dart/gen --scala_out=./scala/gen --kotlin_out=./kotlin/gen
+
+# Combine with import paths
+foryc schema.fdl --java_out=./gen/java -I proto/ -I common/
+
+# Generate Scala 3 code to a specific directory
+foryc schema.fdl --scala_out=./src/main/scala
+
+# Generate Scala 3 models and gRPC service companions
+foryc service.fdl --scala_out=./src/main/scala --grpc
+
+# Generate Kotlin code to a specific directory
+foryc schema.fdl --kotlin_out=./src/main/kotlin
+```
+
+使用 `--{lang}_out` 选项时:
+
+- 仅生成指定语言,而不是所有语言
+- 编译器写入指定目录(特定语言的生成器仍可能创建 package/module 子目录)
+- 与 protoc 风格的工作流兼容
+
+**查看从 proto/fbs 输入转换得到的 Fory IDL:**
+
+```bash
+# Print translated Fory IDL to stdout
+foryc schema.proto --emit-fdl
+
+# Write translated Fory IDL to a directory
+foryc schema.fbs --emit-fdl --emit-fdl-path ./translated
+```
+
+## 导入路径解析
+
+编译包含导入的 Fory IDL 文件时,编译器按以下顺序搜索被导入文件:
+
+1. **相对于发起导入的文件(默认)** - 编译器始终自动优先搜索包含 import 语句的文件所在目录。同目录导入不需要 `-I` 标志。
+2. **依次搜索每个 `-I` 路径** - 命令行中指定的其他搜索路径
+
+**同目录导入会自动生效:**
+
+```protobuf
+// main.fdl
+import "common.fdl";  // Found if common.fdl is in the same directory
+```
+
+```bash
+# No -I needed for same-directory imports
+foryc main.fdl
+```
+
+**项目结构示例:**
+
+```
+project/
+├── src/
+│   └── main.fdl          # import "common.fdl";
+└── libs/
+    └── common.fdl
+```
+
+**不使用 `-I`(失败):**
+
+```bash
+$ foryc src/main.fdl
+Import error: Import not found: common.fdl
+  Searched in: /project/src
+```
+
+**使用 `-I`(成功):**
+
+```bash
+$ foryc src/main.fdl -I libs/
+Compiling src/main.fdl...
+  Resolved 1 import(s)
+```
+
+## 支持的语言
+
+| 语言                  | 标志         | 输出扩展名 | 说明                          |
+| --------------------- | ------------ | ---------- | ----------------------------- |
+| Java                  | `java`       | `.java`    | 带 Fory 注解的 POJO           |
+| Python                | `python`     | `.py`      | 带类型提示的 dataclass        |
+| Go                    | `go`         | `.go`      | 带 struct tag 的结构体        |
+| Rust                  | `rust`       | `.rs`      | 带派生宏的结构体              |
+| C++                   | `cpp`        | `.h`       | 带 FORY 宏的结构体            |
+| C#                    | `csharp`     | `.cs`      | 带 Fory attribute 的类        |
+| JavaScript/TypeScript | `javascript` | `.ts`      | 带 Schema 模块辅助函数的接口  |
+| Swift                 | `swift`      | `.swift`   | Fory Swift 模型宏             |
+| Dart                  | `dart`       | `.dart`    | 带注解的 `@ForyStruct` 类     |
+| Scala                 | `scala`      | `.scala`   | 使用宏派生的 Scala 3 模型     |
+| Kotlin                | `kotlin`     | `.kt`      | 带 KSP 序列化器的 Kotlin 模型 |
+
+## 输出结构
+
+### Java
+
+```
+generated/
+└── java/
+    └── com/
+        └── example/
+            ├── User.java
+            ├── Order.java
+            ├── Status.java
+            └── ExampleForyModule.java
+```
+
+- 每个类型(枚举或消息)对应一个文件
+- package 结构与 Fory IDL package 一致
+- 生成 Schema 模块类
+
+### Python
+
+```
+generated/
+└── python/
+    └── example.py
+```
+
+- 所有类型位于单个模块中
+- 模块名派生自 package
+- 包含注册函数
+
+### Go
+
+```
+generated/
+└── go/
+    └── example/
+        └── example.go
+```
+
+- 所有类型位于单个文件中
+- 目录和 package 名派生自 `go_package` 或 Fory IDL package
+- 包含注册函数
+
+### Rust
+
+```
+generated/
+└── rust/
+    └── example.rs
+```
+
+- 所有类型位于单个模块中
+- 模块名派生自 package
+- 包含注册函数
+
+### C++
+
+```
+generated/
+└── cpp/
+    └── example.h
+```
+
+- 单个头文件
+- 命名空间与 package 一致(将点号转换为 `::`)
+- 包含头文件保护和前置声明
+
+### JavaScript/TypeScript
+
+```
+generated/
+└── javascript/
+    ├── example.ts
+    ├── example_grpc.ts      # with --grpc
+    └── example_grpc_web.ts  # with --grpc-web
+```
+
+- 每个 Schema 对应一个 `.ts` 文件
+- 消息使用 `export interface` 声明
+- 枚举使用 `export enum` 声明
+- 使用 case 枚举的可辨识联合类型
+- 包含 Schema 辅助函数 `registerXxxTypes(fory)`,以及默认的 `serializeX` 和
+  `deserializeX` 辅助函数
+- `--grpc` 输出使用 `@grpc/grpc-js` 的 Node.js 配套代码
+- `--grpc-web` 输出使用 `grpc-web` 的浏览器客户端配套代码
+
+### C\#
+
+```
+generated/
+└── csharp/
+    └── example/
+        └── Example.cs
+```
+
+- 每个 Schema 对应一个 `.cs` 文件,文件名取规范化为 PascalCase 的源文件主名
+- 命名空间使用 `csharp_namespace`(若已设置),否则使用 Fory IDL package
+- 包含以源文件名为前缀的 `XXXForyModule` 安装辅助类以及 `ToBytes`/`FromBytes` 方法
+- 传递式安装导入的 Schema(例如 `root.idl` 导入 `addressbook.fdl` 和 `tree.fdl`)
+- 使用 `--grpc` 时,每个服务会在 Schema 文件输出旁生成一个 `<ServiceName>Grpc.cs` 配套文件
+
+### Swift
+
+```
+generated/
+└── swift/
+    └── addressbook/
+        └── addressbook.swift
+```
+
+- 每个 Schema 对应一个 `.swift` 文件
+- package 各段映射为嵌套 Swift 枚举(例如 `addressbook.*` -> `Addressbook.*`)
+- 生成的消息使用 `@ForyStruct`,枚举使用 `@ForyEnum`,联合类型使用 `@ForyUnion`/`@ForyCase`
+- 联合类型生成为带关联载荷值的标签枚举
+- 每个 Schema 都包含 Schema 文件模块所有者和 `toBytes`/`fromBytes` 辅助函数
+- 生成的模块辅助函数会传递式安装导入的 Schema
+
+### Dart
+
+```
+generated/
+└── dart/
+    └── package/
+        ├── package.dart
+        └── package.fory.dart
+```
+
+- 每个 Schema 生成两个文件:包含注解类型的主 `.dart` 文件,以及包含生成序列化器的 `.fory.dart` part 文件
+- package 各段映射为目录(例如 `demo.foo` → `demo/foo/`)
+- 主文件包含 IDL 模块类,part 文件包含生成的序列化器元数据
+- 非 optional、非 ref 的基本类型列表使用类型化数组(例如 `Int32List`)
+- 使用 `--grpc` 时,每个 Schema 会在模型文件旁生成一个 `<stem>_grpc.dart` 配套文件,
+  其中包含每个服务的 `Client` 和 `ServiceBase`,并导入 `package:grpc`
+
+### Scala
+
+```
+generated/
+└── scala/
+    └── example/
+        ├── User.scala
+        ├── Status.scala
+        ├── Animal.scala
+        ├── ExampleServiceGrpc.scala
+        └── ExampleForyModule.scala
+```
+
+- 每个生成类型对应一个 Scala 3 源文件
+- package 结构与 Fory IDL package 一致
+- 消息派生 `org.apache.fory.scala.ForySerializer`
+- `optional T` 字段使用 `Option[T]`
+- 枚举使用 Scala 3 `enum`
+- 联合类型使用 Scala 3 ADT `enum`,并带有 `@ForyUnion`、`@ForyCase` 和 `Unknown`
+- 包含 Schema 模块对象
+- 每个本地服务定义在使用 `--grpc` 时生成一个 `<ServiceName>Grpc.scala` 服务配套文件
+
+### Kotlin
+
+```
+generated/
+└── kotlin/
+    └── example/
+        ├── User.kt
+        ├── Status.kt
+        ├── Animal.kt
+        └── ExampleForyModule.kt
+```
+
+- 每个生成类型对应一个 Kotlin 源文件
+- 设置 `kotlin_package` 时使用该 package 结构,否则使用 Fory IDL package
+- 消息使用 `@ForyStruct` 和 KSP 生成的序列化器
+- 枚举使用稳定的 Fory 枚举 ID
+- 联合类型使用带 `@ForyUnion`、`@ForyCase` 和未知 case 载体的密封类
+- 包含 Schema 模块对象
+- 使用 `--grpc` 时,每个服务生成一个 `<ServiceName>GrpcKt.kt` 协程服务配套文件
+
+### C# IDL 矩阵验证
+
+运行端到端 C# IDL 矩阵(FDL/IDL/Proto/FBS 生成及往返测试):
+
+```bash
+cd integration_tests/idl_tests
+./run_csharp_tests.sh
+```
+
+此脚本会对以下内容执行同 Schema 和兼容模式的往返测试:
+
+- `addressbook`、`auto_id`、`complex_pb` 基本类型
+- `collection` 以及 union/list 变体
+- `optional_types`
+- `any_example`(`.fdl`)和 `any_example`(`.proto`)
+- `tree` 和 `graph` 引用跟踪用例
+- `monster.fbs` 和 `complex_fbs.fbs`
+- `root.idl` 跨 package 导入覆盖
+- Schema 演进兼容性用例
+
+### Swift IDL 矩阵验证
+
+运行端到端 Swift IDL 矩阵(FDL/IDL/Proto/FBS 生成及往返测试):
+
+```bash
+cd integration_tests/idl_tests
+./run_swift_tests.sh
+```
+
+该脚本会运行:
+
+- 兼容模式和同 Schema 模式下的本地 Swift IDL 往返测试
+- 使用 `IDL_PEER_LANG=swift` 的 Java 驱动对端往返验证
+
+该脚本还会设置 `DATA_FILE*` 变量,以覆盖基于文件的往返路径。
+
+## 错误处理
+
+### 语法错误
+
+```
+Error: Line 5, Column 12: Expected ';' after field declaration
+```
+
+修复方法:检查指定行是否缺少分号或存在语法问题。
+
+### 类型名称重复
+
+```
+Error: Duplicate type name: User
+```
+
+修复方法:确保文件中的每个枚举和消息都有唯一名称。
+
+### 类型 ID 重复
+
+```
+Error: Duplicate type ID 100: User and Order
+```
+
+修复方法:为每个类型分配唯一的类型 ID。
+
+### 未知类型引用
+
+```
+Error: Unknown type 'Address' in Customer.address
+```
+
+修复方法:使用类型之前先定义它,或检查拼写错误。
+
+服务 RPC 的请求和响应类型使用相同方式验证:例如
+`rpc SayHello (HelloRequest) returns (HelloReply);` 这样的 RPC 必须引用已定义的消息类型,
+否则验证器会在 RPC 所在行报告 `Unknown type '...'` 错误。
+
+### 字段编号重复
+
+```
+Error: Duplicate field number 1 in User: name and id
+```
+
+修复方法:在每个消息中分配唯一的字段编号。
+
+## 最佳实践
+
+### 项目结构
+
+```
+project/
+├── fdl/
+│   ├── common.fdl       # Shared types
+│   ├── user.fdl         # User domain
+│   └── order.fdl        # Order domain
+├── src/
+│   └── generated/       # Generated code (git-ignored)
+└── build.gradle
+```
+
+### 版本控制
+
+- **跟踪**:Fory IDL Schema 文件
+- **忽略**:生成的代码(可重新生成)
+
+添加到 `.gitignore`:
+
+```
+# Generated Fory IDL code
+src/generated/
+generated/
+```
+
+### CI/CD 集成
+
+每次构建时都重新生成:
+
+```yaml
+# GitHub Actions example
+steps:
+  - name: Install Fory IDL Compiler
+    run: pip install ./compiler
+
+  - name: Generate Types
+    run: foryc fdl/*.fdl --output src/generated
+
+  - name: Build
+    run: ./gradlew build
+```
+
+### Schema 演进
+
+修改 Schema 时:
+
+1. **切勿重用字段编号** - 应将其标记为保留
+2. **切勿更改类型 ID** - 它们是二进制格式的一部分
+3. **添加新字段** - 使用新的字段编号
+4. **使用 `optional`** - 保持向后兼容性
+
+```protobuf
+message User [id=100] {
+    string id = 1;
+    string name = 2;
+    // Field 3 was removed, don't reuse
+    optional string email = 4;  // New field
+}
+```
+
+## 故障排查
+
+### 找不到命令
+
+```
+foryc: command not found
+```
+
+**解决方法:**确保编译器已安装并位于 PATH 中:
+
+```bash
+pip install -e ./compiler
+# Or add to PATH
+export PATH=$PATH:~/.local/bin
+```
+
+### 权限被拒绝
+
+```
+Permission denied: ./generated
+```
+
+**解决方法:**确保拥有输出目录的写入权限:
+
+```bash
+chmod -R u+w ./generated
+```
+
+### 生成代码中的导入错误
+
+**Java:**确保项目中包含 Fory 依赖:
+
+```xml
+<dependency>
+  <groupId>org.apache.fory</groupId>
+  <artifactId>fory-core</artifactId>
+  <version>${fory.version}</version>
+</dependency>
+```
+
+**Python:**确保已安装 pyfory:
+
+```bash
+pip install pyfory
+```
+
+**Go:**确保 fory 模块可用:
+
+```bash
+go get github.com/apache/fory/go/fory
+```
+
+**Rust:**确保 `Cargo.toml` 中包含 fory crate:
+
+```toml
+[dependencies]
+fory = "x.y.z"
+```
+
+**C++:**确保 Fory 头文件位于 include 路径中。
+
+**Dart:**确保 `pubspec.yaml` 中包含 fory 软件包:
+
+```yaml
+dependencies:
+  fory: ^1.6.0
+```
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/compiler/flatbuffers-idl.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/compiler/flatbuffers-idl.md
new file mode 100644
index 0000000000..336c5bbbb0
--- /dev/null
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/compiler/flatbuffers-idl.md
@@ -0,0 +1,218 @@
+---
+title: FlatBuffers IDL 支持
+sidebar_position: 6
+id: flatbuffers-idl
+license: |
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+     http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+---
+
+本页介绍 Apache Fory 如何读取 FlatBuffers Schema(`.fbs`),并将其转换为 Fory IR 以
+生成代码。
+
+## 本页内容
+
+- 何时在 Fory 中使用 FlatBuffers 输入
+- FlatBuffers 到 Fory 的确切映射行为
+- `.fbs` 中支持的 Fory 特有属性
+- 采用说明和生成代码差异
+
+## 为什么使用 Apache Fory
+
+- 符合语言习惯的生成代码:Fory 生成可直接用作领域对象的语言原生类/struct。
+- Java 性能:在 Java 对象序列化工作负载中,Fory 基准测试显示 Fory 比 FlatBuffers 更快。
+- 其他语言:序列化性能通常处于相近范围。
+- 实际反序列化:调用方直接从 FlatBuffers 缓冲区读取时,FlatBuffers 可能更快;但需要
+  原生对象的应用仍需转换,而转换步骤可能主导读取成本。在这些情况下,Fory 端到端
+  反序列化通常更快。
+- 更简单的 API:Fory 直接使用原生对象,因此无需反向构建 table 或手动管理偏移量。
+- 更好的对象图建模:共享引用和循环引用是 Fory 的一等功能。
+
+## 快速决策指南
+
+| 场景                                           | 推荐路径                |
+| ---------------------------------------------- | ----------------------- |
+| 已有 `.fbs` Schema,希望使用 Fory API/代码生成 | 使用 FlatBuffers 输入   |
+| 开始新的 Schema 工作,希望完整控制 Fory 语法   | 使用原生 Fory IDL       |
+| 需要 FlatBuffers 编码兼容性                    | 保留 FlatBuffers 技术栈 |
+| 需要 Fory 对象图语义(`ref`、弱引用等)        | 使用 Fory               |
+
+## FlatBuffers 到 Fory 的映射
+
+### Schema 级规则
+
+- `namespace` 映射到 Fory 包命名空间。
+- `include` 条目映射到 Fory import。
+- `table` 转换为 `evolving=true`。
+- `struct` 转换为 `evolving=false`。
+- `root_type` 会被解析,但 Fory 代码生成会忽略它。
+- `file_identifier` 和 `file_extension` 会被解析,但 Fory 代码生成不会使用它们。
+
+### 字段编号
+
+FlatBuffers 字段没有显式字段 ID。Fory 按源代码声明顺序分配字段编号,从 `1` 开始。
+
+### 标量类型映射
+
+| FlatBuffers | Fory 类型 |
+| ----------- | --------- |
+| `byte`      | `int8`    |
+| `ubyte`     | `uint8`   |
+| `short`     | `int16`   |
+| `ushort`    | `uint16`  |
+| `int`       | `int32`   |
+| `uint`      | `uint32`  |
+| `long`      | `int64`   |
+| `ulong`     | `uint64`  |
+| `float`     | `float32` |
+| `double`    | `float64` |
+| `bool`      | `bool`    |
+| `string`    | `string`  |
+
+Vector(`[T]`)映射到 Fory list。
+
+### 联合
+
+FlatBuffers 联合映射到 Fory 联合。
+
+- Case ID 按声明顺序分配,从 `1` 开始。
+- Case 名称从类型名称派生,使用 snake_case 字段命名。
+
+**FlatBuffers**
+
+```fbs
+union Payload {
+  Note,
+  Metric
+}
+
+table Container {
+  payload: Payload;
+}
+```
+
+**转换后的 Fory 形式**
+
+```protobuf
+union Payload {
+    Note note = 1;
+    Metric metric = 2;
+}
+
+message Container {
+    Payload payload = 1;
+}
+```
+
+### 服务
+
+FlatBuffers `rpc_service` 定义会转换为 Fory 服务。使用 `--grpc` 时,编译器会为 Java、
+Python、Go、Rust、C#、Dart、Scala、Kotlin 和 JavaScript 等支持的输出生成 gRPC 服务
+配套代码。JavaScript 浏览器客户端使用 `--grpc-web` 生成。这些配套代码使用 Fory
+序列化请求和响应载荷。
+
+```fbs
+rpc_service SearchService {
+  Lookup(SearchRequest):SearchResponse;
+  StreamLookup(SearchRequest):SearchResponse (streaming: "server");
+}
+```
+
+```bash
+foryc api.fbs --java_out=./generated/java --python_out=./generated/python --go_out=./generated/go --rust_out=./generated/rust --csharp_out=./generated/csharp --dart_out=./generated/dart --scala_out=./generated/scala --kotlin_out=./generated/kotlin --javascript_out=./generated/javascript --grpc
+```
+
+生成的服务代码会导入 grpc API,因此应用在编译或运行这些文件时,必须提供 grpc-java、
+grpc-kotlin、Scala grpc-java API、`grpcio`、grpc-go、Rust `tonic` 和 `bytes`、
+`@grpc/grpc-js`、C# `Grpc.Core.Api` 及服务端/客户端依赖,或 Dart `package:grpc`。
+Python 配套代码默认使用 `grpc.aio`,也可通过 `--grpc-python-mode=sync` 生成同步模式。
+Fory 软件包不会将 gRPC 添加为硬依赖项。对 JavaScript 输出使用 `--grpc-web` 可生成导入
+`grpc-web` 的浏览器客户端。
+
+### 默认值与元数据
+
+- FlatBuffers 默认值会被解析,但不会作为 Fory 默认值应用。
+- 非 Fory 元数据属性会作为通用选项保留在 IR 中,并可由下游工具使用。
+
+## FlatBuffers 中的 Fory 特有属性
+
+FlatBuffers 元数据属性使用 `key:value`。对于 Fory 特有选项,使用 `fory_`
+(或 `fory.`)前缀;解析时会从 `.fbs` 中移除该前缀。
+
+### 支持的字段属性
+
+| FlatBuffers 属性                 | 在 Fory 中的效果                                                 |
+| -------------------------------- | ---------------------------------------------------------------- |
+| `fory_ref:true`                  | 为字段启用引用跟踪                                               |
+| `fory_nullable:true`             | 将字段标记为可选/可空                                            |
+| `fory_weak_ref:true`             | 启用弱引用语义,并隐含 `ref`                                     |
+| `fory_thread_safe_pointer:false` | 对 ref 字段选择 Rust `Rc`/`RcWeak`,而不是默认的 `Arc`/`ArcWeak` |
+
+语义:
+
+- `fory_weak_ref:true` 隐含 `ref`。
+- `fory_thread_safe_pointer` 默认为 `true`,仅在字段跟踪引用时生效,并且不会改变编码格式。
+- 在 Rust 代码生成中,`fory_weak_ref:true` 默认使用 `ArcWeak`,只会切换为
+  `RcWeak`;切换条件是设置 `fory_thread_safe_pointer:false`。
+- 对于 list 字段,`fory_ref:true` 应用于 list 元素。
+
+示例:
+
+```fbs
+table Node {
+  parent: Node (fory_weak_ref: true);
+  children: [Node] (fory_ref: true);
+  local: Node (fory_ref: true, fory_thread_safe_pointer: false);
+}
+```
+
+## 生成代码差异
+
+将 `.fbs` 用作 Fory 输入时,仍会生成常规 Fory 代码,而不是 FlatBuffers `ByteBuffer`
+风格的 API。
+
+- Java、Scala 和 Kotlin:带 Fory 元数据和注册辅助方法的 JVM 模型类型
+- Python:dataclass 加注册辅助方法
+- C++、Go 和 Rust:原生 struct 和 Fory 元数据
+- JavaScript/TypeScript:TypeScript 接口和 Schema 辅助方法
+- C#、Swift 和 Dart:带注册辅助方法的注解或基于宏的模型类型
+
+序列化格式是 Fory 二进制协议,而不是 FlatBuffers 编码格式。
+
+## 使用方式
+
+直接编译 FlatBuffers Schema:
+
+```bash
+foryc schema.fbs --lang java,python --output ./generated
+```
+
+检查转换后的 Schema 语法以进行调试:
+
+```bash
+foryc schema.fbs --emit-fdl --emit-fdl-path ./translated
+```
+
+## 采用说明
+
+1. 保持现有 `namespace` 值稳定,以保持类型注册稳定。
+2. 检查依赖 FlatBuffers 默认字面量的字段,并根据需要在应用代码中设置显式默认值。
+3. 在需要对象图语义的位置添加 `fory_ref`/`fory_weak_ref`。
+4. 替换现有序列化路径之前,使用往返测试验证生成模型的行为。
+
+## 总结
+
+FlatBuffers 输入允许在迁移到 Fory 序列化和代码生成模型时复用现有 `.fbs` Schema。这有助于
+在保留 Schema 投入并使用 Fory 原生对象 API 的同时逐步采用 Fory。
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/compiler/generated-code/_category_.json b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/compiler/generated-code/_category_.json
new file mode 100644
index 0000000000..67ef51834f
--- /dev/null
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/compiler/generated-code/_category_.json
@@ -0,0 +1,6 @@
+{
+  "position": 8,
+  "label": "生成的代码",
+  "collapsible": true,
+  "collapsed": true
+}
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/compiler/generated-code/cpp.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/compiler/generated-code/cpp.md
new file mode 100644
index 0000000000..1e3df5573e
--- /dev/null
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/compiler/generated-code/cpp.md
@@ -0,0 +1,157 @@
+---
+title: C++
+sidebar_position: 5
+id: cpp
+license: |
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+     http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+---
+
+## 输出布局
+
+C++ 输出为每个 Schema 文件生成一个头文件,例如:
+
+- `<cpp_out>/addressbook.h`
+
+## 类型生成
+
+消息生成带类型化访问器和字节辅助方法的 `final` 类:
+
+```cpp
+class Person final {
+ public:
+  class PhoneNumber final {
+   public:
+    const std::string& number() const;
+    std::string* mutable_number();
+    template <class Arg, class... Args>
+    void set_number(Arg&& arg, Args&&... args);
+
+    fory::Result<std::vector<uint8_t>, fory::Error> to_bytes() const;
+    static fory::Result<PhoneNumber, fory::Error> from_bytes(
+        const uint8_t* data, std::size_t size);
+    static fory::Result<PhoneNumber, fory::Error> from_bytes(const std::vector<uint8_t>& data);
+  };
+
+  const std::string& name() const;
+  std::string* mutable_name();
+  template <class Arg, class... Args>
+  void set_name(Arg&& arg, Args&&... args);
+
+  const Animal& pet() const;
+  Animal* mutable_pet();
+};
+```
+
+可选消息字段生成 `has_xxx`、`mutable_xxx` 和 `clear_xxx` API:
+
+```cpp
+class Envelope final {
+ public:
+  bool has_payload() const { return payload_ != nullptr; }
+  const Envelope::Payload& payload() const { return *payload_; }
+  Envelope::Payload* mutable_payload() {
+    if (!payload_) {
+      payload_ = std::make_unique<Envelope::Payload>();
+    }
+    return payload_.get();
+  }
+  void clear_payload() { payload_.reset(); }
+
+ private:
+  std::unique_ptr<Envelope::Payload> payload_;
+};
+```
+
+联合生成 `std::variant` 包装器:
+
+```cpp
+class Animal final {
+ public:
+  enum class AnimalCase : uint32_t {
+    DOG = 1,
+    CAT = 2,
+  };
+
+  static Animal dog(Dog v);
+  static Animal cat(Cat v);
+
+  AnimalCase animal_case() const noexcept;
+  uint32_t animal_case_id() const noexcept;
+
+  bool is_dog() const noexcept;
+  const Dog* as_dog() const noexcept;
+  Dog* as_dog() noexcept;
+  const Dog& dog() const;
+  Dog& dog();
+
+  template <class Visitor>
+  decltype(auto) visit(Visitor&& vis) const;
+
+ private:
+  std::variant<Dog, Cat> value_;
+};
+```
+
+生成的头文件包含用于序列化元数据的 `FORY_UNION`、`FORY_ENUM` 和 `FORY_STRUCT` 宏。
+字段和载荷配置嵌入生成的 `FORY_STRUCT`/`FORY_UNION` 条目中。
+
+## 注册
+
+生成的注册函数:
+
+```cpp
+inline void register_types(fory::serialization::BaseFory& fory) {
+    fory.register_union<Animal>(106);
+    fory.register_enum<Person::PhoneType>(101);
+    fory.register_struct<Person::PhoneNumber>(102);
+    fory.register_struct<Person>(100);
+    fory.register_struct<Dog>(104);
+    fory.register_struct<Cat>(105);
+    fory.register_struct<AddressBook>(103);
+}
+```
+
+对于没有显式 `[id=...]` 的 Schema,生成的注册代码使用计算得到的数字 ID:
+
+```cpp
+fory.register_enum<Status>(1124725126);
+fory.register_union<Wrapper>(1471345060);
+fory.register_struct<Envelope>(3022445236);
+fory.register_union<Envelope::Detail>(1609214087);
+fory.register_struct<Envelope::Payload>(2862577837);
+```
+
+如果设置了 `option enable_auto_type_id = false;`:
+
+```cpp
+fory.register_struct<Config>("myapp.models.Config");
+fory.register_union<Holder>("myapp.models.Holder");
+```
+
+## 使用方式
+
+```cpp
+addressbook::Person person;
+person.set_name("Alice");
+*person.mutable_pet() = addressbook::Animal::dog(addressbook::Dog{});
+
+auto bytes = person.to_bytes();
+auto restored = addressbook::Person::from_bytes(bytes.value());
+```
+
+## gRPC 服务配套代码
+
+使用 `--grpc` 时,C++ 会生成 `<stem>.service.h`、`<stem>.service.grpc.h` 和 `<stem>.service.grpc.cc`。API 头文件在 `::<namespace>::service` 下包含同步接口和路由常量;绑定头文件包含生成的 `grpc::SerializationTraits` 以及位于 `::<namespace>::service::grpc` 下的客户端和服务端包装器。构建和使用指南请参阅 [C++ gRPC](../../grpc/cpp.md)。
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/compiler/generated-code/csharp.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/compiler/generated-code/csharp.md
new file mode 100644
index 0000000000..6a80683fc3
--- /dev/null
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/compiler/generated-code/csharp.md
@@ -0,0 +1,103 @@
+---
+title: C#
+sidebar_position: 7
+id: csharp
+license: |
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+     http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+---
+
+## 输出布局
+
+C# 输出为每个 Schema 生成一个 `.cs` 文件,例如:
+
+- `<csharp_out>/addressbook/Addressbook.cs`
+
+C# 模型文件名使用规范化的 PascalCase 源文件主名(stem)。例如,`service.fdl` 生成
+`Service.cs`,`order-events.fdl` 生成 `OrderEvents.cs`,`123-schema.fdl` 生成
+`Schema123Schema.cs`。
+
+## 类型生成
+
+消息生成带 C# 属性和字节辅助方法的 `[ForyStruct]` 类:
+
+```csharp
+[ForyStruct]
+public sealed partial class Person
+{
+    public string Name { get; set; } = string.Empty;
+    public int Id { get; set; }
+    public List<Person.PhoneNumber> Phones { get; set; } = new();
+    public Animal Pet { get; set; } = null!;
+
+    public byte[] ToBytes() { ... }
+    public static Person FromBytes(byte[] data) { ... }
+}
+```
+
+联合生成 `[ForyUnion]` ADT。`Unknown(UnknownCase)` 是 Fory 提供的向前兼容载体,使用
+`[ForyUnknownCase]` 标记。该标记只选择载体,不会向 Schema case 表添加条目。Schema
+定义的 case 使用非负 `[ForyCase]` ID。如果 case 需要非默认 Schema 编码,生成的
+`[ForyCase]` 会携带 `Type`。已知 case record 名称采用 PascalCase FDL case 名称;需要
+避免名称冲突时,载荷类型生成为限定引用。类型化联合必须至少包含一个非 `Unknown` case。
+
+```csharp
+[ForyUnion]
+public abstract partial record Animal
+{
+    private Animal() {}
+
+    [ForyUnknownCase]
+    public sealed partial record Unknown(UnknownCase Value) : Animal;
+
+    [ForyCase(0)]
+    public sealed partial record Dog(global::addressbook.Dog Value) : Animal;
+
+    [ForyCase(1)]
+    public sealed partial record Cat(global::addressbook.Cat Value) : Animal;
+}
+```
+
+## 模块安装
+
+每个 Schema 都会生成一个模块类,该类先安装导入的模块,再注册本地 Schema 类型:
+
+```csharp
+public static class AddressbookForyModule
+{
+    public static void Install(Fory fory)
+    {
+        fory.Register<addressbook.Animal>((uint)106);
+        fory.Register<addressbook.Person>((uint)100);
+        // ...
+    }
+}
+```
+
+C# 模型文件的基础文件名和模块类都使用规范化的源文件主名。它们不使用
+`csharp_namespace`,也不使用 gRPC 服务名称。例如,`service.fdl` 生成 `Service.cs` 和
+`ServiceForyModule`,而 `order-events.fdl` 生成 `OrderEvents.cs` 和
+`OrderEventsForyModule`。名为 `Greeter` 的 gRPC 服务生成服务配套文件 `GreeterGrpc.cs`;
+它不会更改 Schema 模块名称。要获得 `GreeterForyModule`,请将 Schema 文件命名为
+`greeter.fdl` 或 `Greeter.fdl`。
+
+此源文件规则允许多个 Schema 指向同一个 C# 命名空间而不发生冲突。不会生成从命名空间
+或服务派生的模块别名。
+
+未提供显式类型 ID 时,生成的安装代码使用计算得到的数字 ID(与其他目标行为相同)。
+
+## gRPC 服务配套代码
+
+使用 `--grpc` 时,C# 为每个服务生成一个 `<ServiceName>Grpc.cs`。其静态服务持有者包含描述符、`<ServiceName>Base`、`<ServiceName>Client` 和两个 `BindService` 重载。托管、客户端、依赖项和流式处理请参阅 [C# gRPC](../../grpc/csharp.md)。
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/compiler/generated-code/dart.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/compiler/generated-code/dart.md
new file mode 100644
index 0000000000..7c58d6547d
--- /dev/null
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/compiler/generated-code/dart.md
@@ -0,0 +1,190 @@
+---
+title: Dart
+sidebar_position: 10
+id: dart
+license: |
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+     http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+---
+
+## 输出布局
+
+Dart 为每个 Schema 输出两个文件:包含注解类型和 IDL 模块所有者的主 `.dart` 文件,以及包含生成序列化器和元数据的 `.fory.dart` part 文件。
+
+- `<dart_out>/package/package.dart`
+- `<dart_out>/package/package.fory.dart`
+
+## 类型生成
+
+消息生成带 `@ForyStruct` 注解的 `final class` 声明,每个字段都带有 `@ForyField`:
+
+```dart
+@ForyStruct()
+final class Person {
+  Person();
+
+  @ForyField(id: 1)
+  String name = '';
+
+  @ForyField(id: 2, type: Int32Type())
+  int id = 0;
+
+  @ForyField(id: 7)
+  List<Person_PhoneNumber> phones = <Person_PhoneNumber>[];
+
+  @ForyField(id: 8)
+  Animal pet = Animal._empty();
+}
+```
+
+枚举生成 Dart `enum` 声明,并提供 `rawValue` getter 和 `fromRawValue` 工厂:
+
+```dart
+enum Person_PhoneType {
+  mobile,
+  home,
+  work;
+
+  int get rawValue => switch (this) {
+    Person_PhoneType.mobile => 0,
+    Person_PhoneType.home => 1,
+    Person_PhoneType.work => 2,
+  };
+
+  static Person_PhoneType fromRawValue(int value) => switch (value) {
+    0 => Person_PhoneType.mobile,
+    1 => Person_PhoneType.home,
+    2 => Person_PhoneType.work,
+    _ => throw StateError('Unknown Person_PhoneType raw value $value.'),
+  };
+}
+```
+
+联合生成带 `@ForyUnion` 注解的类,其中包含工厂构造函数、case 枚举和自定义序列化器:
+
+```dart
+enum AnimalCase {
+  dog,
+  cat;
+
+  int get id => switch (this) {
+    AnimalCase.dog => 1,
+    AnimalCase.cat => 2,
+  };
+}
+
+@ForyUnion()
+final class Animal {
+  final AnimalCase _case;
+  final Object? _value;
+
+  const Animal._(this._case, this._value);
+
+  factory Animal.dog(Dog value) => Animal._(AnimalCase.dog, value);
+  factory Animal.cat(Cat value) => Animal._(AnimalCase.cat, value);
+
+  bool get isDog => _case == AnimalCase.dog;
+  Dog get dogValue => _value as Dog;
+  // ...
+}
+```
+
+嵌套类型使用扁平下划线命名(例如 `Person_PhoneNumber`、`Person_PhoneType`)。
+
+`list<T>` 字段生成有序集合载体并使用 Fory list 协议。`array<T>` 字段生成一维稠密 bool
+或数值载体,并使用专用稠密数组协议。生成的代码不得仅仅因为某种语言具有优化的类 list
+载体就选择 `array<T>`;Schema 种类来自 IDL。
+
+| IDL Schema          | Dart 生成的载体 | 说明                       |
+| ------------------- | --------------- | -------------------------- |
+| `list<int32>`       | `List<int>`     | List 协议,varint 元素编码 |
+| `list<fixed int32>` | `List<int>`     | List 协议,固定宽度元素段  |
+| `array<bool>`       | `BoolList`      | 每个 bool 一个字节         |
+| `array<int8>`       | `Int8List`      | 稠密有符号字节             |
+| `array<int16>`      | `Int16List`     | 稠密小端 int16             |
+| `array<int32>`      | `Int32List`     | 稠密小端 int32             |
+| `array<int64>`      | `Int64List`     | 稠密小端 int64             |
+| `array<uint8>`      | `Uint8List`     | 稠密无符号字节             |
+| `array<uint16>`     | `Uint16List`    | 稠密小端 uint16            |
+| `array<uint32>`     | `Uint32List`    | 稠密小端 uint32            |
+| `array<uint64>`     | `Uint64List`    | 稠密小端 uint64            |
+| `array<float16>`    | `Float16List`   | 稠密 binary16 存储         |
+| `array<bfloat16>`   | `Bfloat16List`  | 稠密 bfloat16 存储         |
+| `array<float32>`    | `Float32List`   | 稠密小端 float32           |
+| `array<float64>`    | `Float64List`   | 稠密小端 float64           |
+
+使用 `ArrayType(element: BoolType())` 的生成 Dart 字段必须使用 `BoolList`;普通
+`List<bool>` 仍是 `list<bool>` 的生成和手写载体。
+
+list 元素或 map 值的引用跟踪使用容器语法糖注解:
+
+```dart
+@ListField(element: DeclaredType(ref: true))
+@ForyField(id: 3)
+List<Node> children = <Node>[];
+
+@MapField(value: DeclaredType(ref: true))
+@ForyField(id: 2)
+Map<String, Node> byName = <String, Node>{};
+```
+
+## 模块安装
+
+每个生成的 Dart IDL 库都包含根据输入文件命名的模块所有者,例如 `AddressbookForyModule`
+对应 `addressbook.dart`。该模块先安装导入的模块,再使用默认 IDL 身份注册每个本地
+Schema 类型:
+
+```dart
+abstract final class AddressbookForyModule {
+  static void install(Fory fory) {
+    complex_pb.ComplexPbForyModule.install(fory);
+    _registerType(fory, Person);
+    _registerType(fory, Dog);
+  }
+
+  static Fory getFory() { ... }
+
+  static void _registerType(Fory fory, Type type) {
+    if (type == Person) {
+      registerGeneratedStruct(fory, _personForySchema, id: 100, namespace: null, typeName: null);
+      return;
+    }
+    // ... other types
+  }
+}
+```
+
+## 使用方式
+
+```dart
+import 'package:fory/fory.dart';
+import 'generated/addressbook/addressbook.dart';
+
+void main() {
+  final fory = Fory();
+  AddressbookForyModule.install(fory);
+
+  final person = Person()
+    ..name = 'Alice'
+    ..id = 1;
+
+  final bytes = fory.serialize(person);
+  final roundTrip = fory.deserialize<Person>(bytes);
+}
+```
+
+## gRPC 服务配套代码
+
+使用 `--grpc` 时,Dart 为每个 Schema 生成一个 `<stem>_grpc.dart`,其中包含 `<Service>Client` 和 `<Service>ServiceBase`。服务基类会注册自己的方法描述符,因此不会生成单独的 registrar。生成模块命名、Fory 安装和使用方式请参阅 [Dart gRPC](../../grpc/dart.md)。
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/compiler/generated-code/go.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/compiler/generated-code/go.md
new file mode 100644
index 0000000000..dab08a9855
--- /dev/null
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/compiler/generated-code/go.md
@@ -0,0 +1,148 @@
+---
+title: Go
+sidebar_position: 6
+id: go
+license: |
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+     http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+---
+
+## 输出布局
+
+Go 输出路径取决于 Schema 选项和 `--go_out`。
+
+对于 `addressbook.fdl`,配置 `go_package` 后,生成的输出遵循所配置的导入路径/包(例如位于 `--go_out` 根目录下)。
+
+如果没有 `go_package`,输出使用请求的 `--go_out` 目录和从包派生的文件命名。
+
+## 类型生成
+
+嵌套类型默认使用下划线命名(`Person_PhoneType`、`Person_PhoneNumber`):
+
+```go
+type Person_PhoneType int32
+
+const (
+    Person_PhoneTypeMobile Person_PhoneType = 0
+    Person_PhoneTypeHome   Person_PhoneType = 1
+    Person_PhoneTypeWork   Person_PhoneType = 2
+)
+
+type Person_PhoneNumber struct {
+    Number    string           `fory:"id=1"`
+    PhoneType Person_PhoneType `fory:"id=2"`
+}
+```
+
+消息生成带 `fory` tag 和字节辅助方法的 struct:
+
+```go
+type Person struct {
+    Name   string               `fory:"id=1"`
+    Id     int32                `fory:"id=2"`
+    Phones []Person_PhoneNumber `fory:"id=7,type=list"`
+    Pet    Animal               `fory:"id=8"`
+}
+
+func (m *Person) ToBytes() ([]byte, error) { ... }
+func (m *Person) FromBytes(data []byte) error { ... }
+```
+
+联合生成带构造函数、访问器和 visitor API 的类型化 case struct:
+
+```go
+type AnimalCase uint32
+
+type Animal struct {
+    case_ AnimalCase
+    value any
+}
+
+func DogAnimal(v *Dog) Animal { ... }
+func CatAnimal(v *Cat) Animal { ... }
+
+func (u Animal) Case() AnimalCase { ... }
+func (u Animal) AsDog() (*Dog, bool) { ... }
+func (u Animal) Visit(visitor AnimalVisitor) error { ... }
+```
+
+## 注册
+
+生成的注册函数:
+
+```go
+func RegisterTypes(f *fory.Fory) error {
+    if err := f.RegisterUnion(Animal{}, 106, fory.NewUnionSerializer(...)); err != nil {
+        return err
+    }
+    if err := f.RegisterEnum(Person_PhoneType(0), 101); err != nil {
+        return err
+    }
+    if err := f.RegisterStruct(Person_PhoneNumber{}, 102); err != nil {
+        return err
+    }
+    if err := f.RegisterStruct(Person{}, 100); err != nil {
+        return err
+    }
+    return nil
+}
+```
+
+对于没有显式 `[id=...]` 的 Schema,生成的注册代码使用计算得到的数字 ID:
+
+```go
+if err := f.RegisterEnum(Status(0), 1124725126); err != nil { ... }
+if err := f.RegisterUnion(Wrapper{}, 1471345060, fory.NewUnionSerializer(...)); err != nil { ... }
+if err := f.RegisterStruct(Envelope{}, 3022445236); err != nil { ... }
+if err := f.RegisterUnion(Envelope_Detail{}, 1609214087, fory.NewUnionSerializer(...)); err != nil { ... }
+if err := f.RegisterStruct(Envelope_Payload{}, 2862577837); err != nil { ... }
+```
+
+如果设置了 `option enable_auto_type_id = false;`:
+
+```go
+if err := f.RegisterStructByName(Config{}, "myapp.models.Config"); err != nil { ... }
+if err := f.RegisterUnionByName(Holder{}, "myapp.models.Holder", fory.NewUnionSerializer(...)); err != nil { ... }
+```
+
+`go_nested_type_style` 控制嵌套类型命名:
+
+```protobuf
+option go_nested_type_style = "camelcase";
+```
+
+两者都设置时,CLI flag `--go_nested_type_style` 会覆盖此 Schema 选项。
+
+## 使用方式
+
+```go
+person := &Person{
+    Name: "Alice",
+    Pet:  DogAnimal(&Dog{Name: "Rex"}),
+}
+
+data, err := person.ToBytes()
+if err != nil {
+    panic(err)
+}
+var restored Person
+if err := restored.FromBytes(data); err != nil {
+    panic(err)
+}
+```
+
+## gRPC 服务配套代码
+
+使用 `--grpc` 时,Go 生成 `<module>_grpc.go`,其中包含生成的 `CodecV2`、客户端和服务端接口、流类型、描述符及注册辅助方法。codec 配置和使用方式请参阅 [Go gRPC](../../grpc/go.md)。
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/compiler/generated-code/index.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/compiler/generated-code/index.md
new file mode 100644
index 0000000000..1af56c7e1b
--- /dev/null
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/compiler/generated-code/index.md
@@ -0,0 +1,175 @@
+---
+title: 概述
+sidebar_position: 1
+id: index
+license: |
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+     http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+---
+
+本文档介绍各目标语言生成的代码。
+
+Fory IDL 生成的类型遵循宿主语言习惯,可以直接用作领域对象。根据目标语言,生成的类型还包含 `to/from bytes` 辅助方法以及 Schema 模块或注册辅助方法。
+
+生成的 Schema 模块根据 Schema 源文件命名,而不是根据包或命名空间命名。对于在语言
+包或命名空间中直接公开模块的目标,`AddressbookForyModule` 或
+`ComplexPbForyModule` 等名称允许多个 IDL 文件指向同一个包或命名空间,而不会生成
+冲突的 `ForyModule` 类型。
+
+## 参考 Schema
+
+以下示例使用两个真实 Schema:
+
+1. `addressbook.fdl`(显式类型 ID)
+2. `auto_id.fdl`(无显式类型 ID)
+
+### `addressbook.fdl` 摘录
+
+```protobuf
+package addressbook;
+
+option go_package = "github.com/myorg/myrepo/gen/addressbook;addressbook";
+
+message Person [id=100] {
+    string name = 1;
+    int32 id = 2;
+
+    enum PhoneType [id=101] {
+        PHONE_TYPE_MOBILE = 0;
+        PHONE_TYPE_HOME = 1;
+        PHONE_TYPE_WORK = 2;
+    }
+
+    message PhoneNumber [id=102] {
+        string number = 1;
+        PhoneType phone_type = 2;
+    }
+
+    list<PhoneNumber> phones = 7;
+    Animal pet = 8;
+}
+
+message Dog [id=104] {
+    string name = 1;
+    int32 bark_volume = 2;
+}
+
+message Cat [id=105] {
+    string name = 1;
+    int32 lives = 2;
+}
+
+union Animal [id=106] {
+    Dog dog = 1;
+    Cat cat = 2;
+}
+
+message AddressBook [id=103] {
+    list<Person> people = 1;
+    map<string, Person> people_by_name = 2;
+}
+```
+
+### `auto_id.fdl` 摘录
+
+```protobuf
+package auto_id;
+
+enum Status {
+    UNKNOWN = 0;
+    OK = 1;
+}
+
+message Envelope {
+    string id = 1;
+
+    message Payload {
+        int32 value = 1;
+    }
+
+    union Detail {
+        Payload payload = 1;
+        string note = 2;
+    }
+
+    Payload payload = 2;
+    Detail detail = 3;
+    Status status = 4;
+}
+
+union Wrapper {
+    Envelope envelope = 1;
+    string raw = 2;
+}
+```
+
+## 跨语言说明
+
+### 类型 ID 行为
+
+- 生成的模块安装或注册辅助方法直接使用显式 `[id=...]` 值。
+- 省略类型 ID 时,生成的代码使用计算得到的数字 ID(参见 `auto_id.*` 输出)。
+- 如果设置了 `option enable_auto_type_id = false;`,生成的模块安装或注册辅助方法会使用基于名称的 API,而不是数字 ID。
+
+### 嵌套类型形式
+
+| 语言                  | 嵌套类型形式                 |
+| --------------------- | ---------------------------- |
+| Java                  | `Person.PhoneNumber`         |
+| Python                | `Person.PhoneNumber`         |
+| Rust                  | `person::PhoneNumber`        |
+| C++                   | `Person::PhoneNumber`        |
+| Go                    | `Person_PhoneNumber`(默认) |
+| C#                    | `Person.PhoneNumber`         |
+| JavaScript/TypeScript | `Person.PhoneNumber`         |
+| Swift                 | `Person.PhoneNumber`         |
+| Dart                  | `Person_PhoneNumber`         |
+| Kotlin                | `PersonPhoneNumber`          |
+| Scala                 | `Person.PhoneNumber`         |
+
+### 字节辅助方法命名
+
+| 语言                  | 辅助方法                    |
+| --------------------- | --------------------------- |
+| Java                  | `toBytes` / `fromBytes`     |
+| Kotlin                | `toBytes` / `fromBytes`     |
+| Scala                 | `toBytes` / `fromBytes`     |
+| Python                | `to_bytes` / `from_bytes`   |
+| Rust                  | `to_bytes` / `from_bytes`   |
+| C++                   | `to_bytes` / `from_bytes`   |
+| Go                    | `ToBytes` / `FromBytes`     |
+| C#                    | `ToBytes` / `FromBytes`     |
+| JavaScript/TypeScript | (通过 `fory.serialize()`) |
+| Swift                 | `toBytes` / `fromBytes`     |
+| Dart                  | (通过 `fory.serialize()`) |
+
+## 语言参考
+
+请选择目标语言对应的生成代码参考。生成的模型仍是普通的语言原生类型,并使用该语言支持的
+Fory 序列化 API。
+
+| 语言                  | 生成代码参考                           |
+| --------------------- | -------------------------------------- |
+| Java                  | [Java](java.md)                        |
+| Python                | [Python](python.md)                    |
+| C++                   | [C++](cpp.md)                          |
+| Go                    | [Go](go.md)                            |
+| Rust                  | [Rust](rust.md)                        |
+| JavaScript/TypeScript | [JavaScript/TypeScript](javascript.md) |
+| C#                    | [C#](csharp.md)                        |
+| Swift                 | [Swift](swift.md)                      |
+| Dart                  | [Dart](dart.md)                        |
+| Scala                 | [Scala](scala.md)                      |
+| Kotlin                | [Kotlin](kotlin.md)                    |
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/compiler/generated-code/java.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/compiler/generated-code/java.md
new file mode 100644
index 0000000000..df05824ae3
--- /dev/null
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/compiler/generated-code/java.md
@@ -0,0 +1,149 @@
+---
+title: Java
+sidebar_position: 2
+id: java
+license: |
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+     http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+---
+
+## 输出布局
+
+对于 `package addressbook`,Java 输出生成在:
+
+- `<java_out>/addressbook/`
+- 类型文件:`AddressBook.java`、`Person.java`、`Dog.java`、`Cat.java`、`Animal.java`
+- Schema 模块:`AddressbookForyModule.java`
+
+对于没有 Java 包的 Schema,Schema 模块名称从源文件主名(stem)派生,例如 `main.fdl`
+生成 `MainForyModule.java`。Java 导入图不能混用默认包 Schema 和命名 Java 包。
+
+## 类型生成
+
+消息生成带 `@ForyField`、默认构造函数、getter/setter 和字节辅助方法的 Java 类:
+
+```java
+public class Person {
+    public static enum PhoneType {
+        MOBILE,
+        HOME,
+        WORK;
+    }
+
+    public static class PhoneNumber {
+        @ForyField(id = 1)
+        private String number;
+
+        @ForyField(id = 2)
+        private PhoneType phoneType;
+
+        public byte[] toBytes() { ... }
+        public static PhoneNumber fromBytes(byte[] bytes) { ... }
+    }
+
+    @ForyField(id = 1)
+    private String name;
+
+    @ForyField(id = 8)
+    private Animal pet;
+
+    public byte[] toBytes() { ... }
+    public static Person fromBytes(byte[] bytes) { ... }
+}
+```
+
+带 `evolving=false` 的消息使用 Java 固定 Schema struct 编码生成。
+
+联合生成扩展 `org.apache.fory.type.union.Union` 的类:
+
+```java
+public final class Animal extends Union {
+    public enum AnimalCase {
+        DOG(1),
+        CAT(2);
+        public final int id;
+        AnimalCase(int id) { this.id = id; }
+    }
+
+    public static Animal ofDog(Dog v) { ... }
+    public AnimalCase getAnimalCase() { ... }
+    public int getAnimalCaseId() { ... }
+
+    public boolean hasDog() { ... }
+    public Dog getDog() { ... }
+    public void setDog(Dog v) { ... }
+}
+```
+
+## Schema 模块
+
+每个 JVM Schema 都会生成一个 `ForyModule`。导入的 Schema 模块通过
+`fory.register(...)` 安装,因此共享导入由 Fory 实例去重。
+
+```java
+public final class AddressbookForyModule implements org.apache.fory.ForyModule {
+  public static final AddressbookForyModule INSTANCE = new AddressbookForyModule();
+
+  static ThreadSafeFory getFory() { ... }
+
+  @Override
+  public void install(Fory fory) {
+    org.apache.fory.resolver.TypeResolver resolver = fory.getTypeResolver();
+    resolver.registerUnion(Animal.class, 106L, new org.apache.fory.serializer.UnionSerializer(resolver, Animal.class));
+    resolver.register(Person.class, 100L);
+    resolver.register(Person.PhoneType.class, 101L);
+    resolver.register(Person.PhoneNumber.class, 102L);
+    resolver.register(Dog.class, 104L);
+    resolver.register(Cat.class, 105L);
+    resolver.register(AddressBook.class, 103L);
+  }
+}
+```
+
+对于没有显式 `[id=...]` 的 Schema,生成的注册代码使用计算得到的数字 ID(例如来自 `auto_id.fdl`):
+
+```java
+resolver.register(Status.class, 1124725126L);
+resolver.registerUnion(Wrapper.class, 1471345060L, new org.apache.fory.serializer.UnionSerializer(resolver, Wrapper.class));
+resolver.register(Envelope.class, 3022445236L);
+resolver.registerUnion(Envelope.Detail.class, 1609214087L, new org.apache.fory.serializer.UnionSerializer(resolver, Envelope.Detail.class));
+resolver.register(Envelope.Payload.class, 2862577837L);
+```
+
+如果设置了 `option enable_auto_type_id = false;`,注册使用符号名称:
+
+```java
+resolver.register(Config.class, "myapp.models", "Config");
+resolver.registerUnion(
+    Holder.class,
+    "myapp.models",
+    "Holder",
+    new org.apache.fory.serializer.UnionSerializer(resolver, Holder.class));
+```
+
+## 使用方式
+
+```java
+Person person = new Person();
+person.setName("Alice");
+person.setPet(Animal.ofDog(new Dog()));
+
+byte[] data = person.toBytes();
+Person restored = Person.fromBytes(data);
+```
+
+## gRPC 服务配套代码
+
+使用 `--grpc` 时,Java 为每个服务生成一个 `<ServiceName>Grpc.java`。它公开 `SERVICE_NAME`、服务和方法描述符、`<ServiceName>ImplBase`,以及异步、阻塞和 future stub 工厂。依赖项以及服务端、客户端和流式用法请参阅 [Java gRPC](../../grpc/java.md)。
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/compiler/generated-code/javascript.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/compiler/generated-code/javascript.md
new file mode 100644
index 0000000000..3bc6e6520b
--- /dev/null
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/compiler/generated-code/javascript.md
@@ -0,0 +1,93 @@
+---
+title: JavaScript/TypeScript
+sidebar_position: 8
+id: javascript
+license: |
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+     http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+---
+
+## 输出布局
+
+JavaScript/TypeScript 输出为每个 Schema 生成一个 `.ts` 文件,例如:
+
+- `<javascript_out>/addressbook.ts`
+
+当 Schema 包含服务时,JavaScript 还可以生成服务配套代码:
+
+- `<javascript_out>/addressbook_grpc.ts`(使用 `--grpc` 生成)
+- `<javascript_out>/addressbook_grpc_web.ts`(使用 `--grpc-web` 生成)
+
+## 类型生成
+
+消息生成字段名称为 camelCase 的 `export interface` 声明:
+
+```typescript
+export interface Person {
+  name: string;
+  id: number;
+  phones: PhoneNumber[];
+  pet?: Animal | null;
+}
+```
+
+枚举生成 `export enum` 声明:
+
+```typescript
+export enum PhoneType {
+  MOBILE = 0,
+  HOME = 1,
+  WORK = 2,
+}
+```
+
+联合生成带 case 枚举的可辨识联合:
+
+```typescript
+export enum AnimalCase {
+  DOG = 1,
+  CAT = 2,
+}
+
+export type Animal =
+  { case: AnimalCase.DOG; value: Dog } | { case: AnimalCase.CAT; value: Cat };
+```
+
+## Schema 辅助方法
+
+每个生成的模型文件都会导出用于自定义 `Fory` 实例的注册辅助方法和根序列化辅助方法。
+公共 API 如下:
+
+```typescript
+import type Fory, { Serializer } from "@apache-fory/core";
+
+export function registerAddressbookTypes(fory: Fory): {
+  person: {
+    serialize: (value: Person | null) => Uint8Array;
+    deserialize: (bytes: Uint8Array) => Person;
+    serializer: Serializer;
+  };
+};
+export const serializePerson: (value: Person | null) => Uint8Array;
+export const deserializePerson: (bytes: Uint8Array) => Person;
+```
+
+导入的 Schema 模块由 `registerXxxTypes(fory)` 自动注册。生成的默认序列化路径请使用
+`serializeX` 和 `deserializeX`。当应用自行管理实例时,调用
+`registerXxxTypes(fory)` 并传入应用的 `Fory` 实例。生成的 gRPC 配套代码会自动导入生成的辅助方法。
+
+## gRPC 服务配套代码
+
+`--grpc` 生成 `<module>_grpc.ts`,其中包含服务和路径常量、handler 接口、服务定义和注册辅助方法,以及 `<Service>Client` 类和 `create<Service>Client` 工厂。`--grpc-web` 生成 `<module>_grpc_web.ts`,其中包含回调客户端以及一元 RPC 的 promise 客户端;两种客户端类及其工厂函数都会导出。Node.js 和浏览器用法请参阅 [JavaScript gRPC](../../grpc/javascript.md)。
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/compiler/generated-code/kotlin.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/compiler/generated-code/kotlin.md
new file mode 100644
index 0000000000..dfba66192e
--- /dev/null
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/compiler/generated-code/kotlin.md
@@ -0,0 +1,147 @@
+---
+title: Kotlin
+sidebar_position: 11
+id: kotlin
+license: |
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+     http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+---
+
+Kotlin 目标只生成 Kotlin 源代码。编译器不会生成 Java 文件。
+
+## 输出布局
+
+对于源文件 `addressbook.fdl`,当它包含 `package addressbook` 时,Kotlin 输出生成在:
+
+- `<kotlin_out>/addressbook/`
+- 类型文件:`AddressBook.kt`、`Person.kt`、`Dog.kt`、`Cat.kt`、`Animal.kt`
+- Schema 模块:`AddressbookForyModule.kt`
+
+Schema 模块名称从源文件主名(stem)派生。同一 Kotlin 包中的 Schema 需要不同的生成文件名;
+写入文件之前会拒绝重复的生成 Kotlin 文件路径。
+
+如果存在 `option kotlin_package = "...";`,输出路径和 Kotlin 包使用该选项。否则
+Kotlin 使用 FDL 包。Kotlin 导入图不能混用默认包 Schema 和命名 Kotlin 包。
+注册仍使用 FDL 包,以保持跨语言类型名称稳定。
+
+## 类型生成
+
+消息默认生成 Kotlin `data class` 声明:
+
+```kotlin
+@ForyStruct
+public data class Person(
+  @field:ForyField(id = 1)
+  public val name: String,
+
+  @field:ForyField(id = 7)
+  public val phones: List<PersonPhoneNumber>,
+
+  @field:ForyField(id = 8)
+  public val pet: Animal,
+) {
+  public fun toBytes(): ByteArray = AddressbookForyModule.getFory().serialize(this)
+
+  public companion object {
+    public fun fromBytes(bytes: ByteArray): Person =
+      AddressbookForyModule.getFory().deserialize(bytes, Person::class.java)
+  }
+}
+```
+
+参与编译器检测到的构造环的消息会生成普通可变类,使生成的序列化器能够在读取反向引用前
+发布实例:
+
+```kotlin
+@ForyStruct
+public class Node() {
+  @ForyField(id = 1)
+  public var id: String = ""
+
+  @Ref
+  @ForyField(id = 2)
+  public var parent: Node? = null
+}
+```
+
+生成的 Kotlin IDL 源代码使用 Kotlin `?` 表示可空性,而不是 Fory `@Nullable`;为编译器
+检测到的构造环生成的可变类也遵循此规则。
+
+枚举生成具有稳定 Fory 枚举 ID 的 Kotlin 枚举类。联合生成带 `@ForyUnion` 的密封类;Fory
+提供的 `Unknown(UnknownCase)` 载体使用 `@ForyUnknownCase` 标记。该标记只选择载体,不会
+向 Schema case 表添加条目。Schema 定义的 case 可以使用 case ID `0..N`,并保存一个
+`value` 属性。类型化联合必须至少包含一个非 `Unknown` case。
+
+```kotlin
+package addressbook
+
+import org.apache.fory.annotation.ForyCase
+import org.apache.fory.annotation.ForyUnion
+import org.apache.fory.annotation.ForyUnknownCase
+import org.apache.fory.type.union.UnknownCase
+
+@ForyUnion
+public sealed class Animal {
+  @ForyUnknownCase
+  public data class Unknown(public val value: UnknownCase) : Animal()
+
+  @ForyCase(id = 0)
+  public data class Dog(public val value: addressbook.Dog) : Animal()
+}
+```
+
+当 Schema case 名称与载荷类型具有相同简单名称时,带包的 Kotlin 输出会保留 Schema
+case 名称并限定载荷类型。如果目标输出模式无法为冲突表达合法限定名,编译器会在生成的
+case 类名后追加 `Case`。
+
+Kotlin `int32`、`int64`、`uint32` 和 `uint64` 字段默认使用 xlang varint 编码,因此生成的
+Kotlin 不会为默认情况生成 `@VarInt`。只有 Schema 请求相应非默认编码时,才生成
+`@Fixed` 或 `@Tagged`。`duration` 映射到 `kotlin.time.Duration`,编码时会拒绝无限
+duration。稠密 `array<float16>` 和 `array<bfloat16>` 使用 Java 核心 `Float16Array` 和
+`BFloat16Array` 载体。生成的 Kotlin IDL 使用 `@ArrayType ByteArray` 表示 `array<int8>`,
+包括嵌套位置。
+
+## Schema 模块
+
+生成的 Schema 模块注册 Schema 类型,并根据目标类名解析 KSP 生成的序列化器。包拥有
+的辅助 Fory 实例使用已安装 Schema 模块的 `ForyKotlin.builder().withXlang(true)`,因此
+消息 `toBytes`/`fromBytes` 辅助方法无需调用方管理 Fory 设置即可工作。对于
+`addressbook.fdl`:
+
+```kotlin
+public object AddressbookForyModule : ForyModule {
+  private val fory: ThreadSafeFory by lazy {
+    ForyKotlin.builder()
+      .withXlang(true)
+      .withRefTracking(true)
+      .withModule(this)
+      .buildThreadSafeFory()
+  }
+
+  internal fun getFory(): ThreadSafeFory = fory
+
+  override fun install(fory: Fory) {
+    KotlinSerializers.registerType(fory, Person::class.java, 100L)
+    KotlinSerializers.registerSerializer(fory, Person::class.java)
+    KotlinSerializers.registerUnion(fory, Animal::class.java, 106L)
+  }
+}
+```
+
+`registerUnion` 会发现生成的 `<Target>_ForySerializer`;调用方无需传入序列化器实例。
+
+## gRPC 服务配套代码
+
+使用 `--grpc` 时,Kotlin 为每个服务生成一个 `<ServiceName>GrpcKt.kt`,而不是 Java 配套代码。生成的对象公开 `SERVICE_NAME`、服务和方法描述符、`<ServiceName>CoroutineImplBase` 和 `<ServiceName>CoroutineStub`。依赖项、KSP 设置以及协程和 `Flow` 用法请参阅 [Kotlin gRPC](../../grpc/kotlin.md)。
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/compiler/generated-code/python.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/compiler/generated-code/python.md
new file mode 100644
index 0000000000..441e2dbdbd
--- /dev/null
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/compiler/generated-code/python.md
@@ -0,0 +1,120 @@
+---
+title: Python
+sidebar_position: 3
+id: python
+license: |
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+     http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+---
+
+## 输出布局
+
+Python 输出为每个 Schema 文件生成一个模块,例如:
+
+- `<python_out>/addressbook.py`
+
+## 类型生成
+
+联合生成 case 枚举和带类型化辅助方法的 `Union` 子类:
+
+```python
+class AnimalCase(Enum):
+    DOG = 1
+    CAT = 2
+
+class Animal(Union):
+    @classmethod
+    def dog(cls, v: Dog) -> "Animal": ...
+
+    def case(self) -> AnimalCase: ...
+    def case_id(self) -> int: ...
+
+    def is_dog(self) -> bool: ...
+    def dog_value(self) -> Dog: ...
+    def set_dog(self, v: Dog) -> None: ...
+```
+
+消息生成 `@pyfory.dataclass` 类型,嵌套类型保持嵌套:
+
+```python
+@pyfory.dataclass
+class Person:
+    class PhoneType(IntEnum):
+        MOBILE = 0
+        HOME = 1
+        WORK = 2
+
+    @pyfory.dataclass
+    class PhoneNumber:
+        number: str = pyfory.field(id=1, default="")
+        phone_type: Person.PhoneType = pyfory.field(id=2, default=None)
+
+    name: str = pyfory.field(id=1, default="")
+    phones: List[Person.PhoneNumber] = pyfory.field(id=7, default_factory=list)
+    pet: Animal = pyfory.field(id=8, default=None)
+
+    def to_bytes(self) -> bytes: ...
+    @classmethod
+    def from_bytes(cls, data: bytes) -> "Person": ...
+```
+
+## 注册
+
+生成的注册函数:
+
+```python
+def register_addressbook_types(fory: pyfory.Fory):
+    fory.register_union(Animal, type_id=106, serializer=AnimalSerializer(fory))
+    fory.register_type(Person, type_id=100)
+    fory.register_type(Person.PhoneType, type_id=101)
+    fory.register_type(Person.PhoneNumber, type_id=102)
+    fory.register_type(Dog, type_id=104)
+    fory.register_type(Cat, type_id=105)
+    fory.register_type(AddressBook, type_id=103)
+```
+
+对于没有显式 `[id=...]` 的 Schema,生成的注册代码使用计算得到的数字 ID:
+
+```python
+fory.register_type(Status, type_id=1124725126)
+fory.register_union(Wrapper, type_id=1471345060, serializer=WrapperSerializer(fory))
+fory.register_type(Envelope, type_id=3022445236)
+fory.register_union(Envelope.Detail, type_id=1609214087, serializer=Envelope.DetailSerializer(fory))
+fory.register_type(Envelope.Payload, type_id=2862577837)
+```
+
+如果设置了 `option enable_auto_type_id = false;`:
+
+```python
+fory.register_type(Config, name="myapp.models.Config")
+fory.register_union(
+    Holder,
+    name="myapp.models.Holder",
+    serializer=HolderSerializer(fory),
+)
+```
+
+## 使用方式
+
+```python
+person = Person(name="Alice", pet=Animal.dog(Dog(name="Rex", bark_volume=10)))
+
+data = person.to_bytes()
+restored = Person.from_bytes(data)
+```
+
+## gRPC 服务配套代码
+
+使用 `--grpc` 时,Python 生成包含 stub、servicer 基类和注册函数的 `<module>_grpc.py`。默认使用异步 `grpc.aio`;`--grpc-python-mode=sync` 保持相同文件名和公共名称。依赖项和使用方式请参阅 [Python gRPC](../../grpc/python.md)。
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/compiler/generated-code/rust.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/compiler/generated-code/rust.md
new file mode 100644
index 0000000000..19087a1982
--- /dev/null
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/compiler/generated-code/rust.md
@@ -0,0 +1,150 @@
+---
+title: Rust
+sidebar_position: 4
+id: rust
+license: |
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+     http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+---
+
+## 输出布局
+
+Rust 输出为每个 Schema 生成一个模块文件,例如:
+
+- `<rust_out>/addressbook.rs`
+
+使用 `--grpc` 且 Schema 包含服务时,Rust 还会生成:
+
+- `<rust_out>/addressbook_service.rs`
+- `<rust_out>/addressbook_service_grpc.rs`
+
+## 类型生成
+
+联合映射到带 `#[fory(id = ...)]` Schema case 属性的 Rust 枚举。
+`#[fory(unknown)] Unknown(::fory::UnknownCase)` 标记 Fory 提供的向前兼容载体。该标记
+只选择载体,不会向 Schema case 表添加条目;Schema case 仍使用完整的 `0..N` ID 范围。
+生成的类型化联合必须至少包含一个非 `Unknown` case。编译器将第一个声明的非 `Unknown`
+case 标记为 `#[fory(default)]`。当该 case 的载荷实现 Rust 标准 `Default` trait 时,编译器
+还会从该 case 生成标准 `Default` 实现:
+
+```rust
+#[derive(::fory::ForyUnion, Clone, Debug, PartialEq, Eq, Hash)]
+pub enum Animal {
+    #[fory(unknown)]
+    Unknown(::fory::UnknownCase),
+    #[fory(id = 0, default)]
+    Dog(self::Dog),
+    #[fory(id = 1)]
+    Cat(self::Cat),
+}
+
+impl ::std::default::Default for Animal {
+    fn default() -> Self {
+        Self::Dog(<self::Dog as ::std::default::Default>::default())
+    }
+}
+```
+
+如果所选载荷没有实现标准 `Default`,例如 `any` 载荷,则生成的联合没有不会失败的
+`Default` 实现。此模型级默认值独立于 Fory 可失败的反序列化默认值;后者通过相应 codec
+和当前读取上下文重建所选 case。
+
+嵌套类型生成嵌套模块:
+
+```rust
+pub mod person {
+    #[derive(ForyEnum, Debug, Clone, PartialEq, Default)]
+    #[repr(i32)]
+    pub enum PhoneType {
+        #[default]
+        Mobile = 0,
+        Home = 1,
+        Work = 2,
+    }
+
+    #[derive(ForyStruct, Debug, Clone, PartialEq, Default)]
+    pub struct PhoneNumber {
+        #[fory(id = 1)]
+        pub number: String,
+        #[fory(id = 2)]
+        pub phone_type: PhoneType,
+    }
+}
+```
+
+消息派生 `ForyStruct`,并包含 `to_bytes`/`from_bytes` 辅助方法:
+
+```rust
+#[derive(ForyStruct, Debug, Clone, PartialEq, Default)]
+pub struct Person {
+    #[fory(id = 1)]
+    pub name: String,
+    #[fory(id = 7)]
+    pub phones: Vec<person::PhoneNumber>,
+    #[fory(id = 8)]
+    pub pet: Animal,
+}
+```
+
+## 注册
+
+生成的注册函数:
+
+```rust
+pub fn register_types(fory: &mut Fory) -> Result<(), fory::Error> {
+    fory.register_union::<Animal>(106)?;
+    fory.register::<person::PhoneType>(101)?;
+    fory.register::<person::PhoneNumber>(102)?;
+    fory.register::<Person>(100)?;
+    fory.register::<Dog>(104)?;
+    fory.register::<Cat>(105)?;
+    fory.register::<AddressBook>(103)?;
+    Ok(())
+}
+```
+
+对于没有显式 `[id=...]` 的 Schema,生成的注册代码使用计算得到的数字 ID:
+
+```rust
+fory.register::<Status>(1124725126)?;
+fory.register_union::<Wrapper>(1471345060)?;
+fory.register::<Envelope>(3022445236)?;
+fory.register_union::<envelope::Detail>(1609214087)?;
+fory.register::<envelope::Payload>(2862577837)?;
+```
+
+如果设置了 `option enable_auto_type_id = false;`:
+
+```rust
+fory.register_by_name::<Config>("myapp.models.Config")?;
+fory.register_union_by_name::<Holder>("myapp.models.Holder")?;
+```
+
+## 使用方式
+
+```rust
+let person = Person {
+    name: "Alice".into(),
+    pet: Animal::Dog(self::Dog::default()),
+    ..Default::default()
+};
+
+let bytes = person.to_bytes()?;
+let restored = Person::from_bytes(&bytes)?;
+```
+
+## gRPC 服务配套代码
+
+使用 `--grpc` 时,Rust 生成包含异步服务 trait 和路径常量的 `<module>_service.rs`,以及 `<module>_service_grpc.rs`;后者包含 tonic 客户端、服务端、codec 和 `ForyGrpcPayload` 实现,这些实现由模型的 `to_bytes` 和 `from_bytes` 辅助方法支持。依赖项和使用方式请参阅 [Rust gRPC](../../grpc/rust.md)。
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/compiler/generated-code/scala.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/compiler/generated-code/scala.md
new file mode 100644
index 0000000000..e137085917
--- /dev/null
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/compiler/generated-code/scala.md
@@ -0,0 +1,156 @@
+---
+title: Scala
+sidebar_position: 12
+id: scala
+license: |
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+     http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+---
+
+Scala 目标只生成 Scala 3 源代码。`fory-scala` 产物仍支持 Scala 2.13 和 Scala 3,但生成的
+IDL 源代码和宏派生需要 Scala 3。
+
+## 输出布局
+
+对于 `package addressbook`,Scala 输出生成在:
+
+- `<scala_out>/addressbook/`
+- 类型文件:`AddressBook.scala`、`Person.scala`、`Dog.scala`、`Cat.scala`、`Animal.scala`
+- Schema 模块:`AddressbookForyModule.scala`
+
+对于没有 Scala 包的 Schema,Schema 模块名称从源文件主名(stem)派生,例如 `main.fdl`
+生成 `MainForyModule.scala`。Scala 导入图不能混用默认包 Schema 和命名 Scala 包。
+
+## 类型生成
+
+不在编译器检测到的构造环中的消息会生成 case class:
+
+```scala
+import org.apache.fory.annotation.{ForyField, ForyStruct}
+import org.apache.fory.scala.ForySerializer
+
+@ForyStruct
+final case class Person(
+  @ForyField(id = 1) name: String,
+  @ForyField(id = 3) email: Option[String],
+  @ForyField(id = 7) phones: List[Person.PhoneNumber],
+  @ForyField(id = 8) pet: Animal
+) derives ForySerializer {
+  def toBytes(): Array[Byte] =
+    AddressbookForyModule.getFory.serialize(this)
+}
+
+object Person {
+  def fromBytes(bytes: Array[Byte]): Person =
+    AddressbookForyModule.getFory.deserialize(bytes).asInstanceOf[Person]
+}
+```
+
+循环构造环中的消息会生成具有可变序列化字段的普通类,使读取代码可以在读取反向引用前
+注册对象:
+
+```scala
+import org.apache.fory.annotation.{ForyField, ForyStruct, Ref}
+import org.apache.fory.scala.ForySerializer
+
+@ForyStruct
+final class Node() derives ForySerializer {
+  @ForyField(id = 1)
+  var id: String = ""
+
+  @Ref
+  @ForyField(id = 2)
+  var parent: Option[Node] = None
+}
+```
+
+枚举生成具有稳定 Fory ID 的 Scala 3 枚举:
+
+```scala
+import org.apache.fory.annotation.ForyEnumId
+
+enum PhoneType {
+  @ForyEnumId(0)
+  case Mobile
+
+  @ForyEnumId(1)
+  case Home
+
+  @ForyEnumId(2)
+  case Work
+}
+```
+
+联合生成 Scala 3 ADT 枚举。`Unknown(UnknownCase)` 是 Fory 提供的向前兼容载体,使用
+`@ForyUnknownCase` 标记。它不会出现在 Schema case 表中,因为该标记只选择载体,不会
+添加 Schema 条目。Schema 定义的 case 使用非负 `@ForyCase` ID。类型化联合必须至少
+包含一个非 `Unknown` case。
+
+```scala
+package addressbook
+
+import org.apache.fory.annotation.{ForyCase, ForyUnion, ForyUnknownCase}
+import org.apache.fory.scala.ForySerializer
+import org.apache.fory.`type`.union.UnknownCase
+
+@ForyUnion
+enum Animal derives ForySerializer {
+  @ForyUnknownCase
+  case Unknown(value: UnknownCase)
+
+  @ForyCase(id = 0)
+  case Dog(value: _root_.addressbook.Dog)
+
+  @ForyCase(id = 1)
+  case Cat(value: _root_.addressbook.Cat)
+}
+```
+
+当 Schema case 名称与载荷类型具有相同简单名称时,带包的 Scala 输出会保留 Schema
+case 名称并限定载荷类型。如果目标输出模式无法为冲突表达合法限定名,编译器会在生成的
+case 名称后追加 `Case`。
+
+`optional T` 字段生成 `Option[T]`。顶层消息引用在字段或构造函数参数上使用 `@Ref`。
+嵌套元素/值引用使用 `List[Node @Ref]` 等类型使用位置注解。
+
+## Schema 模块
+
+生成的 Schema 模块注册 Schema 序列化器、枚举、struct 和联合。包拥有的辅助 Fory
+实例使用已安装 Schema 模块的 `ForyScala.builder().withXlang(true)`,因此消息
+`toBytes`/`fromBytes` 辅助方法无需调用方管理 Fory 设置即可工作:
+
+```scala
+object AddressbookForyModule extends org.apache.fory.ForyModule {
+  private lazy val fory: ThreadSafeFory =
+    ForyScala.builder()
+      .withXlang(true)
+      .withRefTracking(true)
+      .withModule(this)
+      .buildThreadSafeFory()
+
+  private[addressbook] def getFory: ThreadSafeFory = fory
+
+  override def install(fory: Fory): Unit = {
+    ScalaSerializers.registerEnum(fory, classOf[Person.PhoneType], 101L)
+    ForySerializer.register(fory, classOf[Person.PhoneNumber], 102L)
+    ForySerializer.register(fory, classOf[Person], 100L)
+    ForySerializer.register(fory, classOf[Animal], 106L)
+  }
+}
+```
+
+## gRPC 服务配套代码
+
+使用 `--grpc` 时,Scala 在生成模型的包中为每个本地服务生成一个 `<ServiceName>Grpc.scala` 对象。它公开 `SERVICE_NAME`、服务和方法描述符、`<ServiceName>ImplBase` 和 `<ServiceName>Client`。`RpcFuture`、`RpcIterator`、grpc-java 变体和生命周期指南请参阅 [Scala gRPC](../../grpc/scala.md)。
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/compiler/generated-code/swift.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/compiler/generated-code/swift.md
new file mode 100644
index 0000000000..2cefba1bf7
--- /dev/null
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/compiler/generated-code/swift.md
@@ -0,0 +1,102 @@
+---
+title: Swift
+sidebar_position: 9
+id: swift
+license: |
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+     http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+---
+
+## 输出布局
+
+Swift 输出为每个 Schema 生成一个 `.swift` 文件,例如:
+
+- `<swift_out>/addressbook/addressbook.swift`
+
+## 类型生成
+
+生成器使用拆分模型宏和稳定字段/case ID 创建 Swift 模型。类型化联合必须包含
+`@ForyUnknownCase case unknown(UnknownCase)` 和至少一个非 `unknown` case;
+`unknown(UnknownCase)` 只是 Fory 提供的向前兼容载体。该标记只选择载体,不会向 Schema
+case 表添加条目。
+
+当包/命名空间非空时,命名空间形状由 `swift_namespace_style` 控制:
+
+- `enum`(默认):嵌套枚举命名空间包装器。
+- `flatten`:顶层类型名称使用从包派生的前缀(例如 `Demo_Foo_User`)。
+
+当包/命名空间为空时,不应用枚举包装器或扁平化前缀。
+
+对于使用默认 `enum` 风格的非空包:
+
+```swift
+public enum Addressbook {
+    @ForyUnion
+    public enum Animal {
+        @ForyUnknownCase
+        case unknown(UnknownCase)
+        @ForyCase(id: 0)
+        case dog(Addressbook.Dog)
+        @ForyCase(id: 1)
+        case cat(Addressbook.Cat)
+    }
+
+    @ForyStruct
+    public struct Person: Equatable {
+        @ForyField(id: 1)
+        public var name: String = ""
+        @ForyField(id: 8)
+        public var pet: Addressbook.Animal =
+            Addressbook.Animal.dog(Addressbook.Dog())
+    }
+}
+```
+
+对于使用 `flatten` 风格的非空包:
+
+```swift
+@ForyStruct
+public struct Addressbook_Person: Equatable { ... }
+```
+
+两者都设置时,CLI flag `--swift_namespace_style` 会覆盖 Schema 选项 `swift_namespace_style`。
+
+联合生成为带关联载荷值的 tagged Swift 枚举。递归联合生成为 `indirect` 枚举。第一个已知
+联合 case 必须具有有限、可递归构造的默认值;编译器会拒绝第一个 case 的默认值环,而
+不是生成不会终止的初始化器。带 `ref`/`weak_ref` 字段的消息生成为 `final class` 模型,
+以保留引用语义。直接存储的消息环必须将至少一条环边标记为 `ref`;否则编译器会拒绝
+Schema,因为 Swift 值类型无法表示这种结构。list/map 字段中的固定或 tagged 整数编码
+生成为 Swift 字段类型提示,例如 `@ListField(element: .encoding(.fixed))` 或
+`@MapField(value: .encoding(.tagged))`。对于非空固定宽度整数 list 元素,Swift 将字段
+分类为对应的 Fory 基本类型 packed-array 类型;固定宽度整数 set 仍为 Fory set。
+
+## 模块安装
+
+每个 Schema 都包含一个具有传递导入安装能力的 `ForyModule` 所有者:
+
+```swift
+public enum ForyModule {
+    public static func install(_ fory: Fory) throws {
+        try ComplexPb.ForyModule.install(fory)
+        try fory.register(Addressbook.Person.self, id: 100)
+        try fory.register(Addressbook.Animal.self, id: 106)
+    }
+}
+```
+
+对于非空包和 `flatten` 风格,辅助类型也会添加前缀(例如 `Addressbook_ForyModule`)。
+
+对于没有显式 `[id=...]` 的 Schema,安装代码使用计算得到的数字 ID。如果设置了
+`option enable_auto_type_id = false;`,生成的代码使用基于名称的注册 API。
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/compiler/getting-started.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/compiler/getting-started.md
new file mode 100644
index 0000000000..5989bfa88f
--- /dev/null
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/compiler/getting-started.md
@@ -0,0 +1,46 @@
+---
+title: 快速开始
+sidebar_position: 1
+id: getting-started
+license: |
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+     http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+---
+
+本指南介绍 Fory IDL 编译器的安装、使用和集成。
+
+## 安装
+
+### 从源代码安装
+
+```bash
+cd compiler
+pip install -e .
+```
+
+### 验证安装
+
+```bash
+foryc --help
+```
+
+## 第一次生成
+
+```bash
+foryc example.fdl --lang java,python --output ./generated
+```
+
+继续阅读 [CLI 参考](cli.md)以了解前端和输出选项,或阅读
+[构建集成](build-integration.md)以从应用构建中运行代码生成。
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/compiler/index.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/compiler/index.md
new file mode 100644
index 0000000000..9cf8d2df64
--- /dev/null
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/compiler/index.md
@@ -0,0 +1,257 @@
+---
+title: 概述
+sidebar_position: 0
+id: index
+license: |
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+     http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+---
+
+Fory IDL 是 Apache Fory 的 Schema 定义语言,可实现类型安全的跨语言序列化。只需定义
+一次数据结构,即可为 Java、Python、C++、Go、Rust、JavaScript/TypeScript、C#、Swift、
+Dart、Scala 和 Kotlin 生成原生数据结构代码。Fory IDL 还可以描述 RPC 服务;对于 Java、
+Python、Go、Rust、C++、C#、Dart、Scala、Kotlin 和 JavaScript,编译器可以生成使用 Fory
+序列化请求和响应载荷的 gRPC 服务配套代码。
+
+## Schema 示例
+
+Fory IDL 提供简单直观的语法来定义跨语言数据结构:
+
+```protobuf
+package example;
+
+enum Status {
+    PENDING = 0;
+    ACTIVE = 1;
+    COMPLETED = 2;
+}
+
+message User {
+    string name = 1;
+    int32 age = 2;
+    optional string email = 3;
+    list<string> tags = 4;
+}
+
+message Item {
+    string sku = 1;
+    int32 quantity = 2;
+}
+
+message Order {
+    ref User customer = 1;
+    list<Item> items = 2;
+    Status status = 3;
+    map<string, int32> metadata = 4;
+}
+
+message Dog [id=104] {
+    string name = 1;
+    int32 bark_volume = 2;
+}
+
+message Cat [id=105] {
+    string name = 1;
+    int32 lives = 2;
+}
+
+union Animal [id=106] {
+    Dog dog = 1;
+    Cat cat = 2;
+}
+
+message LookupRequest [id=107] {
+    string name = 1;
+}
+
+message LookupResponse [id=108] {
+    Animal animal = 1;
+}
+
+service AnimalService {
+    rpc Lookup (LookupRequest) returns (LookupResponse);
+    rpc Classify (Animal) returns (Animal);
+}
+```
+
+使用以下命令生成 Java、Python、Go、Rust、C++、C#、Dart、Scala、Kotlin 和 JavaScript
+模型及 gRPC 服务配套代码:
+
+```bash
+foryc animals.fdl --java_out=./generated/java --python_out=./generated/python --go_out=./generated/go --rust_out=./generated/rust --cpp_out=./generated/cpp --csharp_out=./generated/csharp --dart_out=./generated/dart --scala_out=./generated/scala --kotlin_out=./generated/kotlin --javascript_out=./generated/javascript --grpc
+```
+
+生成的服务代码使用常规 gRPC API,但请求和响应对象通过 Fory 序列化。各语言的依赖项、
+服务端和客户端设置、流式模式、浏览器支持及互操作性边界请参阅
+[Fory gRPC](../grpc/index.md)。
+
+## 为什么选择 Fory IDL?
+
+### Schema 优先开发
+
+只需在 Fory IDL 中定义一次数据模型,即可为所有语言生成一致且类型安全的代码。这可以确保:
+
+- **类型安全**:在编译时而不是代码运行时发现类型错误
+- **一致性**:所有语言使用相同的字段名称、类型和结构
+- **文档**:Schema 可作为持续更新的文档
+- **演进**:统一管理所有实现中的 Schema 变更
+
+### Fory 原生功能
+
+与通用 IDL 不同,Fory IDL 专为 Fory 序列化设计:
+
+- **引用跟踪**:通过 `ref` 对共享引用和循环引用提供一等支持
+- **可空字段**:通过显式 `optional` 修饰符表示可空类型
+- **类型注册**:内置支持数字 ID 和基于名称的注册
+- **原生代码生成**:生成带 Fory 注解/宏且符合语言习惯的代码
+
+### 较低的集成开销
+
+生成的代码使用原生语言构造:
+
+- Java:带 `@ForyField` 注解的普通 POJO
+- Python:带类型提示的 dataclass
+- Go:带 struct tag 的 struct
+- Rust:带 `#[derive(ForyStruct)]` 的 struct
+- C++:带 `FORY_STRUCT` 宏的 struct
+- C#:`[ForyStruct]` 类、`[ForyEnum]` 枚举、`[ForyUnion]` 联合和注册辅助方法
+- JavaScript/TypeScript:带 Schema 模块辅助方法的接口
+- Swift:带字段/case 元数据和注册辅助方法的 Fory 模型宏
+- Dart:使用 `@ForyStruct` 的类,带有 `@ForyField` 注解和注册辅助方法
+- Scala:带宏派生序列化器的 Scala 3 `case class`、普通类、枚举和 ADT 枚举模型
+- Kotlin:带 KSP 生成序列化器的 Kotlin `data class`、枚举和密封类模型
+
+## 快速开始
+
+### 1. 安装编译器
+
+```bash
+pip install fory-compiler
+```
+
+或者从源代码安装:
+
+```bash
+cd compiler
+pip install -e .
+```
+
+### 2. 编写 Schema
+
+创建 `example.fdl`:
+
+```protobuf
+package example;
+
+message Person {
+    string name = 1;
+    int32 age = 2;
+    optional string email = 3;
+}
+```
+
+### 3. 生成代码
+
+```bash
+# Generate for all languages
+foryc example.fdl --output ./generated
+
+# Generate for specific languages
+foryc example.fdl --lang java,python,cpp,csharp,javascript,swift,dart,scala,kotlin --output ./generated
+```
+
+### 4. 使用生成的代码
+
+**Java:**
+
+```java
+Person person = new Person();
+person.setName("Alice");
+person.setAge(30);
+byte[] data = person.toBytes();
+```
+
+**Python:**
+
+```python
+import pyfory
+from example import Person
+
+person = Person(name="Alice", age=30)
+data = bytes(person) # or `person.to_bytes()`
+```
+
+**JavaScript/TypeScript:**
+
+```ts
+import { deserializePerson, serializePerson } from "./generated/example";
+
+const data = serializePerson({ name: "Alice", age: 30, email: null });
+const person = deserializePerson(data);
+```
+
+## 文档
+
+| 文档                                         | 说明                                     |
+| -------------------------------------------- | ---------------------------------------- |
+| [Fory IDL 语法](schema-idl.md)               | 完整的语言语法和文法                     |
+| [类型系统](schema-idl.md#type-system)        | 基本类型、集合和类型规则                 |
+| [RPC 服务](schema-idl.md#service-definition) | 服务和 RPC 方法语法                      |
+| [编译器 CLI](cli.md)                         | 编译器命令和选项                         |
+| [构建集成](build-integration.md)             | Maven、Gradle、build.rs、CMake、Bazel 等 |
+| [生成的代码](generated-code/index.md)        | 各目标语言的输出格式                     |
+| [Protocol Buffers IDL 支持](protobuf-idl.md) | Protobuf 映射规则和采用指南              |
+| [FlatBuffers IDL 支持](flatbuffers-idl.md)   | FlatBuffers 映射规则和代码生成差异       |
+
+## 核心概念
+
+### 字段修饰符
+
+- **`optional`**:字段可以为 null/None
+- **`ref`**:为共享引用/循环引用启用引用跟踪
+- **`list`**:字段是有序集合(别名:`repeated`)
+- **`array`**:字段是一维稠密 bool 或数值数据
+
+```protobuf
+message Example {
+    optional string nullable = 1;
+    ref Node parent = 2;
+    list<int32> numbers = 3;
+}
+```
+
+### 跨语言兼容性
+
+Fory IDL 类型映射到各语言的原生类型:
+
+| Fory IDL 类型 | Java      | Python         | C++           | Go       | Rust     | JavaScript/TypeScript | C#       | Swift    | Dart     | Scala     | Kotlin    |
+| ------------- | --------- | -------------- | ------------- | -------- | -------- | --------------------- | -------- | -------- | -------- | --------- | --------- |
+| `int32`       | `int`     | `pyfory.Int32` | `int32_t`     | `int32`  | `i32`    | `number`              | `int`    | `Int32`  | `int`    | `Int`     | `Int`     |
+| `string`      | `String`  | `str`          | `std::string` | `string` | `String` | `string`              | `string` | `String` | `String` | `String`  | `String`  |
+| `bool`        | `boolean` | `bool`         | `bool`        | `bool`   | `bool`   | `boolean`             | `bool`   | `Bool`   | `bool`   | `Boolean` | `Boolean` |
+
+完整映射请参阅[类型系统](schema-idl.md#type-system)。
+
+## 最佳实践
+
+1. **使用有意义的包名称**:将相关类型组织在一起
+2. **为性能分配类型 ID**:数字 ID 比基于名称的注册更快
+3. **预留 ID 范围**:为未来新增内容留出空档(例如用户使用 100-199,订单使用 200-299)
+4. **显式使用 `optional`**:在 Schema 中清楚表达可空性
+5. **对共享对象使用 `ref`**:对象共享时启用引用跟踪
+
+## 示例
+
+完整的可运行示例请参阅 [examples](https://github.com/apache/fory/tree/main/compiler/examples) 目录。
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/compiler/protobuf-idl.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/compiler/protobuf-idl.md
new file mode 100644
index 0000000000..743800e47c
--- /dev/null
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/compiler/protobuf-idl.md
@@ -0,0 +1,348 @@
+---
+title: Protobuf IDL 支持
+sidebar_position: 5
+id: protobuf-idl
+license: |
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+     http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+---
+
+本页介绍 Apache Fory 如何处理 Protocol Buffers(`.proto`)Schema、protobuf 概念如何
+映射到 Fory,以及如何使用 protobuf 专属的 Fory 扩展选项。
+
+## 本页内容
+
+- 根据使用场景选择 protobuf 或 Fory
+- 采用过程中需要关注的语法和语义差异
+- protobuf 文件中支持的 Fory 扩展选项
+- 从 protobuf 迁移到 Fory 的实用模式
+
+## 快速决策指南
+
+| 场景                                       | 推荐格式         |
+| ------------------------------------------ | ---------------- |
+| 正在构建 gRPC API 并依赖 protobuf 工具     | Protocol Buffers |
+| 需要最佳对象图性能和引用跟踪               | Fory             |
+| 序列化数据中需要循环引用/共享引用          | Fory             |
+| 编码兼容性需要强大的未知字段行为           | Protocol Buffers |
+| 需要原生 struct/类,而不是 protobuf 包装器 | Fory             |
+
+## Protobuf 与 Fory 对比概览
+
+| 方面      | Protocol Buffers      | Fory                                                             |
+| --------- | --------------------- | ---------------------------------------------------------------- |
+| 主要用途  | RPC/消息契约          | 高性能对象序列化                                                 |
+| 编码模型  | 标签-长度-值          | Fory 二进制协议                                                  |
+| 引用跟踪  | 未内置                | 一等功能(`ref`)                                                |
+| 循环引用  | 不支持                | 支持                                                             |
+| 未知字段  | 保留                  | 不保留                                                           |
+| 生成类型  | Protobuf 特有模型类型 | 原生语言构造                                                     |
+| gRPC 生态 | 原生                  | Java/Python/Go/Rust/C#/Dart/Scala/Kotlin/JavaScript 服务代码生成 |
+
+Fory 可以使用 `--grpc` 生成 Java、Python、Go、Rust、C#、Dart、Scala、Kotlin 和 JavaScript
+gRPC 服务配套代码。JavaScript 浏览器客户端使用 `--grpc-web` 生成。这些服务使用常规 gRPC
+传输,但通过 Fory 而不是 protobuf 序列化请求和响应载荷。对于广泛的 gRPC 生态工具、
+Schema 反射和 protobuf 原生 interceptor,protobuf 仍是成熟的默认选择。
+
+## 为什么使用 Apache Fory
+
+- 符合语言习惯的生成代码:Fory IDL 生成可直接用作领域对象的语言原生类和 struct。
+- 更快的序列化:在 Fory 基准测试中,对于对象序列化工作负载,Fory 可比 protobuf 快约 10 倍。
+- 更好的对象图建模:共享引用和循环引用是一等功能,无需应用级 ID 链接变通方案。
+
+基准测试详情请参阅[性能参考](#performance-references)。
+
+## 语法和语义映射
+
+### 包和文件选项
+
+**Protocol Buffers**
+
+```protobuf
+syntax = "proto3";
+package example.models;
+option java_package = "com.example.models";
+option go_package = "example.com/models";
+```
+
+**Fory**
+
+```protobuf
+package example.models;
+```
+
+Fory 使用一个包命名空间进行跨语言注册。代码生成仍可配置语言特有的包位置。
+
+### 消息和枚举定义
+
+**Protocol Buffers**
+
+```protobuf
+message User {
+  string id = 1;
+  string name = 2;
+  optional string email = 3;
+  int32 age = 4;
+  repeated string tags = 5;
+  map<string, string> metadata = 6;
+}
+
+enum Status {
+  STATUS_UNSPECIFIED = 0;
+  STATUS_ACTIVE = 1;
+}
+```
+
+**Fory**
+
+```protobuf
+message User [id=101] {
+    string id = 1;
+    string name = 2;
+    optional string email = 3;
+    int32 age = 4;
+    list<string> tags = 5;
+    map<string, string> metadata = 6;
+}
+
+enum Status [id=102] {
+    UNKNOWN = 0;
+    ACTIVE = 1;
+}
+```
+
+主要差异:
+
+- Fory 可以直接分配稳定的类型 ID(`[id=...]`)。
+- Fory 使用 `list<T>`(`repeated T` 作为别名)。
+- 枚举命名约定由语言决定,而不是 protobuf 前缀风格。
+
+### `oneof` 到 `union`
+
+Protobuf `oneof` 会转换为嵌套 Fory `union`,再加上引用该联合的可选字段。
+
+**Protocol Buffers**
+
+```protobuf
+message Event {
+  oneof payload {
+    string text = 1;
+    int32 number = 2;
+  }
+}
+```
+
+**转换后的 Fory 风格形式**
+
+```protobuf
+message Event {
+    union payload {
+        string text = 1;
+        int32 number = 2;
+    }
+    optional payload payload = 1;
+}
+```
+
+说明:
+
+- 联合 case ID 从原始 `oneof` 字段编号派生。
+- 合成的联合字段使用最小的 `oneof` case 编号。
+
+### 导入和常用类型
+
+支持 Protobuf import。常见 well-known 类型直接映射:
+
+- `google.protobuf.Timestamp` -> `timestamp`
+- `google.protobuf.Duration` -> `duration`
+- `google.protobuf.Any` -> `any`
+
+## 类型映射要点
+
+| Protobuf 类型                            | Fory 映射                  |
+| ---------------------------------------- | -------------------------- |
+| `bool`                                   | `bool`                     |
+| `int32`, `uint32`                        | 变长 32 位整数类型         |
+| `sint32`                                 | zigzag 32 位整数           |
+| `int64`, `uint64`                        | 变长 64 位整数类型         |
+| `sint64`                                 | zigzag 64 位整数           |
+| `fixed32`, `fixed64`                     | 固定宽度无符号整数类型     |
+| `sfixed32`, `sfixed64`                   | 固定宽度有符号整数类型     |
+| `float`, `double`                        | `float32`, `float64`       |
+| `string`, `bytes`                        | `string`, `bytes`          |
+| `repeated T`                             | `list<T>`                  |
+| `map<K, V>`                              | `map<K, V>`                |
+| `optional T`                             | `optional T`               |
+| `oneof`                                  | `union` + 可选联合引用字段 |
+| `int64 [(fory).type = "tagged int64"]`   | `tagged int64` 编码        |
+| `uint64 [(fory).type = "tagged uint64"]` | `tagged uint64` 编码       |
+
+## Fory 扩展选项(Protobuf) {#fory-extension-options-protobuf}
+
+`.proto` 中的 Fory 特有选项使用 `(fory).` 前缀。
+
+```protobuf
+option (fory).enable_auto_type_id = true;
+
+message TreeNode {
+  TreeNode parent = 1 [(fory).weak_ref = true];
+  repeated TreeNode children = 2 [(fory).ref = true];
+}
+```
+
+### 文件级选项
+
+| 选项                                 | 类型   | 说明                                                             |
+| ------------------------------------ | ------ | ---------------------------------------------------------------- |
+| `(fory).use_record_for_java_message` | bool   | 为此文件中的所有消息生成 Java record                             |
+| `(fory).polymorphism`                | bool   | 默认启用多态序列化元数据                                         |
+| `(fory).enable_auto_type_id`         | bool   | 省略时自动生成类型 ID(编译器默认为 true)                       |
+| `(fory).evolving`                    | bool   | 消息的默认 Schema 演进行为                                       |
+| `(fory).go_nested_type_style`        | string | Go 嵌套命名风格:`underscore`(默认)或 `camelcase`              |
+| `(fory).swift_namespace_style`       | string | Swift 命名空间风格:`enum`(默认)或 `flatten`;仅在包非空时适用 |
+
+### 消息和枚举选项
+
+| 选项                         | 适用于        | 类型   | 说明                        |
+| ---------------------------- | ------------- | ------ | --------------------------- |
+| `(fory).id`                  | message, enum | int    | 用于注册的显式类型 ID       |
+| `(fory).alias`               | message, enum | string | 用于自动 ID hash 的替代名称 |
+| `(fory).evolving`            | message       | bool   | 覆盖文件级演进设置          |
+| `(fory).use_record_for_java` | message       | bool   | 为此消息生成 Java record    |
+| `(fory).deprecated`          | message, enum | bool   | 将类型标记为已弃用          |
+| `(fory).namespace`           | message       | string | 覆盖基于包的默认命名空间    |
+
+### 字段级选项 {#field-level-options}
+
+| 选项                         | 类型   | 说明                                                                                 |
+| ---------------------------- | ------ | ------------------------------------------------------------------------------------ |
+| `(fory).ref`                 | bool   | 为此字段启用引用跟踪                                                                 |
+| `(fory).nullable`            | bool   | 将字段视为可空(`optional`)                                                         |
+| `(fory).weak_ref`            | bool   | 生成弱指针语义(C++/Rust 代码生成)                                                  |
+| `(fory).thread_safe_pointer` | bool   | Rust ref 载体选择;默认 `true` 使用 `Arc`/`ArcWeak`,显式 `false` 使用 `Rc`/`RcWeak` |
+| `(fory).deprecated`          | bool   | 将字段标记为已弃用                                                                   |
+| `(fory).type`                | string | 用于 tagged 64 位整数编码的基本类型覆盖                                              |
+
+引用选项行为:
+
+- `weak_ref = true` 隐含引用跟踪。
+- 对于 `repeated` 字段,`(fory).ref = true` 应用于 list 元素。
+- 对于 `map<K, V>` 字段,`(fory).ref = true` 应用于 map 值。
+- `weak_ref` 和 `thread_safe_pointer` 是 C++/Rust 代码生成提示。
+- `thread_safe_pointer` 默认为 `true`;它只改变生成的 Rust 指针载体,不会改变编码格式。
+- 在 Rust 代码生成中,`(fory).weak_ref = true` 默认使用 `ArcWeak`,只会切换为
+  `RcWeak`;切换条件是设置 `(fory).thread_safe_pointer = false`。
+
+### 按形状展示选项示例
+
+```protobuf
+message Graph {
+  Node root = 1 [(fory).ref = true];
+  repeated Node nodes = 2 [(fory).ref = true];
+  map<string, Node> cache = 3 [(fory).ref = true];
+  Node parent = 4 [(fory).weak_ref = true];
+  Node local = 5 [(fory).ref = true, (fory).thread_safe_pointer = false];
+}
+```
+
+## 引用跟踪与 Protobuf ID 对比
+
+Protobuf 本身不保留共享/循环对象图。使用 Fory protobuf 扩展可以选择启用对象图语义。
+
+**不使用 Fory ref 选项(protobuf 风格 ID):**
+
+```protobuf
+message TreeNode {
+  string id = 1;
+  string parent_id = 2;
+  repeated string child_ids = 3;
+}
+```
+
+**使用 Fory ref 选项(对象图):**
+
+```protobuf
+message TreeNode {
+  TreeNode parent = 1 [(fory).weak_ref = true];
+  repeated TreeNode children = 2 [(fory).ref = true];
+}
+```
+
+## 将 Protobuf Schema 迁移到 Fory
+
+### 第 1 步:转换 Schema 语法
+
+- 保持包名称稳定。
+- 将 `repeated T` 替换为 `list<T>`(或保留 `repeated` 别名)。
+- 在需要稳定数字注册的位置添加显式 `[id=...]`。
+
+### 第 2 步:转换 `oneof` 和特殊类型
+
+- `oneof` -> `union` + 可选联合字段。
+- 将 protobuf well-known 类型映射到 Fory 基本类型(`timestamp`、`duration`、`any`)。
+
+### 第 3 步:使用 `ref` 替换 Protobuf 变通方案
+
+对于 protobuf 使用手动 ID 链接表示对象图的位置,改用 Fory `ref` 修饰符(并在需要时
+使用可选的 `ref(weak=true)`)。
+
+### 第 4 步:更新构建/代码生成
+
+使用目标语言的 Fory 编译器调用替换 protobuf 生成步骤。
+
+对于支持的服务输出,添加 `--grpc` 以生成 gRPC 配套代码:
+
+```bash
+foryc api.proto --java_out=./generated/java --python_out=./generated/python --go_out=./generated/go --rust_out=./generated/rust --csharp_out=./generated/csharp --dart_out=./generated/dart --scala_out=./generated/scala --kotlin_out=./generated/kotlin --javascript_out=./generated/javascript --grpc
+```
+
+生成的 Java 服务文件依赖 grpc-java 编译;生成的 Python 服务模块默认使用 `grpc.aio`;
+生成的 Rust 服务文件导入 `tonic` 和 `bytes`;生成的 Go 服务文件导入 grpc-go;生成的
+JavaScript Node.js 服务文件导入 `@grpc/grpc-js`;生成的 C# 服务文件导入
+`Grpc.Core.Api` 类型;生成的 Dart 服务文件导入 `package:grpc`;生成的 Scala 服务文件
+依赖 grpc-java 编译;生成的 Kotlin 服务文件依赖 grpc-java 和 grpc-kotlin 编译。请在应用
+构建中添加这些依赖项;Fory 软件包不会将 gRPC 添加为硬依赖项。请使用
+`--grpc-python-mode=sync` 生成同步 Python `grpcio` 配套代码。对 JavaScript 输出使用 `--grpc-web` 可生成导入
+`grpc-web` 的浏览器客户端。Protobuf `oneof` 字段会转换为请求和响应消息中的 Fory 联合
+字段。直接使用联合作为 RPC 请求或响应类型不属于常规 protobuf RPC 语法。
+
+### 第 5 步:运行兼容性检查
+
+对于分阶段迁移,请并行保留两种格式,并通过集成测试验证载荷级一致性。
+
+## 共存策略
+
+在分阶段迁移期间,可以并行运行 protobuf 和 Fory:
+
+```java
+public byte[] serialize(Object obj, Format format) {
+    if (format == Format.PROTOBUF) {
+        return ((MessageLite) obj).toByteArray();
+    }
+    return fory.serialize(obj);
+}
+```
+
+在服务边界使用转换器,同时优先迁移大量使用对象图的内部路径。
+
+## 性能参考 {#performance-references}
+
+- 基准测试:https://fory.apache.org/docs/benchmarks/
+- 基准测试代码:https://github.com/apache/fory/tree/main/benchmarks
+
+## 总结
+
+主要关注 API 契约和 gRPC 生态集成时,请使用 protobuf。主要关注对象图性能、原生模型和
+引用语义时,请使用 Fory。
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/compiler/schema-idl.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/compiler/schema-idl.md
new file mode 100644
index 0000000000..9c7a41357c
--- /dev/null
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/compiler/schema-idl.md
@@ -0,0 +1,1714 @@
+---
+title: Schema IDL 语法
+sidebar_position: 3
+id: schema-idl
+license: |
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+     http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+---
+
+本文档提供 Fory IDL 的语法和语义参考。
+
+有关编译器的使用和构建集成,请参阅
+[编译指南](cli.md)。用于 protobuf/FlatBuffers 前端映射
+规则,请参见[协议缓冲区 IDL 支持](protobuf-idl.md) 和
+[FlatBuffers IDL 支持](flatbuffers-idl.md)。
+
+## 文件结构
+
+Fory IDL 文件通常包含:
+
+1. 可选的 package 声明
+2. 可选的文件级选项
+3. 可选的 import 语句
+4. 类型定义(枚举、消息和联合类型)
+5. 可选的服务定义
+
+```protobuf
+// Optional package declaration
+package com.example.models;
+
+// Optional file-level options
+option java_package = "com.example.models";
+
+// Import statements
+import "common/types.fdl";
+
+// Type definitions
+enum Color [id=100] { ... }
+message User [id=101] { ... }
+message OrderRequest [id=102] { ... }
+message Order [id=103] { ... }
+union Event [id=104] { ... }
+
+// Service definitions
+service OrderService {
+    rpc GetOrder (OrderRequest) returns (Order);
+}
+```
+
+## 注释
+
+Fory IDL 支持单行注释和块注释:
+
+```protobuf
+// This is a single-line comment
+
+/*
+ * This is a block comment
+ * that spans multiple lines
+ */
+
+message Example {
+    string name = 1;  // Inline comment
+}
+```
+
+## Package 声明
+
+包声明定义文件中所有类型的命名空间。
+
+```protobuf
+package com.example.models;
+```
+
+您可以选择指定用于自动生成的类型 ID 的包别名:
+
+```protobuf
+package com.example.models alias models_v1;
+```
+
+**规则:**
+
+- 可选但推荐
+- 必须出现在任何类型定义之前
+- 每个文件只有一个包声明
+- 用于基于名称的类型注册
+- 包别名用于自动 ID 哈希
+
+**语言映射:**
+
+| 语言                  | 包的用途               |
+| --------------------- | ---------------------- |
+| Java                  | Java 包                |
+| Python                | 模块名称(点到下划线) |
+| Go                    | 包名称(最后一个组件) |
+| Rust                  | 模块名称(点到下划线) |
+| C++                   | 命名空间(点到 `::`)  |
+| C#                    | 命名空间               |
+| JavaScript/TypeScript | TypeScript 模块名称    |
+| Swift                 | 命名空间包装器或前缀   |
+| Dart                  | 库名称(包段)         |
+| Scala                 | Scala包                |
+| Kotlin                | Kotlin包               |
+
+## 文件级选项
+
+可以在文件级别指定选项来控制特定于语言的代码生成。
+
+### 语法
+
+```protobuf
+option option_name = value;
+```
+
+### Java Package 选项
+
+覆盖生成代码的 Java 包:
+
+```protobuf
+package payment;
+option java_package = "com.mycorp.payment.v1";
+
+message Payment {
+    string id = 1;
+}
+```
+
+**影响:**
+
+- 生成的Java文件将位于`com/mycorp/payment/v1/`目录中
+- Java 包声明将为 `package com.mycorp.payment.v1;`
+- 类型注册仍然使用Fory IDL包(`payment`)以实现跨语言兼容性
+
+### Go Package 选项
+
+指定Go导入路径和包名:
+
+```protobuf
+package payment;
+option go_package = "github.com/mycorp/apis/gen/payment/v1;paymentv1";
+
+message Payment {
+    string id = 1;
+}
+```
+
+**格式:** `"import/path;package_name"` 或 `"import/path"` (最后一段用作包名称)
+
+**影响:**
+
+- 生成的 Go文件将有`package paymentv1`
+- 导入路径可以在其他Go代码中使用
+- 类型注册仍然使用Fory IDL包(`payment`)以实现跨语言兼容性
+
+### C# 命名空间选项
+
+覆盖生成代码的 C# 命名空间:
+
+```protobuf
+package payment;
+option csharp_namespace = "MyCorp.Payment.V1";
+
+message Payment {
+    string id = 1;
+}
+```
+
+**影响:**
+
+- 生成的 C# 文件使用 `namespace MyCorp.Payment.V1;`
+- 输出路径遵循命名空间段(`MyCorp/Payment/V1/` 位于 `--csharp_out` 下)
+- 类型注册仍然使用Fory IDL包(`payment`)以实现跨语言兼容性
+
+### Kotlin Package 选项
+
+覆盖生成源的 Kotlin 包:
+
+```protobuf
+package payment;
+option kotlin_package = "com.mycorp.payment.v1";
+
+message Payment {
+    string id = 1;
+}
+```
+
+**影响:**
+
+- 生成的 Kotlin 文件写入 `com/mycorp/payment/v1/`
+- Kotlin 源使用 `package com.mycorp.payment.v1`
+- 为保持跨语言兼容性,类型注册仍使用 Fory IDL package(`payment`)
+
+如果未设置 `kotlin_package`,Kotlin 将使用 FDL package。Kotlin 导入图不能混用默认 package Schema 与具名 Kotlin package。
+
+### Go 嵌套类型样式选项
+
+控制嵌套消息/枚举/联合类型的 Go 命名:
+
+```protobuf
+package payment;
+option go_nested_type_style = "camelcase";
+
+message Envelope {
+    message Payload {
+        string id = 1;
+    }
+}
+```
+
+**可选值:**
+
+- `underscore`(默认):`Envelope_Payload`
+- `camelcase`:`EnvelopePayload`
+
+如果两者都设置,CLI 标志 `--go_nested_type_style` 会覆盖 Schema 选项。
+
+### Swift 命名空间样式选项
+
+控制包命名空间如何反映在 Swift 生成的类型名称中:
+
+```protobuf
+package payment.v1;
+option swift_namespace_style = "flatten";
+
+message Payment {
+    string id = 1;
+}
+```
+
+**可选值:**
+
+- `enum`(默认):命名空间包装器(例如 `Payment.V1.Payment`)
+- `flatten`:为顶层类型添加 package 前缀(例如 `Payment_V1_Payment`)
+
+**重要:**命名空间包装器/前缀仅在包非空时应用。如果包为空,Swift 会直接为两种样式发出顶级类型。
+
+如果两者都设置,CLI 标志 `--swift_namespace_style` 会覆盖 Schema 选项。
+
+### Rust Chrono 时间类型选项
+
+Rust 生成的代码默认使用 Fory 的轻量级时间载体类型:
+`fory::Date`、`fory::Timestamp` 和 `fory::Duration`。如果生成的 Rust API
+需要公开 chrono 时间类型,请设置 `rust_use_chrono_temporal_types`:
+
+```protobuf
+package payment;
+option rust_use_chrono_temporal_types = true;
+
+message Event {
+    date business_day = 1;
+    timestamp created_at = 2;
+    duration timeout = 3;
+}
+```
+
+启用此选项后,Rust 代码会将 `date` 映射为 `chrono::NaiveDate`,将 `timestamp`
+映射为 `chrono::NaiveDateTime`,并将 `duration` 映射为 `chrono::Duration`。
+编译生成代码的 Rust crate 必须依赖 `chrono`,并启用 Fory 的 `chrono` feature。
+
+### Java 外层类名选项
+
+生成所有类型作为单个外部包装类的内部类:
+
+```protobuf
+package payment;
+option java_outer_classname = "DescriptorProtos";
+
+enum Status {
+    UNKNOWN = 0;
+    ACTIVE = 1;
+}
+
+message Payment {
+    string id = 1;
+    Status status = 2;
+}
+```
+
+**影响:**
+
+- 生成单个文件 `DescriptorProtos.java` 而不是单独的文件
+- 所有枚举和消息成为 `public static` 内部类
+- 外部类是带有私有构造函数的 `public final`
+- 用于将相关类型分组在一起
+
+**生成的结构:**
+
+```java
+public final class DescriptorProtos {
+    private DescriptorProtos() {}
+
+    public static enum Status {
+        UNKNOWN,
+        ACTIVE;
+    }
+
+    public static class Payment {
+        private String id;
+        private Status status;
+        // ...
+    }
+}
+```
+
+**与java_package结合使用:**
+
+```protobuf
+package payment;
+option java_package = "com.example.proto";
+option java_outer_classname = "PaymentProtos";
+
+message Payment {
+    string id = 1;
+}
+```
+
+这会生成 `com/example/proto/PaymentProtos.java`,所有类型都作为内部类。
+
+### Java 多文件选项
+
+控制类型是在单独的文件中生成还是作为内部类生成:
+
+```protobuf
+package payment;
+option java_outer_classname = "PaymentProtos";
+option java_multiple_files = true;
+
+message Payment {
+    string id = 1;
+}
+
+message Receipt {
+    string id = 1;
+}
+```
+
+**行为:**
+
+| `java_outer_classname` | `java_multiple_files` | 结果                         |
+| ---------------------- | --------------------- | ---------------------------- |
+| 未设置                 | 任何                  | 单独的文件(每种类型一个)   |
+| 放                     | `false`(默认)       | 所有类型作为内部类的单个文件 |
+| 放                     | `true`                | 单独的文件(覆盖外部类)     |
+
+**`java_multiple_files = true`的效果:**
+
+- 每个顶级枚举和消息都有自己的 `.java` 文件
+- 覆盖 `java_outer_classname` 行为
+- 当您想要单独的文件但仍为其他目的指定外部类名称时很有用
+
+**没有 java_multiple_files 的示例(默认):**
+
+```protobuf
+option java_outer_classname = "PaymentProtos";
+// Generates: PaymentProtos.java containing Payment and Receipt as inner classes
+```
+
+**java_multiple_files = true 的示例:**
+
+```protobuf
+option java_outer_classname = "PaymentProtos";
+option java_multiple_files = true;
+// Generates: Payment.java, Receipt.java (separate files)
+```
+
+### 多个选项
+
+可以指定多个选项:
+
+```protobuf
+package payment;
+option java_package = "com.mycorp.payment.v1";
+option go_package = "github.com/mycorp/apis/gen/payment/v1;paymentv1";
+option deprecated = true;
+
+message Payment {
+    string id = 1;
+}
+```
+
+### Protobuf 扩展语法
+
+在 `.fdl` 文件中,仅使用 Fory IDL 原生语法(例如,`[id=100]`、`ref`、
+`optional`、`nullable=true`)。
+
+`(fory).` Protobuf 扩展语法仅适用于 `.proto` 文件和 protobuf 前端。
+
+有关 protobuf 扩展选项,请参阅
+[协议缓冲区 IDL 支持](protobuf-idl.md#fory-extension-options-protobuf)。
+
+### 选项优先级
+
+对于特定于语言的包/命名空间:
+
+1. 特定语言的选项(`java_package`、`go_package`、`csharp_namespace`、
+   `kotlin_package`)
+2. Fory IDL package 声明(回退选项)
+
+**例子:**
+
+```protobuf
+package myapp.models;
+option java_package = "com.example.generated";
+```
+
+| 场景                  | 使用的 Java 包          |
+| --------------------- | ----------------------- |
+| 存在 `java_package`   | `com.example.generated` |
+| 不存在 `java_package` | `myapp.models`(回退)  |
+
+### 跨语言类型注册
+
+特定于语言的选项仅影响代码的生成位置,而不影响用于序列化的类型命名空间。这确保了跨语言兼容性:
+
+```protobuf
+package myapp.models;
+option java_package = "com.mycorp.generated";
+option go_package = "github.com/mycorp/gen;genmodels";
+
+message User {
+    string name = 1;
+}
+```
+
+所有语言都将注册 `User`,并使用命名空间 `myapp.models`,从而实现:
+
+- Java序列化数据→Go反序列化
+- Go序列化数据→Java反序列化
+- 任何语言组合均可无缝运行
+
+## Import 语句
+
+Import 语句允许您使用其他 Fory IDL 文件中定义的类型。
+
+### 基本语法
+
+```protobuf
+import "path/to/file.fdl";
+```
+
+### 多个 Import
+
+```protobuf
+import "common/types.fdl";
+import "common/enums.fdl";
+import "models/address.fdl";
+```
+
+### 路径解析
+
+导入路径是相对于导入文件解析的:
+
+```
+project/
+├── common/
+│   └── types.fdl
+├── models/
+│   ├── user.fdl      # import "../common/types.fdl"
+│   └── order.fdl     # import "../common/types.fdl"
+└── main.fdl          # import "common/types.fdl"
+```
+
+**规则:**
+
+- 导入路径是带引号的字符串(双引号或单引号)
+- 路径相对于导入文件的目录进行解析
+- 导入的类型变得可用,就像在当前文件中定义的一样
+- 循环导入被检测并报告为错误
+- 传递导入有效(如果 A 导入 B 并且 B 导入 C,则 A 可以访问 C 的类型)
+
+### 完整示例
+
+**常见/类型.fdl:**
+
+```protobuf
+package common;
+
+enum Status [id=100] {
+    PENDING = 0;
+    ACTIVE = 1;
+    COMPLETED = 2;
+}
+
+message Address [id=101] {
+    string street = 1;
+    string city = 2;
+    string country = 3;
+}
+```
+
+**模型/user.fdl:**
+
+```protobuf
+package models;
+import "../common/types.fdl";
+
+message User [id=200] {
+    string id = 1;
+    string name = 2;
+    Address home_address = 3;  // Uses imported type
+    Status status = 4;          // Uses imported enum
+}
+```
+
+### 不支持的导入语法
+
+**不支持**以下 protobuf 导入修饰符:
+
+```protobuf
+// NOT SUPPORTED - will produce an error
+import public "other.fdl";
+import weak "other.fdl";
+```
+
+**`import public`**:Fory IDL 使用更简单的导入模型。所有导入的类型仅适用于导入文件。不支持重新导出。在需要的地方直接导入每个文件。
+
+**`import weak`**:Fory IDL 要求所有导入在编译时都存在。不支持可选依赖项。
+
+### 导入错误
+
+编译器报告错误:
+
+- **文件未找到**:导入的文件不存在
+- **循环导入**:A 导入 B,B 又导入 A(直接或间接)
+- **解析错误**:导入文件中的语法错误
+- **不支持的语法**:`import public` 或 `import weak`
+
+## 枚举定义
+
+枚举定义一组命名整数常量。
+
+### 基本语法
+
+```protobuf
+enum Status {
+    PENDING = 0;
+    ACTIVE = 1;
+    COMPLETED = 2;
+}
+```
+
+### 使用显式类型 ID
+
+```protobuf
+enum Status [id=100] {
+    PENDING = 0;
+    ACTIVE = 1;
+    COMPLETED = 2;
+}
+```
+
+### 保留值
+
+保留字段编号或名称以防止重复使用:
+
+```protobuf
+enum Status {
+    reserved 2, 15, 9 to 11, 40 to max;  // Reserved numbers
+    reserved "OLD_STATUS", "DEPRECATED"; // Reserved names
+    PENDING = 0;
+    ACTIVE = 1;
+    COMPLETED = 3;
+}
+```
+
+### 枚举类型选项
+
+枚举级选项在枚举名称之后的 `[]` 中内联声明:
+
+```protobuf
+enum Status [deprecated=true] {
+    PENDING = 0;
+    ACTIVE = 1;
+}
+```
+
+FDL 不支持枚举体内的 `option ...;` 语句。
+
+**不支持:**
+
+- **不支持** `allow_alias`。每个枚举值必须有一个唯一的整数。
+
+### 语言映射
+
+| 语言                  | 执行                                   |
+| --------------------- | -------------------------------------- |
+| Java                  | `enum Status { UNKNOWN, ACTIVE, ... }` |
+| Python                | `class Status(IntEnum): UNKNOWN = 0`   |
+| Go                    | `type Status int32` 带常数             |
+| Rust                  | `#[repr(i32)] enum Status { Unknown }` |
+| C++                   | `enum class Status : int32_t { ... }`  |
+| C#                    | `enum Status { Unknown, Active, ... }` |
+| JavaScript/TypeScript | `export enum Status { UNKNOWN, ... }`  |
+| Swift                 | `enum Status` 具有稳定的 ID            |
+| Dart                  | `enum Status { unknown, active, ... }` |
+| Scala                 | Scala 3 `enum Status`                  |
+| Kotlin                | `enum class Status`                    |
+
+### 枚举前缀剥离
+
+当枚举值使用 protobuf 样式前缀(UPPER_SNAKE_CASE 中的枚举名称)时,编译器会自动删除具有范围枚举的语言的前缀:
+
+```protobuf
+// Input with prefix
+enum DeviceTier {
+    DEVICE_TIER_UNKNOWN = 0;
+    DEVICE_TIER_TIER1 = 1;
+    DEVICE_TIER_TIER2 = 2;
+}
+```
+
+**生成的代码:**
+
+| 语言                  | 输出                                      | 风格         |
+| --------------------- | ----------------------------------------- | ------------ |
+| Java                  | `UNKNOWN, TIER1, TIER2`                   | 作用域枚举   |
+| Rust                  | `Unknown, Tier1, Tier2`                   | 作用域枚举   |
+| C++                   | `UNKNOWN, TIER1, TIER2`                   | 作用域枚举   |
+| Python                | `UNKNOWN, TIER1, TIER2`                   | 范围内枚举   |
+| Go                    | `DeviceTierUnknown, DeviceTierTier1, ...` | 无作用域常量 |
+| JavaScript/TypeScript | `UNKNOWN, TIER1, TIER2`                   | 作用域枚举   |
+| C#                    | `Unknown, Tier1, Tier2`                   | 作用域枚举   |
+| Swift                 | `unknown, tier1, tier2`                   | 作用域枚举   |
+| Dart                  | `unknown, tier1, tier2`                   | 作用域枚举   |
+| Scala                 | `Unknown, Tier1, Tier2`                   | 作用域枚举   |
+| Kotlin                | `UNKNOWN, TIER1, TIER2`                   | 作用域枚举   |
+
+**注意:** 仅当其余部分是有效标识符时才会删除前缀。例如,`DEVICE_TIER_1` 保持不变,因为 `1` 不是有效的标识符名称。
+
+**语法:**
+
+```
+enum_def     := 'enum' IDENTIFIER [type_options] '{' enum_body '}'
+type_options := '[' type_option (',' type_option)* ']'
+type_option  := IDENTIFIER '=' option_value
+enum_body    := (reserved_stmt | enum_value)*
+reserved_stmt := 'reserved' reserved_items ';'
+enum_value   := IDENTIFIER '=' INTEGER ';'
+```
+
+**规则:**
+
+- 枚举名称在文件中必须是唯一的
+- 枚举值必须具有显式整数赋值
+- 值整数在枚举中必须是唯一的(无别名)
+- 类型 ID (`[id=100]`) 对于枚举来说是可选的,但建议跨语言使用
+
+**具有所有功能的示例:**
+
+```protobuf
+// HTTP status code categories
+enum HttpCategory [id=200] {
+    reserved 10 to 20;           // Reserved for future use
+    reserved "UNKNOWN";          // Reserved name
+    INFORMATIONAL = 1;
+    SUCCESS = 2;
+    REDIRECTION = 3;
+    CLIENT_ERROR = 4;
+    SERVER_ERROR = 5;
+}
+```
+
+## 消息定义
+
+消息使用类型化字段定义结构化数据类型。
+
+### 基本语法
+
+```protobuf
+message Person {
+    string name = 1;
+    int32 age = 2;
+}
+```
+
+### 使用显式类型 ID
+
+```protobuf
+message Person [id=101] {
+    string name = 1;
+    int32 age = 2;
+}
+```
+
+### 不使用显式类型 ID
+
+```protobuf
+message Person {  // Auto-generated when enable_auto_type_id = true
+    string name = 1;
+    int32 age = 2;
+}
+```
+
+### 语言映射
+
+| 语言                  | 执行                           |
+| --------------------- | ------------------------------ |
+| Java                  | 带有 getter/setter 的 POJO 类  |
+| Python                | `@dataclass`级                 |
+| Go                    | 具有导出字段的结构             |
+| Rust                  | 结构为 `#[derive(ForyStruct)]` |
+| C++                   | 具有 `FORY_STRUCT` 宏的结构    |
+| C#                    | `[ForyStruct]`级               |
+| JavaScript/TypeScript | `export interface`声明         |
+| Swift                 | `@ForyStruct` 结构或类         |
+| Dart                  | `@ForyStruct` `final class`    |
+| Scala                 | Scala 3 `case class` 或类      |
+| Kotlin                | `data class`或类               |
+
+类型 ID 控制消息、联合和枚举的跨语言注册。看
+[类型 ID](#type-ids) 用于自动生成、别名和冲突处理。
+
+### 保留字段
+
+保留字段编号或名称以防止删除字段后重复使用:
+
+```protobuf
+message User {
+    reserved 2, 15, 9 to 11;       // Reserved field numbers
+    reserved "old_field", "temp";  // Reserved field names
+    string id = 1;
+    string name = 3;
+}
+```
+
+### 消息类型选项
+
+消息级选项在消息名称之后的 `[]` 中内联声明:
+
+```protobuf
+message User [deprecated=true] {
+    string id = 1;
+    string name = 2;
+}
+```
+
+FDL 不支持消息或枚举主体内的 `option ...;` 语句。
+
+**语法:**
+
+```
+message_def  := 'message' IDENTIFIER [type_options] '{' message_body '}'
+type_options := '[' type_option (',' type_option)* ']'
+type_option  := IDENTIFIER '=' option_value
+message_body := (reserved_stmt | nested_type | field_def)*
+nested_type  := enum_def | message_def | union_def
+```
+
+**规则:**
+
+- 类型 ID 遵循[类型 ID](#type-ids) 中的规则。
+
+## 嵌套类型
+
+消息可以包含嵌套消息、枚举和联合定义。这对于定义与其父消息密切相关的类型非常有用。
+
+### 嵌套消息
+
+```protobuf
+message SearchResponse {
+    message Result {
+        string url = 1;
+        string title = 2;
+        list<string> snippets = 3;
+    }
+    list<Result> results = 1;
+}
+```
+
+### 嵌套枚举
+
+```protobuf
+message Container {
+    enum Status {
+        STATUS_UNKNOWN = 0;
+        STATUS_ACTIVE = 1;
+        STATUS_INACTIVE = 2;
+    }
+    Status status = 1;
+}
+```
+
+### 限定类型名称
+
+可以使用限定名称 (Parent.Child) 从其他消息引用嵌套类型:
+
+```protobuf
+message SearchResponse {
+    message Result {
+        string url = 1;
+        string title = 2;
+    }
+}
+
+message SearchResultCache {
+    // Reference nested type with qualified name
+    SearchResponse.Result cached_result = 1;
+    list<SearchResponse.Result> all_results = 2;
+}
+```
+
+### 深度嵌套类型
+
+嵌套可以是多层深度:
+
+```protobuf
+message Outer {
+    message Middle {
+        message Inner {
+            string value = 1;
+        }
+        Inner inner = 1;
+    }
+    Middle middle = 1;
+}
+
+message OtherMessage {
+    // Reference deeply nested type
+    Outer.Middle.Inner deep_ref = 1;
+}
+```
+
+### 特定语言的生成
+
+| 语言                  | 嵌套类型生成                                                  |
+| --------------------- | ------------------------------------------------------------- |
+| Java                  | 静态内部类(`SearchResponse.Result`)                         |
+| Python                | 数据类中的嵌套类                                              |
+| Go                    | 带下划线的平面结构(`SearchResponse_Result`,可配置为驼峰式) |
+| Rust                  | 嵌套模块(`search_response::Result`)                         |
+| C++                   | 嵌套类(`SearchResponse::Result`)                            |
+| C#                    | 嵌套类(`SearchResponse.Result`)                             |
+| JavaScript/TypeScript | 单位名称 (`Result`)                                           |
+| Swift                 | 嵌套命名空间包装器或扁平化名称                                |
+| Dart                  | 带下划线的扁平类(`SearchResponse_Result`)                   |
+| Scala                 | 嵌套 companion/object 作用域                                  |
+| Kotlin                | 平面生成的名称                                                |
+
+**注意:**Go 默认使用下划线分隔嵌套名称;设置 `option go_nested_type_style = "camelcase";` 可使用拼接名称。Rust 会为嵌套类型生成嵌套模块。
+
+### 嵌套类型规则
+
+- 嵌套类型名称在其父消息中必须是唯一的
+- 嵌套类型可以有自己的类型 ID
+- 数字类型 ID 必须全局唯一(包括嵌套类型);自动生成和冲突处理请参阅[类型 ID](#type-ids)
+- 在消息中,您可以通过简单名称引用嵌套类型
+- 从外部引用时,使用限定名称(Parent.Child)
+
+## 联合定义
+
+联合类型定义一个值,该值只能包含多个 case 类型中的一个。
+
+### 基本语法
+
+```protobuf
+union Animal [id=106] {
+    Dog dog = 1;
+    Cat cat = 2;
+}
+```
+
+### 在消息中使用联合
+
+```protobuf
+message Person [id=100] {
+    Animal pet = 1;
+    optional Animal favorite_pet = 2;
+}
+```
+
+### 规则
+
+- case ID 必须为非负数,并且在联合类型中唯一
+- 特定语言的未知 case 标记只选择前向兼容载体,不会在 Schema case 表中新增条目
+- case 不能是 `optional` 或 `ref`
+- 联合 case 支持载荷元数据的字段选项,例如标量编码
+  和集合元素元数据
+- Case 类型可以是基本类型、枚举、消息或其他命名类型
+- 联合类型 ID 遵循 [类型 ID](#type-ids) 中的规则。
+
+**语法:**
+
+```
+union_def  := 'union' IDENTIFIER [type_options] '{' union_field* '}'
+union_field := ['repeated'] field_type IDENTIFIER '=' INTEGER [field_options] ';'
+```
+
+## 服务定义 {#service-definition}
+
+服务用于在 Fory IDL 中定义 RPC 方法契约。服务定义是可选的:即使 Schema 包含服务,
+也仍会生成常规数据模型类型。只有为 Java、Python、Go、Rust、C#、Dart、Scala、Kotlin 或
+JavaScript 等受支持目标使用 `--grpc` 运行编译器时,才会额外生成 gRPC 服务代码。
+JavaScript 浏览器 gRPC-Web 客户端使用 `--grpc-web` 生成。
+
+```protobuf
+message GetPetRequest [id=200] {
+    string name = 1;
+}
+
+message PetRecord [id=201] {
+    string name = 1;
+    Animal animal = 2;
+}
+
+service PetDirectory {
+    rpc GetPet (GetPetRequest) returns (PetRecord);
+    rpc Classify (Animal) returns (Animal);
+}
+```
+
+第一个方法使用消息作为请求和响应类型。第二个方法展示 Fory IDL 对直接使用联合类型作为请求和响应类型的支持。
+
+### 流式 RPC
+
+在请求类型、响应类型或两者之前使用 `stream`:
+
+```protobuf
+service PetDirectory {
+    rpc GetPet (GetPetRequest) returns (PetRecord);              // unary
+    rpc WatchPets (GetPetRequest) returns (stream PetRecord);    // server streaming
+    rpc ImportPets (stream PetRecord) returns (PetRecord);       // client streaming
+    rpc ChatPets (stream Animal) returns (stream Animal);        // bidirectional streaming
+}
+```
+
+### RPC 类型规则
+
+- 请求和响应类型必须引用命名消息或联合类型。
+- 枚举、基本类型、集合、Map 和数组不能直接作为 RPC 请求或响应类型。在服务契约中使用这些值时,请将其包装在消息中。
+- 生成的 gRPC 配套代码使用 Fory 序列化每个 RPC 载荷。
+  编译或运行这些配套代码的应用需要自行提供 gRPC
+  依赖项,例如 grpc-java、grpc-kotlin、`grpcio`、grpc-go、Rust `tonic`
+  和 `bytes`、Scala grpc-java API、`@grpc/grpc-js`、`grpc-web`、C#
+  `Grpc.Core.Api` 及服务端或客户端软件包,或 Dart `package:grpc`。Python
+  配套代码默认使用 `grpc.aio`;通过 `--grpc-python-mode=sync` 也可生成同步模式代码。
+
+**语法:**
+
+```
+service_def := 'service' IDENTIFIER '{' rpc_method* '}'
+rpc_method  := 'rpc' IDENTIFIER '(' ['stream'] named_type ')'
+               'returns' '(' ['stream'] named_type ')' ';'
+```
+
+## 字段定义
+
+字段定义消息的属性。
+
+### 基本语法
+
+```protobuf
+field_type field_name = field_number;
+```
+
+### 带修饰符
+
+```protobuf
+optional list<string> tags = 1;  // Nullable list
+list<optional string> tags = 2;  // Elements may be null
+list<ref Node> nodes = 3;        // Elements tracked as references
+```
+
+**语法:**
+
+```
+field_def    := [modifiers] field_type IDENTIFIER '=' INTEGER ';'
+modifiers    := { 'optional' | 'ref' }
+field_type   := primitive_type | named_type | list_type | array_type | map_type
+list_type    := 'list' '<' { 'optional' | 'ref' | scalar_encoding } field_type '>'
+array_type   := 'array' '<' array_element_type '>'
+```
+
+`optional` 位于 `list` 之前时作用于集合字段。不能将 `optional` 直接应用于
+`any`;请使用 `any`、`list<any>` 或 `map<K, any>`,不要使用 `optional any`、
+`list<optional any>` 或 `map<K, optional any>`。`ref` 仅适用于具名 message/union
+字段;对于集合内容,请使用 `list<ref T>` 或 `map<K, ref V>`。`repeated` 可作为
+`list` 的别名。
+
+### 字段修饰符 {#field-modifiers}
+
+#### `optional`
+
+将字段标记为可为空:
+
+```protobuf
+message User {
+    string name = 1;           // Required, non-null
+    optional string email = 2; // Nullable
+}
+```
+
+请勿直接使用 `optional` 或 `[nullable = true]` 修饰 `any`。编译器
+拒绝 `optional any`、`any [nullable = true]`、`list<optional any>` 和
+`map<K, optional any>`;请改用 `any`、`list<any>` 或 `map<K, any>`。
+
+**生成的代码:**
+
+| 语言                  | 非可选             | 选修的                            |
+| --------------------- | ------------------ | --------------------------------- |
+| Java                  | `String name`      | `@Nullable String email`          |
+| Python                | `name: str`        | `name: Optional[str]`             |
+| Go                    | `Name string`      | `Name *string`                    |
+| Rust                  | `name: String`     | `name: Option<String>`            |
+| C++                   | `std::string name` | `std::optional<std::string> name` |
+| C#                    | `string name`      | `string? email`                   |
+| JavaScript/TypeScript | `name: string`     | `name?: string \| null`           |
+| Swift                 | `String name`      | `String? email`                   |
+| Dart                  | `String name`      | `String? email`                   |
+| Scala                 | `name: String`     | `email: Option[String]`           |
+| Kotlin                | `name: String`     | `email: String?`                  |
+
+**默认值:**
+
+| 类型       | 默认值              |
+| ---------- | ------------------- |
+| 非可选类型 | 默认语言            |
+| 可选类型   | `null`/`None`/`nil` |
+
+#### `ref`
+
+启用共享/循环引用的引用跟踪:
+
+```protobuf
+message Node {
+    string value = 1;
+    ref Node parent = 2;     // Can point to shared object
+    list<ref Node> children = 3;
+}
+```
+
+**使用案例:**
+
+- 共享对象(同一对象被多次引用)
+- 循环引用(带有循环的对象图)
+- 具有父指针的树结构
+
+**生成的代码:**
+
+| 语言                  | 不带`ref`      | 配`ref`                                   |
+| --------------------- | -------------- | ----------------------------------------- |
+| Java                  | `Node parent`  | `Node parent`,带 `@Ref`                  |
+| Python                | `parent: Node` | `parent: Node = pyfory.field(ref=True)`   |
+| Go                    | `Parent Node`  | `Parent *Node`,带 `fory:"ref"`           |
+| Rust                  | `parent: Node` | `parent: Arc<Node>`                       |
+| C++                   | `Node parent`  | `std::shared_ptr<Node> parent`            |
+| C#                    | `Node parent`  | 带引用跟踪的 `Node? parent`               |
+| JavaScript/TypeScript | `parent: Node` | `parent: Node`(不区分 ref)              |
+| Swift                 | `Node parent`  | 带引用跟踪的类引用                        |
+| Dart                  | `Node parent`  | `Node parent`,带 `@ForyField(ref: true)` |
+| Scala                 | `parent: Node` | `@Ref parent: Node`                       |
+| Kotlin                | `parent: Node` | `@Ref parent: Node?`                      |
+
+Rust 默认对引用跟踪字段使用 `Arc` 和 `ArcWeak`。设置 `ref(thread_safe=false)` 后,
+生成的 Rust 类型将改用单线程 `Rc` 或 `RcWeak` 载体。该设置只选择 Rust 代码生成
+使用的载体;它不会改变 wire format,也不会使被引用的值本身变为线程安全。
+protobuf 选项语法参见 [Protocol Buffers IDL 支持](protobuf-idl.md#field-level-options)。
+
+Rust 指针载体映射:
+
+| Fory IDL                                        | Rust 类型       |
+| ----------------------------------------------- | --------------- |
+| `ref Node parent`                               | `Arc<Node>`     |
+| `ref(thread_safe=false) Node parent`            | `Rc<Node>`      |
+| `ref(weak=true) Node parent`                    | `ArcWeak<Node>` |
+| `ref(weak=true, thread_safe=false) Node parent` | `RcWeak<Node>`  |
+
+#### `list`
+
+将字段标记为有序集合:
+
+```protobuf
+message Document {
+    list<string> tags = 1;
+    list<User> authors = 2;
+}
+```
+
+**生成的代码:**
+
+| 语言                  | 类型                       |
+| --------------------- | -------------------------- |
+| Java                  | `List<String>`             |
+| Python                | `List[str]`                |
+| Go                    | `[]string`                 |
+| Rust                  | `Vec<String>`              |
+| C++                   | `std::vector<std::string>` |
+| C#                    | `List<string>`             |
+| JavaScript/TypeScript | `string[]`                 |
+| Swift                 | `[String]`                 |
+| Dart                  | `List<String>`             |
+| Scala                 | `List[String]`             |
+| Kotlin                | `List<String>`             |
+
+### 组合修饰符
+
+修饰符可以组合:
+
+```fdl
+message Example {
+    optional list<string> tags = 1;  // Nullable list
+    list<optional string> aliases = 2; // Elements may be null
+    list<ref Node> children = 3;       // Elements tracked as references
+    optional ref User owner = 4;       // Nullable tracked reference
+}
+```
+
+`optional` 位于 `list` 之前时作用于字段/集合。`ref` 不能位于 `list` 或 `map`
+之前;请将 `ref` 放入元素类型或值类型中。`repeated` 可作为 `list` 的别名。
+
+**列表修饰符映射:**
+
+| Fory IDL                | Java                         | Python                | Go                      | Rust                  | C++                                       | Dart                                                          | Scala                  |
+| ----------------------- | ---------------------------- | --------------------- | ----------------------- | --------------------- | ----------------------------------------- | ------------------------------------------------------------- | ---------------------- |
+| `optional list<string>` | `@Nullable List<String>`     | `Optional[List[str]]` | `[]string` + `nullable` | `Option<Vec<String>>` | `std::optional<std::vector<std::string>>` | `List<String>?`                                               | `Option[List[String]]` |
+| `list<optional string>` | `List<String>`(可为空元素) | `List[Optional[str]]` | `[]*string`             | `Vec<Option<String>>` | `std::vector<std::optional<std::string>>` | `List<String?>`                                               | `List[Option[String]]` |
+| `list<ref User>`        | `List<@Ref User>`            | `List[User]`          | `[]*User` + `ref=false` | `Vec<Arc<User>>`      | `std::vector<std::shared_ptr<User>>`      | `List<User>` + `@ListField(element: DeclaredType(ref: true))` | `List[User @Ref]`      |
+
+在 Fory IDL 中使用 `ref(thread_safe=false)`(或
+protobuf中的`[(fory).thread_safe_pointer = false]`)生成`Rc`而不是
+Rust 中的 `Arc`。
+
+## 字段编号
+
+每个字段必须有一个唯一的正整数标识符:
+
+```protobuf
+message Example {
+    string first = 1;
+    string second = 2;
+    string third = 3;
+}
+```
+
+**规则和最佳实践:**
+
+- 消息中的数字必须是唯一的。
+- 数字必须是正整数。
+- 允许有间隙,并且在删除字段时很有用。
+- 优先选择从 `1` 开始的顺序编号。
+- 切勿将已删除的字段编号重复用于其他字段。
+
+## 类型系统 {#type-system}
+
+Fory IDL 为基本类型、命名类型和集合提供统一类型系统。字段修饰符(`optional`、`ref`)控制可空性和
+引用跟踪,而 `list<T>` 和 `array<T>` 用于选择集合 Schema 类型
+(参见[字段修饰符](#field-modifiers))。
+
+本节中的简表列出常见的生成载体。完整的 1.0 语言支持范围(包括 C#、Swift、Dart、Scala 和 Kotlin)请参见
+[xlang 类型映射规范](../specification/xlang_type_mapping.md)。
+
+### 基本类型
+
+| 类型        | 描述                                | 尺寸   |
+| ----------- | ----------------------------------- | ------ |
+| `bool`      | 布尔值                              | 1 字节 |
+| `int8`      | 有符号 8 位整数                     | 1 字节 |
+| `int16`     | 有符号 16 位整数                    | 2 字节 |
+| `int32`     | 有符号 32 位整数,默认为 varint     | 4 字节 |
+| `int64`     | 有符号 64 位整数,默认为 PVL varint | 8 字节 |
+| `uint8`     | 无符号 8 位整数                     | 1字节  |
+| `uint16`    | 无符号 16 位整数                    | 2 字节 |
+| `uint32`    | 无符号 32 位整数,默认为 varint     | 4 字节 |
+| `uint64`    | 无符号 64 位整数,默认为 PVL varint | 8 字节 |
+| `float16`   | IEEE 754 binary16 浮点              | 2 字节 |
+| `bfloat16`  | Brain Floating Point                | 2 字节 |
+| `float32`   | 32 位浮点数                         | 4 字节 |
+| `float64`   | 64 位浮点数                         | 8 字节 |
+| `string`    | UTF-8 字符串                        | 可变   |
+| `bytes`     | 二进制数据                          | 可变   |
+| `date`      | 日历日期                            | 可变   |
+| `timestamp` | 带时区的日期和时间                  | 可变   |
+| `duration`  | 时长                                | 可变   |
+| `decimal`   | 十进制值                            | 可变   |
+| `any`       | 动态值(具体类型)                  | 可变   |
+
+#### 布尔值
+
+| 语言                  | 类型                  | 说明       |
+| --------------------- | --------------------- | ---------- |
+| Java                  | `boolean` / `Boolean` | 基本或装箱 |
+| Python                | `bool`                |            |
+| Go                    | `bool`                |            |
+| Rust                  | `bool`                |            |
+| C++                   | `bool`                |            |
+| JavaScript/TypeScript | `boolean`             |            |
+| Dart                  | `bool`                |            |
+
+#### 整数类型
+
+Fory IDL 提供固定宽度有符号整数(32/64 位整数默认使用变长编码):
+
+| Fory IDL 类型 | 位宽  | 范围              |
+| ------------- | ----- | ----------------- |
+| `int8`        | 8 位  | -128 至 127       |
+| `int16`       | 16 位 | -32,768 至 32,767 |
+| `int32`       | 32 位 | -2^31 至 2^31 - 1 |
+| `int64`       | 64 位 | -2^63 至 2^63 - 1 |
+
+**语言映射(有符号):**
+
+| Fory IDL | Java    | Python         | Go      | Rust  | C++       | JavaScript/TypeScript | Dart    |
+| -------- | ------- | -------------- | ------- | ----- | --------- | --------------------- | ------- |
+| `int8`   | `byte`  | `pyfory.Int8`  | `int8`  | `i8`  | `int8_t`  | `number`              | `int`   |
+| `int16`  | `short` | `pyfory.Int16` | `int16` | `i16` | `int16_t` | `number`              | `int`   |
+| `int32`  | `int`   | `pyfory.Int32` | `int32` | `i32` | `int32_t` | `number`              | `int`   |
+| `int64`  | `long`  | `pyfory.Int64` | `int64` | `i64` | `int64_t` | `bigint \| number`    | `Int64` |
+
+Fory IDL 提供固定宽度无符号整数(32/64 位整数默认使用变长编码):
+
+| Fory IDL | 位宽  | 范围          |
+| -------- | ----- | ------------- |
+| `uint8`  | 8 位  | 0 至 255      |
+| `uint16` | 16 位 | 0 至 65,535   |
+| `uint32` | 32 位 | 0 至 2^32 - 1 |
+| `uint64` | 64 位 | 0 至 2^64 - 1 |
+
+**语言映射(无符号):**
+
+| Fory IDL | Java    | Python          | Go       | Rust  | C++        | JavaScript/TypeScript | Dart     |
+| -------- | ------- | --------------- | -------- | ----- | ---------- | --------------------- | -------- |
+| `uint8`  | `short` | `pyfory.UInt8`  | `uint8`  | `u8`  | `uint8_t`  | `number`              | `int`    |
+| `uint16` | `int`   | `pyfory.UInt16` | `uint16` | `u16` | `uint16_t` | `number`              | `int`    |
+| `uint32` | `long`  | `pyfory.UInt32` | `uint32` | `u32` | `uint32_t` | `number`              | `int`    |
+| `uint64` | `long`  | `pyfory.UInt64` | `uint64` | `u64` | `uint64_t` | `bigint \| number`    | `Uint64` |
+
+#### 整数编码修饰符
+
+对于 32/64 位整数,Fory IDL 默认使用变长编码。需要其他编码格式时,请添加标量编码修饰符:
+
+| 修饰符   | 有效类型                             | 说明             |
+| -------- | ------------------------------------ | ---------------- |
+| `varint` | `int32`、`int64`、`uint32`、`uint64` | 默认值的显式拼写 |
+| `fixed`  | `int32`、`int64`、`uint32`、`uint64` | 固定宽度小端序   |
+| `tagged` | `int64`、`uint64`                    | 标记 64 位编码   |
+
+修饰符是标量类型表达式的一部分,因此也可用于嵌套 list 和 map 位置:
+
+```protobuf
+fixed int32 id = 1;
+list<fixed int32> offsets = 2;
+map<string, tagged uint64> counters = 3;
+```
+
+带下划线的整数编码名称不是 FDL 类型名称。
+
+#### 浮点类型
+
+| Fory IDL 类型 | 位宽  | 精度            |
+| ------------- | ----- | --------------- |
+| `float32`     | 32 位 | 约 7 位数字     |
+| `float64`     | 64 位 | 约 15-16 位数字 |
+
+**语言映射:**
+
+| Fory IDL   | Java       | Python 注解/值              | Go                  | Rust       | C++                | JavaScript/TypeScript | Dart      |
+| ---------- | ---------- | --------------------------- | ------------------- | ---------- | ------------------ | --------------------- | --------- |
+| `float16`  | `Float16`  | `pyfory.Float16` / `float`  | `float16.Float16`   | `Float16`  | `fory::float16_t`  | `number`              | `double`  |
+| `bfloat16` | `BFloat16` | `pyfory.BFloat16` / `float` | `bfloat16.BFloat16` | `BFloat16` | `fory::bfloat16_t` | `number`              | `double`  |
+| `float32`  | `float`    | `pyfory.Float32`            | `float32`           | `f32`      | `float`            | `number`              | `Float32` |
+| `float64`  | `double`   | `pyfory.Float64`            | `float64`           | `f64`      | `double`           | `number`              | `double`  |
+
+#### 字符串类型
+
+| 语言                  | 类型          | 说明         |
+| --------------------- | ------------- | ------------ |
+| Java                  | `String`      | 不可变的     |
+| Python                | `str`         |              |
+| Go                    | `string`      | 不可变的     |
+| Rust                  | `String`      | 拥有,堆分配 |
+| C++                   | `std::string` |              |
+| JavaScript/TypeScript | `string`      |              |
+| Dart                  | `String`      |              |
+
+#### 字节类型
+
+| 语言                  | 类型                   | 说明     |
+| --------------------- | ---------------------- | -------- |
+| Java                  | `byte[]`               |          |
+| Python                | `bytes`                | 不可变的 |
+| Go                    | `[]byte`               |          |
+| Rust                  | `Vec<u8>`              |          |
+| C++                   | `std::vector<uint8_t>` |          |
+| JavaScript/TypeScript | `Uint8Array`           |          |
+| Dart                  | `Uint8List`            |          |
+
+#### 时间类型
+
+##### 日期
+
+| 语言                  | 类型                  | 说明                                                                  |
+| --------------------- | --------------------- | --------------------------------------------------------------------- |
+| Java                  | `java.time.LocalDate` |                                                                       |
+| Python                | `datetime.date`       |                                                                       |
+| Go                    | `time.Time`           | 时间部分被忽略                                                        |
+| Rust                  | `fory::Date`          | 设置 `rust_use_chrono_temporal_types = true` 生成 `chrono::NaiveDate` |
+| C++                   | `fory::Date`          |                                                                       |
+| JavaScript/TypeScript | `Date`                |                                                                       |
+| Dart                  | `LocalDate`           | Fory 封装类型                                                         |
+
+##### 时间戳
+
+| 语言                  | 类型                | 说明                                                                      |
+| --------------------- | ------------------- | ------------------------------------------------------------------------- |
+| Java                  | `java.time.Instant` | 基于 UTC                                                                  |
+| Python                | `datetime.datetime` |                                                                           |
+| Go                    | `time.Time`         |                                                                           |
+| Rust                  | `fory::Timestamp`   | 设置 `rust_use_chrono_temporal_types = true` 生成 `chrono::NaiveDateTime` |
+| C++                   | `fory::Timestamp`   |                                                                           |
+| JavaScript/TypeScript | `Date`              |                                                                           |
+| Dart                  | `Timestamp`         | Fory 封装类型                                                             |
+
+##### Duration
+
+| 语言   | 类型                 | 说明                                                                 |
+| ------ | -------------------- | -------------------------------------------------------------------- |
+| Java   | `java.time.Duration` |                                                                      |
+| Python | `datetime.timedelta` |                                                                      |
+| Go     | `time.Duration`      |                                                                      |
+| Rust   | `fory::Duration`     | 设置 `rust_use_chrono_temporal_types = true` 生成 `chrono::Duration` |
+| C++    | `fory::Duration`     |                                                                      |
+| Dart   | `Duration`           |                                                                      |
+
+#### Any
+
+| 语言                  | 类型                         | 说明                   |
+| --------------------- | ---------------------------- | ---------------------- |
+| Java                  | `Object`                     | 写入的具体值类型元数据 |
+| Python                | `Any`                        | 写入的具体值类型元数据 |
+| Go                    | `any`                        | 写入的具体值类型元数据 |
+| Rust                  | `Arc<dyn Any + Send + Sync>` | 写入具体值的类型元数据 |
+| C++                   | `std::any`                   | 写入的具体值类型元数据 |
+| JavaScript/TypeScript | `any`                        | 写入的具体值类型元数据 |
+| Dart                  | `Object?`                    | 写入具体值的类型元数据 |
+
+**示例:**
+
+```protobuf
+enum EventType [id=120] {
+    CREATED = 0;
+    DELETED = 1;
+}
+
+message UserCreated [id=121] {
+    string user_id = 1;
+}
+
+message Envelope [id=122] {
+    EventType type = 1;
+    any payload = 2;
+}
+```
+
+**生成的代码(`Envelope.payload`):**
+
+| 语言                  | 生成的字段类型                        |
+| --------------------- | ------------------------------------- |
+| Java                  | `Object payload`                      |
+| Python                | `payload: Any`                        |
+| Go                    | `Payload any`                         |
+| Rust                  | `payload: Arc<dyn Any + Send + Sync>` |
+| C++                   | `std::any payload`                    |
+| JavaScript/TypeScript | `payload: any`                        |
+| Dart                  | `Object? payload`                     |
+
+**说明:**
+
+- `any` 始终写入 null 标志(与 `nullable` 相同),因为值可能为空。
+- `optional` 和 `[nullable = true]` 不能直接用于 `any`;请使用
+  `any`、`list<any>` 或 `map<K, any>` 而不是 `optional any`,
+  `list<optional any>` 或 `map<K, optional any>`。
+- 允许的动态值仅限于 `bool`、`string`、`enum`、`message` 和 `union`。
+  不支持其他基本类型(数字、字节、日期/时间)和 list/map;请将它们包装在消息中,或改用显式字段。
+- `ref` 不允许用于 `any` 字段(包括 list/map 值)。如果需要引用跟踪,请将 `any` 包装在消息中。
+- 具体类型必须在目标语言 Schema/IDL 注册表中注册;未知类型无法反序列化。
+
+### 命名类型
+
+按名称引用其他消息、枚举或联合:
+
+```protobuf
+enum Status { ... }
+message User { ... }
+
+message Order {
+    User customer = 1;    // Reference to User message
+    Status status = 2;    // Reference to Status enum
+}
+```
+
+### 集合类型
+
+#### 列表 (`list`)
+
+列表字段使用 `list<...>` 类型。`repeated` 也可作为别名。修饰符组合和语言映射请参阅[字段修饰符](#field-modifiers)。
+
+嵌套集合支持取决于目标语言能力。C++ 生成器接受 `list<list<...>>`、
+`list<map<...>>` 和 `map<..., list<...>>` 等嵌套集合 Schema;尚未实现嵌套字段
+Schema 的目标语言仍会拒绝这些写法。如果需要跨所有目标语言的可移植 Schema,请使用消息包装器。
+
+#### 数组 (`array`)
+
+对于动态长度的密集数值数据,请使用 `array<T>`。`array<T>` 是与 `list<T>` 不同的
+Schema 类型,使用紧凑的基本类型数组编码载荷。
+
+```protobuf
+message Embedding {
+    array<int32> indices = 1;
+    array<float32> values = 2;
+    array<uint8> pixels = 3;
+}
+```
+
+`array<T>` 仅接受 `bool`、整数和浮点元素类型。它不接受 `optional`、`ref`、
+命名/对象类型、`string`、`bytes`、map,也不接受 `array<fixed int32>` 等标量整数编码修饰符;
+根据数组约定,数组元素始终采用固定宽度编码。
+
+生成的载体因语言而异,但 Schema 类型保持一致:
+
+| IDL Schema        | Java 默认值                  | Python 默认值          | Dart 默认值    | JavaScript/TypeScript    |
+| ----------------- | ---------------------------- | ---------------------- | -------------- | ------------------------ |
+| `list<bool>`      | `BoolList` / `List<Boolean>` | `List[bool]`           | `List<bool>`   | `Type.list(Type.bool())` |
+| `array<bool>`     | `boolean[]`                  | `pyfory.BoolArray`     | `BoolList`     | `Type.boolArray()`       |
+| `array<int8>`     | `@Int8Type byte[]`           | `pyfory.Int8Array`     | `Int8List`     | `Type.int8Array()`       |
+| `array<int16>`    | `short[]`                    | `pyfory.Int16Array`    | `Int16List`    | `Type.int16Array()`      |
+| `array<int32>`    | `int[]`                      | `pyfory.Int32Array`    | `Int32List`    | `Type.int32Array()`      |
+| `array<int64>`    | `long[]`                     | `pyfory.Int64Array`    | `Int64List`    | `Type.int64Array()`      |
+| `array<uint8>`    | `@UInt8Type byte[]`          | `pyfory.UInt8Array`    | `Uint8List`    | `Type.uint8Array()`      |
+| `array<uint16>`   | `@UInt16Type short[]`        | `pyfory.UInt16Array`   | `Uint16List`   | `Type.uint16Array()`     |
+| `array<uint32>`   | `@UInt32Type int[]`          | `pyfory.UInt32Array`   | `Uint32List`   | `Type.uint32Array()`     |
+| `array<uint64>`   | `@UInt64Type long[]`         | `pyfory.UInt64Array`   | `Uint64List`   | `Type.uint64Array()`     |
+| `array<float16>`  | `Float16Array`               | `pyfory.Float16Array`  | `Float16List`  | `Type.float16Array()`    |
+| `array<bfloat16>` | `BFloat16Array`              | `pyfory.BFloat16Array` | `Bfloat16List` | `Type.bfloat16Array()`   |
+| `array<float32>`  | `float[]`                    | `pyfory.Float32Array`  | `Float32List`  | `Type.float32Array()`    |
+| `array<float64>`  | `double[]`                   | `pyfory.Float64Array`  | `Float64List`  | `Type.float64Array()`    |
+
+对于手写 Dart 模型,`array<bool>` 需要 `BoolList`,并添加
+`@ArrayField(element: BoolType())` 或
+`@ForyField(type: ArrayType(element: BoolType()))`;`List<bool>` 仍对应
+`list<bool>`。对于手写 Java 模型,无符号基本类型数组在元素类型上使用类型注解,
+例如 `private @UInt32Type int[] ids;`。
+对于生成的 Kotlin 模型,`array<int8>` 使用 `@ArrayType ByteArray`,
+包括嵌套集合和 map 位置。
+
+#### Map
+
+具有指定键和值类型的 Map:
+
+```protobuf
+message Config {
+    map<string, string> properties = 1;
+    map<string, int32> counts = 2;
+    map<int32, User> users = 3;
+}
+```
+
+**语言映射:**
+
+| Fory IDL             | Java                   | Python            | Go                 | Rust                    | C++                                        | JavaScript/TypeScript | Dart                |
+| -------------------- | ---------------------- | ----------------- | ------------------ | ----------------------- | ------------------------------------------ | --------------------- | ------------------- |
+| `map<string, int32>` | `Map<String, Integer>` | `Dict[str, int]`  | `map[string]int32` | `HashMap<String, i32>`  | `std::unordered_map<std::string, int32_t>` | `Map<string, number>` | `Map<String, int>`  |
+| `map<string, User>`  | `Map<String, User>`    | `Dict[str, User]` | `map[string]User`  | `HashMap<String, User>` | `std::unordered_map<std::string, User>`    | `Map<string, User>`   | `Map<String, User>` |
+
+**键类型限制:**
+
+- `string`(最常见)
+- `bool`
+- 整数类型(`int8`、`int16`、`int32`、`int64`、`uint8`、`uint16`、`uint32`、`uint64`)
+- 时间标量类型(`date`、`timestamp`、`duration`)
+- 枚举
+
+Map 键不支持 `any`、二进制 `bytes`、浮点类型、`decimal`、消息类型、联合类型、
+`list<T>`、`array<T>` 或嵌套 `map<K, V>`。请将这些类型用于 Map 值,或使用可移植的标量或枚举键将它们包装在消息中。
+
+### 类型兼容性矩阵
+
+该矩阵显示了哪些类型转换在不同语言中是安全的:
+
+| 从 -> 到 | bool | int8 | int16 | int32 | int64 | float32 | float64 | string |
+| -------- | ---- | ---- | ----- | ----- | ----- | ------- | ------- | ------ |
+| bool     | 是   | 是   | 是    | 是    | 是    | -       | -       | -      |
+| int8     | -    | 是   | 是    | 是    | 是    | 是      | 是      | -      |
+| int16    | -    | -    | 是    | 是    | 是    | 是      | 是      | -      |
+| int32    | -    | -    | -     | 是    | 是    | -       | 是      | -      |
+| int64    | -    | -    | -     | -     | 是    | -       | -       | -      |
+| float32  | -    | -    | -     | -     | -     | 是      | 是      | -      |
+| float64  | -    | -    | -     | -     | -     | -       | 是      | -      |
+| string   | -    | -    | -     | -     | -     | -       | -       | 是     |
+
+Y = 安全转换,- = 不推荐
+
+### 最佳实践
+
+- 使用 `int32` 作为大多数整数的默认值;对于较大值,请使用 `int64`。
+- 对于文本数据 (UTF-8) 使用 `string`,对于二进制数据使用 `bytes`。
+- 仅当该字段可能合法地不存在时才使用 `optional`。
+- 仅当需要共享或循环引用时才使用 `ref`。
+- 对于有序序列,首选 `list`;对于键值查找,首选 `map`。
+
+## 类型 ID {#type-ids}
+
+类型 ID 用于消息、联合类型和枚举,可实现高效的跨语言序列化。当
+`enable_auto_type_id = true`(默认)且省略 `id` 时,编译器通过
+`MurmurHash3(utf8(package.type_name))`(32 位)自动生成 ID,并在生成的代码中注明。
+当 `enable_auto_type_id = false` 时,没有显式 ID 的类型改为按命名空间和名称注册。
+编译器会在当前文件和所有导入文件中检测冲突;发生冲突时,
+编译器会引发错误并要求显式 `id` 或 `alias`。
+对于 Java 和 Scala 生成的代码,嵌套名称注册会把父级路径附加到 namespace,
+同时保留嵌套类型的简单名称。例如,
+`package demo; message Envelope { message Payload { ... } }` 在这些 JVM 目标中
+会注册 `Payload`:其 namespace 为 `demo.Envelope`,类型名称为 `Payload`。
+
+```protobuf
+enum Color [id=100] { ... }
+message User [id=101] { ... }
+union Event [id=102] { ... }
+```
+
+枚举类型 ID 仍是可选的;当 `enable_auto_type_id = true` 时,如果省略 ID,
+编译器会使用相同的哈希算法自动生成 ID。
+
+### 使用显式类型 ID
+
+```protobuf
+message User [id=101] { ... }
+message User [id=101, deprecated=true] { ... }  // Multiple options
+```
+
+### 不使用显式类型 ID
+
+```protobuf
+message Config { ... }  // Auto-generated when enable_auto_type_id = true
+```
+
+您可以设置 `[alias="..."]` 来更改哈希源,而无需重命名类型。
+
+### 实用说明
+
+- 如果类型省略 `id` 且 `enable_auto_type_id = true`,Fory 会使用
+  `MurmurHash3(utf8(package.type_name))`(32 位)生成 ID。
+- 包别名和类型别名会改变哈希输入,可在不重命名公共类型的情况下解决哈希冲突。
+- 小 varint 范围(`0-127`)内的手动 ID 在 wire format 中更紧凑;自动生成的 ID
+  通常更大,一般占用 4-5 字节。
+
+### ID 分配策略
+
+```protobuf
+// Enums: 100-199
+enum Status [id=100] { ... }
+enum Priority [id=101] { ... }
+
+// User domain: 200-299
+message User [id=200] { ... }
+message UserProfile [id=201] { ... }
+
+// Order domain: 300-399
+message Order [id=300] { ... }
+message OrderItem [id=301] { ... }
+```
+
+## 完整示例
+
+```protobuf
+// E-commerce domain model
+package com.shop.models;
+
+// Enums with type IDs
+enum OrderStatus [id=100] {
+    PENDING = 0;
+    CONFIRMED = 1;
+    SHIPPED = 2;
+    DELIVERED = 3;
+    CANCELLED = 4;
+}
+
+enum PaymentMethod [id=101] {
+    CREDIT_CARD = 0;
+    DEBIT_CARD = 1;
+    PAYPAL = 2;
+    BANK_TRANSFER = 3;
+}
+
+// Messages with type IDs
+message Address [id=200] {
+    string street = 1;
+    string city = 2;
+    string state = 3;
+    string country = 4;
+    string postal_code = 5;
+}
+
+message Customer [id=201] {
+    string id = 1;
+    string name = 2;
+    optional string email = 3;
+    optional string phone = 4;
+    optional Address billing_address = 5;
+    optional Address shipping_address = 6;
+}
+
+message Product [id=202] {
+    string sku = 1;
+    string name = 2;
+    string description = 3;
+    float64 price = 4;
+    int32 stock = 5;
+    list<string> categories = 6;
+    map<string, string> attributes = 7;
+}
+
+message OrderItem [id=203] {
+    ref Product product = 1;  // Track reference to avoid duplication
+    int32 quantity = 2;
+    float64 unit_price = 3;
+}
+
+message Order [id=204] {
+    string id = 1;
+    ref Customer customer = 2;
+    list<OrderItem> items = 3;
+    OrderStatus status = 4;
+    PaymentMethod payment_method = 5;
+    float64 total = 6;
+    optional string notes = 7;
+    timestamp created_at = 8;
+    optional timestamp shipped_at = 9;
+}
+
+// Config without explicit type ID (auto-generated when enable_auto_type_id = true)
+message ShopConfig {
+    string store_name = 1;
+    string currency = 2;
+    float64 tax_rate = 3;
+    list<string> supported_countries = 4;
+}
+```
+
+有关 protobuf 特定的扩展选项和 `(fory).` 语法,请参阅
+[协议缓冲区 IDL 支持](protobuf-idl.md#fory-extension-options-protobuf)。
+
+## 语法总结
+
+```
+file         := [package_decl] file_option* import_decl* definition*
+
+package_decl := 'package' package_name ['alias' package_name] ';'
+package_name := IDENTIFIER ('.' IDENTIFIER)*
+
+file_option  := 'option' option_name '=' option_value ';'
+option_name  := IDENTIFIER
+
+import_decl  := 'import' STRING ';'
+
+definition   := type_def | service_def
+type_def     := enum_def | message_def | union_def
+
+enum_def     := 'enum' IDENTIFIER [type_options] '{' enum_body '}'
+enum_body    := (reserved_stmt | enum_value)*
+enum_value   := IDENTIFIER '=' INTEGER ';'
+
+message_def  := 'message' IDENTIFIER [type_options] '{' message_body '}'
+message_body := (reserved_stmt | nested_type | field_def)*
+nested_type  := enum_def | message_def | union_def
+field_def    := [modifiers] field_type IDENTIFIER '=' INTEGER [field_options] ';'
+
+union_def    := 'union' IDENTIFIER [type_options] '{' union_field* '}'
+union_field  := ['repeated'] field_type IDENTIFIER '=' INTEGER [field_options] ';'
+
+service_def  := 'service' IDENTIFIER '{' rpc_method* '}'
+rpc_method   := 'rpc' IDENTIFIER '(' ['stream'] named_type ')'
+                'returns' '(' ['stream'] named_type ')' ';'
+option_value := 'true' | 'false' | IDENTIFIER | INTEGER | STRING
+
+reserved_stmt := 'reserved' reserved_items ';'
+reserved_items := reserved_item (',' reserved_item)*
+reserved_item := INTEGER | INTEGER 'to' INTEGER | INTEGER 'to' 'max' | STRING
+
+modifiers    := { 'optional' | 'ref' | 'repeated' }
+
+field_type   := [scalar_encoding] (primitive_type | named_type | list_type | array_type | map_type)
+primitive_type := 'bool'
+               | 'int8' | 'int16' | 'int32' | 'int64'
+               | 'uint8' | 'uint16' | 'uint32' | 'uint64'
+               | 'float16' | 'bfloat16' | 'float32' | 'float64'
+               | 'string' | 'bytes'
+               | 'date' | 'timestamp' | 'duration' | 'decimal'
+               | 'any'
+scalar_encoding := 'varint' | 'fixed' | 'tagged'
+named_type   := qualified_name
+qualified_name := IDENTIFIER ('.' IDENTIFIER)*   // e.g., Parent.Child
+list_type    := 'list' '<' { 'optional' | 'ref' | scalar_encoding } field_type '>'
+array_type   := 'array' '<' array_element_type '>'
+map_type     := 'map' '<' field_type ',' field_type '>'
+
+type_options := '[' type_option (',' type_option)* ']'
+type_option  := IDENTIFIER '=' option_value         // e.g., id=100, deprecated=true
+field_options := '[' field_option (',' field_option)* ']'
+field_option := IDENTIFIER '=' option_value         // e.g., deprecated=true, ref=true
+
+STRING       := '"' [^"\n]* '"' | "'" [^'\n]* "'"
+IDENTIFIER   := [a-zA-Z_][a-zA-Z0-9_]*
+INTEGER      := '-'? [0-9]+
+```
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/development/_category_.json b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/development/_category_.json
new file mode 100644
index 0000000000..fcbc87b9bf
--- /dev/null
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/development/_category_.json
@@ -0,0 +1,6 @@
+{
+  "position": 9,
+  "label": "开发",
+  "collapsible": true,
+  "collapsed": true
+}
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/development/cpp-debugging.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/development/cpp-debugging.md
new file mode 100644
index 0000000000..15e2f31a7e
--- /dev/null
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/development/cpp-debugging.md
@@ -0,0 +1,46 @@
+---
+layout: global
+title: 调试 C++
+license: |
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+     http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+---
+
+import JumpGeneratedFile from "@site/docs/development/jmp_generate_file.png";
+import VscodeDebugFory from "@site/docs/development/vscode_debug_fory.jpg";
+import VscodeSelectDebugRun from "@site/docs/development/vscode_select_debug_run.png";
+
+## 调试 C++
+
+调试 C++ 并不容易,如果没有调试支持,二进制协议中的缺陷很难定位,而为 bazel 项目配置
+调试支持也并非易事。
+
+Apache Fory™ 提供了开箱即用的 `launch.json/tasks.json` 配置,该配置位于 `.vscode` 目录中,用于调试 C++。
+
+只需在 vscode 中打开 fory 根目录,然后打开 `src/fory/row/row_test.cc` 等测试文件,
+按下 `F5`,便可像调试 java/python 一样在 vscode 中逐行调试 C++ 代码、监视变量并添加断点。
+
+<img src={VscodeDebugFory} alt="Apache Fory™ 调试示例" width="50%" height="50%" />
+
+## 注意事项
+
+- 对于 Macos:安装 `CodeLLDB` vscode 插件
+- 对于 Linux:
+  - 使用 `sudo yum install -y gdb` 为 fedora/centos 安装 gdb
+  - 使用 `sudo apt-get install gdb` 为 fedora/centos 安装 gdb
+- 如果无法调试,请选择正确的调试/运行选项:
+  <img src={VscodeSelectDebugRun} alt="选择正确的调试/运行选项" width="50%" height="50%" />
+- 调试时会跳转到 bazel 生成目录中的源文件,需要返回源代码树中的原始文件才能再次调试:
+  <img src={JumpGeneratedFile} alt="跳转到生成的文件" width="50%" height="50%" />
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/development/index.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/development/index.md
new file mode 100644
index 0000000000..d053f8a8be
--- /dev/null
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/development/index.md
@@ -0,0 +1,141 @@
+---
+title: 构建与测试
+sidebar_position: 1
+id: index
+license: |
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+     http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+---
+
+贡献者文档涵盖仓库设置、构建、测试、调试和面向发布的工作流程。
+这部分文档与已发布构件的用户指南相互独立。
+
+从 https://github.com/apache/fory 克隆源代码树。
+
+## Java
+
+```bash
+cd java
+mvn -T16 package
+```
+
+环境要求:
+
+- JDK 17+
+- Maven 3.6.3+
+
+## Python
+
+```bash
+cd python
+pip install -v -e .
+
+# Optional: build Cython extension (replace X.Y with your Python version)
+bazel build //:cp_fory_so --@rules_python//python/config_settings:python_version=X.Y
+```
+
+环境要求:
+
+- CPython 3.8+
+- Bazel 8+(构建 Cython 扩展时必需)
+
+## C++
+
+```bash
+cd cpp
+bazel build //cpp/...
+```
+
+环境要求:
+
+- C++17 编译器
+- Bazel 8+
+
+## Go
+
+```bash
+cd go/fory
+go test -v ./...
+```
+
+从 Java 测试模块运行 Go xlang 测试:
+
+```bash
+cd java
+mvn -T16 install -DskipTests
+cd fory-core
+FORY_GO_JAVA_CI=1 ENABLE_FORY_DEBUG_OUTPUT=1 mvn test -Dtest=org.apache.fory.xlang.GoXlangTest
+```
+
+环境要求:Go 1.24+。
+
+## Rust
+
+```bash
+cd rust
+cargo build
+cargo test --features tests
+
+# Debug a specific test
+RUST_BACKTRACE=1 FORY_PANIC_ON_ERROR=1 ENABLE_FORY_DEBUG_OUTPUT=1 \
+  cargo test --test mod $dir$::$test_file::$test_method -- --nocapture
+```
+
+环境要求:
+
+- 通过 rustup 安装的 Rust 工具链
+- `cargo-expand`(可选,用于调试宏展开)
+
+## JavaScript
+
+```bash
+cd javascript
+npm install
+
+npm run build
+node ./node_modules/.bin/jest --ci --reporters=default --reporters=jest-junit
+```
+
+环境要求:
+
+- Node.js (LTS)
+- npm
+
+## Markdown
+
+```bash
+cd docs
+npx prettier --write "**/*.md"
+```
+
+环境要求:
+
+- Node.js (LTS)
+- npm
+
+## 调试
+
+仓库中的 VS Code、Bazel、LLDB 和 GDB 配置请参阅[调试 C++](cpp-debugging.md)。
+
+不属于共享仓库构建的语言特定贡献者说明,仍保留在各语言的源代码树和贡献者
+README 中。
+
+## 参与贡献
+
+有关贡献的详细信息,请参阅
+[如何为 Apache Fory™ 做贡献](https://github.com/apache/fory/blob/main/CONTRIBUTING.md)。
+对于 AI 辅助的贡献,请遵循
+[AI 贡献政策](https://github.com/apache/fory/blob/main/AI_POLICY.md),包括大量使用 AI 辅助时
+所需的自我审查、双审查者 AI 审查流程、披露和验证证据。
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/development/jmp_generate_file.png b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/development/jmp_generate_file.png
new file mode 100644
index 0000000000..ac142162bd
Binary files /dev/null and b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/development/jmp_generate_file.png differ
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/development/vscode_debug_fory.jpg b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/development/vscode_debug_fory.jpg
new file mode 100644
index 0000000000..2badccaa97
Binary files /dev/null and b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/development/vscode_debug_fory.jpg differ
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/development/vscode_select_debug_run.png b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/development/vscode_select_debug_run.png
new file mode 100644
index 0000000000..674c830a9d
Binary files /dev/null and b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/development/vscode_select_debug_run.png differ
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/grpc/_category_.json b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/grpc/_category_.json
new file mode 100644
index 0000000000..44de805e1a
--- /dev/null
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/grpc/_category_.json
@@ -0,0 +1,6 @@
+{
+  "position": 8,
+  "label": "Fory gRPC",
+  "collapsible": true,
+  "collapsed": true
+}
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/grpc/cpp.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/grpc/cpp.md
new file mode 100644
index 0000000000..163dbf30b4
--- /dev/null
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/grpc/cpp.md
@@ -0,0 +1,262 @@
+---
+title: C++ gRPC
+sidebar_position: 6
+id: cpp
+license: |
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+     http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+---
+
+对于定义了服务的 Schema,Fory 可以生成 C++ gRPC 服务配套代码。生成的代码使用
+gRPC C++ 进行传输,并使用 Fory 序列化请求和响应载荷。该功能要求 gRPC C++
+1.39.0 或更高版本。
+
+当所有 RPC 对等端都由同一份 Fory IDL、protobuf IDL 或 FlatBuffers IDL 生成,
+并且你希望结合 gRPC 传输语义与 Fory 载荷编码时,请使用此模式。如果客户端或工具
+必须直接处理 protobuf 消息字节,请使用标准的 protobuf gRPC 代码生成。
+
+## 添加依赖
+
+使用 Bazel 时,请使用工作区内可见的 Fory 标签。下面的示例适用于将 Fory 作为名为
+`fory` 的外部模块引入的项目:
+
+```bazel
+load("@rules_cc//cc:defs.bzl", "cc_library")
+
+cc_library(
+    name = "greeter_generated",
+    srcs = ["generated/demo_greeter.service.grpc.cc"],
+    hdrs = glob(["generated/*.h"]),
+    includes = ["generated"],
+    deps = [
+        "@fory//cpp/fory/serialization:fory_serialization",
+        "@grpc//:grpc++",
+    ],
+)
+```
+
+在 Fory 仓库内,请使用 `//cpp/fory/serialization:fory_serialization`,而不是
+`@fory//cpp/fory/serialization:fory_serialization`。
+
+使用 CMake 时,请先确保 Fory C++ 目标可见。如果使用已安装的 Fory 包,请调用
+`find_package(Fory CONFIG REQUIRED)`,然后添加生成的源文件,并显式链接这两个库:
+
+```cmake
+find_package(Fory CONFIG REQUIRED)
+find_package(gRPC 1.39.0 CONFIG REQUIRED)
+
+add_library(greeter_generated
+    generated/demo_greeter.service.grpc.cc
+)
+target_compile_features(greeter_generated PUBLIC cxx_std_17)
+target_include_directories(greeter_generated PUBLIC generated)
+target_link_libraries(greeter_generated PUBLIC
+    fory::serialization
+    gRPC::grpc++
+)
+```
+
+如果项目通过 `FetchContent` 或 `add_subdirectory` 引入 Fory,请先完成引入,再链接
+`fory::serialization`。
+
+请使用与服务技术栈其余部分兼容的依赖版本。
+
+## 定义服务
+
+服务定义可以来自 Fory IDL、protobuf IDL 或 FlatBuffers `rpc_service` 定义。
+Fory IDL 服务如下所示:
+
+```protobuf
+package demo.greeter;
+
+message HelloRequest {
+  string name = 1;
+}
+
+message HelloReply {
+  string reply = 1;
+}
+
+service Greeter {
+  rpc SayHello (HelloRequest) returns (HelloReply);
+}
+```
+
+使用 `--grpc` 生成 C++ 模型和 gRPC 配套代码:
+
+```bash
+foryc service.fdl --cpp_out=./generated/cpp --grpc
+```
+
+对于此 Schema,C++ 生成器会输出:
+
+| 文件                           | 用途                                     |
+| ------------------------------ | ---------------------------------------- |
+| `demo_greeter.h`               | Fory 模型类型和注册辅助函数              |
+| `demo_greeter.service.h`       | 同步服务接口和路径常量                   |
+| `demo_greeter.service.grpc.h`  | 同步客户端、服务器适配器和 Fory 编解码器 |
+| `demo_greeter.service.grpc.cc` | Stub 调用和服务器路由实现                |
+
+在应用代码中包含生成的 gRPC 头文件,并在构建目标中只编译一次
+`demo_greeter.service.grpc.cc`。编解码器会直接生成在 gRPC 头文件中;没有单独的
+Fory gRPC 运行时源文件。
+
+## 实现服务器
+
+实现生成的同步接口,并将生成的服务器适配器注册到常规 gRPC C++ 服务器。
+
+```cpp
+#include "demo_greeter.service.grpc.h"
+
+#include <memory>
+#include <grpcpp/server_builder.h>
+#include <grpcpp/security/server_credentials.h>
+
+class MyGreeter final : public demo::greeter::service::Greeter {
+ public:
+  ::grpc::Status SayHello(::grpc::ServerContext* context,
+                          const ::demo::greeter::HelloRequest* request,
+                          ::demo::greeter::HelloReply* response) override {
+    (void)context;
+    response->set_reply("Hello, " + request->name());
+    return ::grpc::Status::OK;
+  }
+};
+
+MyGreeter implementation;
+demo::greeter::service::grpc::GreeterServiceGrpc service(&implementation);
+::grpc::ServerBuilder builder;
+builder.AddListeningPort("0.0.0.0:50051", ::grpc::InsecureServerCredentials());
+builder.RegisterService(&service);
+std::unique_ptr<::grpc::Server> server = builder.BuildAndStart();
+server->Wait();
+```
+
+生成的服务代码会序列化生成的请求和响应类型,因此服务实现无需手动执行 Fory 注册。
+
+## 创建客户端
+
+使用生成的同步客户端 Stub:
+
+```cpp
+#include "demo_greeter.service.grpc.h"
+
+#include <iostream>
+#include <grpcpp/create_channel.h>
+#include <grpcpp/security/credentials.h>
+
+auto channel =
+    ::grpc::CreateChannel("localhost:50051", ::grpc::InsecureChannelCredentials());
+auto stub = demo::greeter::service::grpc::GreeterStub::NewStub(channel);
+
+demo::greeter::HelloRequest request;
+request.set_name("Fory");
+demo::greeter::HelloReply response;
+::grpc::ClientContext context;
+::grpc::Status status = stub->SayHello(&context, request, &response);
+if (status.ok()) {
+  std::cout << response.reply() << std::endl;
+}
+```
+
+通道配置、凭证、截止时间、元数据、取消、重试策略和传输生命周期仍由 gRPC C++ 负责。
+
+## 流式 RPC
+
+Fory 服务定义可以使用一元、服务器流式、客户端流式和双向流式 RPC 形式:
+
+```protobuf
+service Greeter {
+  rpc SayHello (HelloRequest) returns (HelloReply);
+  rpc LotsOfReplies (HelloRequest) returns (stream HelloReply);
+  rpc LotsOfGreetings (stream HelloRequest) returns (HelloReply);
+  rpc Chat (stream HelloRequest) returns (stream HelloReply);
+}
+```
+
+生成的 C++ 代码遵循同步 gRPC C++ 约定:
+
+- 一元方法返回 `grpc::Status`,并使用请求和响应指针。
+- 服务器流式方法在客户端返回 `std::unique_ptr<grpc::ClientReader<U>>`,在服务器端
+  接收 `grpc::ServerWriter<U>*`。
+- 客户端流式方法在客户端返回 `std::unique_ptr<grpc::ClientWriter<T>>`,在服务器端
+  接收 `grpc::ServerReader<T>*`。
+- 双向流式方法在客户端返回 `std::unique_ptr<grpc::ClientReaderWriter<T, U>>`,
+  在服务器端接收 `grpc::ServerReaderWriter<U, T>*`。
+- 每个消息帧(包括流式消息帧)都使用生成的编解码器。
+
+在服务实现中,请以生成的方法签名作为具体请求和响应类型的准确信息来源:
+
+```cpp
+::grpc::Status LotsOfReplies(
+    ::grpc::ServerContext* context,
+    const ::demo::greeter::HelloRequest* request,
+    ::grpc::ServerWriter<::demo::greeter::HelloReply>* writer) override {
+  (void)context;
+  ::demo::greeter::HelloReply reply;
+  reply.set_reply("Hello, " + request->name());
+  writer->Write(reply);
+  reply.set_reply("Welcome, " + request->name());
+  writer->Write(reply);
+  return ::grpc::Status::OK;
+}
+```
+
+生成的客户端会返回标准 gRPC C++ 流式辅助对象:
+
+```cpp
+demo::greeter::HelloRequest request;
+request.set_name("Fory");
+
+::grpc::ClientContext context;
+auto reader = stub->LotsOfReplies(&context, request);
+demo::greeter::HelloReply reply;
+while (reader->Read(&reply)) {
+  std::cout << reply.reply() << std::endl;
+}
+::grpc::Status status = reader->Finish();
+```
+
+使用 `WritesDone()` 结束客户端流,并始终调用 `Finish()` 获取最终状态。
+
+生成的描述符会为 gRPC 路径保留 IDL 中准确的服务名和方法名。
+
+## gRPC 栈行为
+
+生成的服务配套代码只提供 Fory 序列化和 gRPC C++ 绑定。运行行为仍遵循标准 gRPC C++
+行为:
+
+- 截止时间和取消
+- TLS 和身份认证
+- 状态码和元数据
+- 通道和服务器生命周期
+- 同步流式反压
+
+## 故障排除
+
+### 缺少 gRPC C++ 头文件或符号
+
+将上文所示的 gRPC C++ 依赖添加到编译生成服务文件的目标中,并确保生成的
+`.service.grpc.cc` 文件只编译一次。
+
+### `UNIMPLEMENTED`
+
+确认已通过 `ServerBuilder::RegisterService(...)` 注册生成的服务器适配器,并确认
+客户端和服务器由相同的包名、服务名和方法名生成。
+
+### Protobuf 客户端无法解码服务
+
+Fory gRPC 配套代码的消息不使用 protobuf 编码格式。对于 Fory 生成的服务,请使用
+Fory 生成的客户端;如果需要支持通用 protobuf 客户端,请另行提供 protobuf 服务端点。
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/grpc/csharp.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/grpc/csharp.md
new file mode 100644
index 0000000000..f601800ff4
--- /dev/null
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/version-1.6.0/grpc/csharp.md
@@ -0,0 +1,300 @@
+---
+title: C# gRPC
+sidebar_position: 10
+id: csharp
+license: |
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+     http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+---
+
+对于定义了服务的 Schema,Fory 可以生成 C# gRPC 服务配套代码。生成的代码使用常规的
+gRPC 客户端、服务基类、方法描述符、元数据、截止时间、取消和状态码,而请求与响应对象
+使用 Fory(而不是 protobuf)进行序列化。
+
+当 RPC 两端都由同一份 Fory IDL、protobuf IDL 或 FlatBuffers IDL 生成,并且双方都
+需要 Fory 编码的消息体时,请使用此模式。对于必须供通用 protobuf 客户端、反射工具或
+其他要求 protobuf 消息字节的组件使用的 API,请采用常规的 protobuf gRPC 代码生成。
+
+## 添加依赖
+
+`Apache.Fory` 包不会引入 gRPC 依赖。请在编译或运行生成服务配套代码的应用中添加 gRPC
+包。
+
+服务器项目:
+
+```xml
+<ItemGroup>
+  <PackageReference Include="Apache.Fory" Version="1.6.0" />
+  <PackageReference Include="Grpc.AspNetCore" Version="2.71.0" />
+</ItemGroup>
+```
+
+客户端项目:
+
+```xml
+<ItemGroup>
+  <PackageReference Include="Apache.Fory" Version="1.6.0" />
+  <PackageReference Include="Grpc.Core.Api" Version="2.71.0" />
+  <PackageReference Include="Grpc.Net.Client" Version="2.71.0" />
+</ItemGroup>
+```
+
+生成的配套代码使用 `Grpc.Core.Api` 提供的 API。服务器和客户端应用可以照常选择 gRPC
+托管包或传输包。
+
+## 定义服务
+
+服务定义可以来自 Fory IDL、protobuf IDL 或 FlatBuffers `rpc_service` 定义。
+Fory IDL 服务如下所示:
+
+```protobuf
+package demo.greeter;
+option csharp_namespace = "Demo.Greeter";
+
+message HelloRequest {
+  string name = 1;
+}
+
+message HelloReply {
+  string reply = 1;
+}
+
+service Greeter {
+  rpc SayHello (HelloRequest) returns (HelloReply);
+}
+```
+
+使用 `--grpc` 生成 C# 模型和 gRPC 配套代码:
+
+```bash
+foryc service.fdl --csharp_out=./Generated --grpc
+```
+
+对于此 Schema,C# 生成器会输出:
+
+| 文件                                        | 用途                          |
+| ------------------------------------------- | ----------------------------- |
+| `Demo/Greeter/Service.cs`                   | Fory 模型类型和 Schema 模块   |
+| `Demo/Greeter/GreeterGrpc.cs`               | gRPC 服务基类、客户端和描述符 |
+| `ServiceForyModule` in `Service.cs`         | 生成类型的 Fory 注册模块      |
+| `Greeter.GreeterBase` in `GreeterGrpc.cs`   | 服务器实现的基类              |
+| `Greeter.GreeterClient` in `GreeterGrpc.cs` | 用于 gRPC 调用的客户端 Stub   |
+
+## 实现服务器
+
+扩展生成的 `Greeter.GreeterBase` 类,并通过常规 ASP.NET Core gRPC 托管映射该服务:
+
+```csharp
+using System.Threading.Tasks;
+using Demo.Greeter;
+using Grpc.Core;
+
+var builder = WebApplication.CreateBuilder(args);
+builder.Services.AddGrpc();
+
+var app = builder.Build();
+app.MapGrpcService<GreeterService>();
+app.Run();
+
+public sealed class GreeterService : Greeter.GreeterBase
+{
+    public override Task<HelloReply> SayHello(
+        HelloRequest request,
+        ServerCallContext context)
+    {
+        return Task.FromResult(new HelloReply
+        {
+            Reply = "Hello, " + request.Name,
+        });
+    }
+}
+```
+
+服务配套代码使用的生成 Schema 模块会注册生成的请求和响应类型,因此服务实现无需执行
+自定义序列化器注册。
+
+## 创建客户端
+
+将生成的客户端与 `Grpc.Net.Client` 调用执行器配合使用:
+
+```csharp
+using Demo.Greeter;
+using Grpc.Net.Client;
+
+using GrpcChannel channel = GrpcChannel.ForAddress("https://localhost:5001");
+var client = new Greeter.GreeterClient(channel.CreateCallInvoker());
+
+HelloReply reply = await client.SayHelloAsync(
+    new HelloRequest { Name = "Fory" });
+Console.WriteLine(reply.Reply);
+```
+
+生成的客户端还会公开同步一元方法和常规 gRPC 流式调用形式。
+
+## 流式 RPC
+
+Fory 服务定义可以使用相同的 gRPC 流式形式:
+
+```protobuf
+service Greeter {
+  rpc SayHello (HelloRequest) returns (HelloReply);
+  rpc LotsOfReplies (HelloRequest) returns (stream HelloReply);
+  rpc LotsOfGreetings (stream HelloRequest) returns (HelloReply);
+  rpc Chat (stream HelloRequest) returns (stream HelloReply);
+}
+```
+
+生成的 C# 服务方法遵循 gRPC C# 约定:
+
+| IDL 形式                                  | 服务器方法                                                                    | 客户端方法                                        |
+| ----------------------------------------- | ----------------------------------------------------------------------------- | ------------------------------------------------- |
+| `rpc A (Req) returns (Res)`               | `Task<Res> A(Req request, ServerCallContext context)`                         | `Res A(...)` 和 `AsyncUnaryCall<Res> AAsync(...)` |
+| `rpc A (Req) returns (stream Res)`        | `Task A(Req request, IServerStreamWriter<Res> responseStream, ...)`           | `AsyncServerStreamingCall<Res> A(...)`            |
+| `rpc A (stream Req) returns (Res)`        | `Task<Res> A(IAsyncStreamReader<Req> requestStream, ...)`                     | `AsyncClientStreamingCall<Req, Res> A(...)`       |
+| `rpc A (stream Req) returns (stream Res)` | `Task A(IAsyncStreamReader<Req> requestStream, IServerStreamWriter<Res> ...)` | `AsyncDuplexStreamingCall<Req, Res> A(...)`       |
+
+服务器实现可以直接使用生成的流式方法形式:
+
+```csharp
+using System.Collections.Generic;
+using System.Threading.Tasks;
+using Demo.Greeter;
+using Grpc.Core;
+
+public sealed class GreeterService : Greeter.GreeterBase
+{
+    public override async Task LotsOfReplies(
+        HelloRequest request,
+        IServerStreamWriter<HelloReply> responseStream,
+        ServerCallContext context)
+    {
+        foreach (string reply in new[]
+        {
+            "Hello, " + request.Name,
+            "Welcome, " + request.Name,
+        })
+        {
+            await responseStream.WriteAsync(new HelloReply { Reply = reply });
+        }
+    }
+
+    public override async Task<HelloReply> LotsOfGreetings(
+        IAsyncStreamReader<HelloRequest> requestStream,
+        ServerCallContext context)
+    {
+        List<string> names = new();
+        while (await requestStream.MoveNext(context.CancellationToken))
+        {
+            names.Add(requestStream.Current.Name);
+        }
+
+        return new HelloReply { Reply = string.Join(", ", names) };
+    }
+
+    public override async Task Chat(
+        IAsyncStreamReader<HelloRequest> requestStream,
+        IServerStreamWriter<HelloReply> responseStream,
+        ServerCallContext context)
+    {
+        while (await requestStream.MoveNext(context.CancellationToken))
+        {
+            await responseStream.WriteAsync(new HelloReply
+            {
+                Reply = "Hello, " + requestStream.Current.Name,
+            });
+        }
+    }
+}
+```
+
+生成的客户端会返回标准 gRPC 流式调用对象:
+
+```csharp
+using System;
+using System.Threading;
+using System.Threading.Tasks;
+using Demo.Greeter;
+using Grpc.Core;
+
+using AsyncServerStreamingCall<HelloReply> replies =
+    client.LotsOfReplies(new HelloRequest { Name = "Fory" });
+while (await replies.ResponseStream.MoveNext(CancellationToken.None))
+{
+    Console.WriteLine(replies.ResponseStream.Current.Reply);
+}
+
+using AsyncClientStreamingCall<HelloRequest, HelloReply> greetings =
+    client.LotsOfGreetings();
+await greetings.RequestStream.WriteAsync(new HelloRequest { Name = "Ada" });
+await greetings.RequestStream.WriteAsync(new HelloRequest { Name = "Grace" });
+await greetings.RequestStream.CompleteAsync();
+HelloReply summary = await greetings.ResponseAsync;
+Console.WriteLine(summary.Reply);
+
+using AsyncDuplexStreamingCall<HelloRequest, HelloReply> chat = client.Chat();
+Task readTask = Task.Run(async () =>
+{
+    while (await chat.ResponseStream.MoveNext(CancellationToken.None))
+    {
+        Console.WriteLine(chat.ResponseStream.Current.Reply);
+    }
+});
+await chat.RequestStream.WriteAsync(new HelloRequest { Name = "Fory" });
+await chat.RequestStream.CompleteAsync();
+await readTask;
+```
+
+生成的描述符会为 gRPC 路径保留 IDL 中准确的服务名和方法名。
+
+## 生成的模块名称
+
+C# Schema 模块名称来自源文件的主文件名,而不是 `csharp_namespace` 或 gRPC 服务名。
+
+例如:
+
+| Schema 输入        | 模型文件         | Schema 模块             |
+| ------------------ | ---------------- | ----------------------- |
+| `service.fdl`      | `Service.cs`     | `ServiceForyModule`     |
+| `order-events.fdl` | `OrderEvents.cs` | `OrderEventsForyModule` |
+| `greeter.fdl`      | `Greeter.cs`     | `GreeterForyModule`     |
+| `Greeter.fdl`      | `Greeter.cs`     | `GreeterForyModule`     |
+
+名为 `Greeter` 的 gRPC 服务仍会生成服务配套文件 `GreeterGrpc.cs`,但不会改变 Schema
+模块名称。这样,多个 Schema 文件就可以指向同一个 C# 命名空间而不会发生冲突。生成器
+不会生成基于命名空间或服务名派生的模块别名。
+
+## gRPC 栈行为
+
+生成的服务代码只替换请求和响应的序列化。所有常规 gRPC 运行功能仍由你的 gRPC 技术栈
+负责:
... 93568 lines suppressed ...


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@fory.apache.org
For additional commands, e-mail: commits-help@fory.apache.org