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

chaokunyang pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/fory.git


The following commit(s) were added to refs/heads/main by this push:
     new f0dcba471 docs(xlang): update language support docs (#3700)
f0dcba471 is described below

commit f0dcba471ccad50502e15d533f110dc33f6bf0f0
Author: Shawn Yang <[email protected]>
AuthorDate: Sat May 23 16:55:46 2026 +0800

    docs(xlang): update language support docs (#3700)
    
    ## Why?
    
    
    
    ## What does this PR do?
    
    
    
    ## Related issues
    
    
    
    ## AI Contribution Checklist
    
    
    
    - [ ] Substantial AI assistance was used in this PR: `yes` / `no`
    - [ ] If `yes`, I included a completed [AI Contribution
    
Checklist](https://github.com/apache/fory/blob/main/AI_POLICY.md#9-contributor-checklist-for-ai-assisted-prs)
    in this PR description and the required `AI Usage Disclosure`.
    - [ ] If `yes`, my PR description includes the required `ai_review`
    summary and screenshot evidence of the final clean AI review results
    from both fresh reviewers on the current PR diff or current HEAD after
    the latest code changes.
    
    
    
    ## Does this PR introduce any user-facing change?
    
    
    
    - [ ] Does this PR introduce any public API change?
    - [ ] Does this PR introduce any binary protocol compatibility change?
    
    ## Benchmark
---
 README.md                                      |   5 +-
 docs/README.md                                 |  20 +-
 docs/compiler/compiler-guide.md                |  53 ++--
 docs/compiler/flatbuffers-idl.md               |   6 +-
 docs/compiler/generated-code.md                |  54 ++--
 docs/compiler/index.md                         |  21 +-
 docs/compiler/schema-idl.md                    | 348 ++++++++++++++-----------
 docs/guide/cpp/configuration.md                |   4 +-
 docs/guide/cpp/index.md                        |   3 +-
 docs/guide/cpp/native-serialization.md         |   5 +-
 docs/guide/cpp/xlang-serialization.md          |   4 +-
 docs/guide/csharp/index.md                     |   3 +-
 docs/guide/dart/index.md                       |   5 +-
 docs/guide/go/configuration.md                 |   3 +-
 docs/guide/go/index.md                         |   7 +-
 docs/guide/go/native-serialization.md          |   3 +-
 docs/guide/go/xlang-serialization.md           |   4 +-
 docs/guide/java/native-serialization.md        |   5 +-
 docs/guide/java/xlang-serialization.md         |   2 +-
 docs/guide/javascript/index.md                 |   8 +-
 docs/guide/javascript/xlang-serialization.md   |   5 +-
 docs/guide/python/configuration.md             |  18 +-
 docs/guide/python/native-serialization.md      |   3 +-
 docs/guide/python/xlang-serialization.md       |   5 +-
 docs/guide/rust/index.md                       |   3 +-
 docs/guide/rust/native-serialization.md        |   3 +-
 docs/guide/rust/xlang-serialization.md         |   3 +-
 docs/guide/xlang/getting-started.md            | 174 ++++++++++++-
 docs/guide/xlang/index.md                      |  18 +-
 docs/guide/xlang/serialization.md              |   4 +-
 docs/specification/xlang_serialization_spec.md |   3 +-
 docs/specification/xlang_type_mapping.md       | 114 ++++----
 32 files changed, 601 insertions(+), 315 deletions(-)

diff --git a/README.md b/README.md
index bb318b713..f46fe5008 100644
--- a/README.md
+++ b/README.md
@@ -669,8 +669,9 @@ val fory = ForyKotlin.builder()
 
 Fory IDL is Fory's schema language for shared data models. It supports
 references, nullable fields, lists, maps, arrays, enums, messages, and unions,
-and generates native data structures for supported languages. Use it when
-multiple languages need one shared contract.
+and generates native data structures for Java, Python, C++, Go, Rust,
+JavaScript/TypeScript, C#, Swift, Dart, Scala, and Kotlin. Use it when multiple
+languages need one shared contract.
 
 ```protobuf
 package tree;
diff --git a/docs/README.md b/docs/README.md
index fc36d7c86..678c60ffb 100644
--- a/docs/README.md
+++ b/docs/README.md
@@ -1,9 +1,14 @@
 # User Guide
 
 - For xlang serialization, see the [xlang guide](guide/xlang/index.md).
-- For Java serialization, see the [Java guide](guide/java/index.md).
+- For language-specific serialization, see the [Java](guide/java/index.md),
+  [Python](guide/python/index.md), [C++](guide/cpp/index.md),
+  [Go](guide/go/index.md), [Rust](guide/rust/index.md),
+  [JavaScript/TypeScript](guide/javascript/index.md),
+  [C#](guide/csharp/index.md), [Swift](guide/swift/index.md),
+  [Dart](guide/dart/index.md), [Scala](guide/scala/index.md), and
+  [Kotlin](guide/kotlin/index.md) guides.
 - For row format, see the [row format spec](specification/row_format_spec.md).
-- For Scala serialization, see the [Scala guide](guide/scala/index.md).
 - For using Apache Fory™ with GraalVM native image, see [graalvm 
support](guide/java/graalvm-support.md) doc.
 
 ## Fory IDL Schema
@@ -28,10 +33,19 @@ Define cross-language data structures with Fory IDL and 
generate native code for
 - Benchmark source code:
   - Java: [Java Benchmarks Source](../benchmarks/java)
   - Python: [Python Benchmarks Source](../benchmarks/python)
+  - C++: [C++ Benchmarks Source](../benchmarks/cpp)
+  - Go: [Go Benchmarks Source](../benchmarks/go)
   - Rust: [Rust Benchmarks Source](../benchmarks/rust/)
 - Benchmark result:
   - Java: [Java Benchmarks](benchmarks/java/)
-  - Rust: [Rust Benchmarks](benchmarks/rust).
+  - Python: [Python Benchmarks](benchmarks/python/)
+  - C++: [C++ Benchmarks](benchmarks/cpp/)
+  - Go: [Go Benchmarks](benchmarks/go/)
+  - Rust: [Rust Benchmarks](benchmarks/rust/)
+  - JavaScript/TypeScript: [JavaScript Benchmarks](benchmarks/javascript/)
+  - C#: [C# Benchmarks](benchmarks/csharp/)
+  - Swift: [Swift Benchmarks](benchmarks/swift/)
+  - Dart: [Dart Benchmarks](benchmarks/dart/)
 
 ## Development
 
diff --git a/docs/compiler/compiler-guide.md b/docs/compiler/compiler-guide.md
index cfa7dd547..7aeea2fe6 100644
--- a/docs/compiler/compiler-guide.md
+++ b/docs/compiler/compiler-guide.md
@@ -63,7 +63,7 @@ Compile options:
 | `--go_out=DST_DIR`                    | Generate Go code in DST_DIR          
                 | (none)        |
 | `--rust_out=DST_DIR`                  | Generate Rust code in DST_DIR        
                 | (none)        |
 | `--csharp_out=DST_DIR`                | Generate C# code in DST_DIR          
                 | (none)        |
-| `--javascript_out=DST_DIR`            | Generate JavaScript code in DST_DIR  
                 | (none)        |
+| `--javascript_out=DST_DIR`            | Generate JavaScript/TypeScript code 
in DST_DIR        | (none)        |
 | `--swift_out=DST_DIR`                 | Generate Swift code in DST_DIR       
                 | (none)        |
 | `--dart_out=DST_DIR`                  | Generate Dart code in DST_DIR        
                 | (none)        |
 | `--scala_out=DST_DIR`                 | Generate Scala 3 code in DST_DIR     
                 | (none)        |
@@ -123,7 +123,7 @@ foryc --scan-generated --root ./src --dry-run
 foryc schema.fdl
 ```
 
-**Compile for specific languages:**
+**Compile for a selected subset of languages:**
 
 ```bash
 foryc schema.fdl --lang java,python,csharp,javascript,swift,dart,kotlin
@@ -185,7 +185,7 @@ foryc src/main.fdl -I libs/common,libs/types --proto_path 
third_party/
 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 
--go_out=./go/gen --csharp_out=./csharp/gen --javascript_out=./javascript/src 
--swift_out=./swift/gen --dart_out=./dart/gen --kotlin_out=./kotlin/gen
+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/
@@ -260,19 +260,19 @@ Compiling src/main.fdl...
 
 ## Supported Languages
 
-| Language   | Flag         | Output Extension | Description                   
         |
-| ---------- | ------------ | ---------------- | 
-------------------------------------- |
-| Java       | `java`       | `.java`          | POJOs with Fory annotations   
         |
-| Python     | `python`     | `.py`            | Dataclasses with type hints   
         |
-| Go         | `go`         | `.go`            | Structs with struct tags      
         |
-| Rust       | `rust`       | `.rs`            | Structs with derive macros    
         |
-| C++        | `cpp`        | `.h`             | Structs with FORY macros      
         |
-| C#         | `csharp`     | `.cs`            | Classes with Fory attributes  
         |
-| JavaScript | `javascript` | `.ts`            | Interfaces with registration 
function  |
-| Swift      | `swift`      | `.swift`         | Fory Swift model macros       
         |
-| Dart       | `dart`       | `.dart`          | `@ForyStruct` classes with 
annotations |
-| Scala      | `scala`      | `.scala`         | Scala 3 models with macro 
derivation   |
-| Kotlin     | `kotlin`     | `.kt`            | Kotlin models with KSP 
serializers     |
+| Language              | Flag         | Output Extension | Description        
                    |
+| --------------------- | ------------ | ---------------- | 
-------------------------------------- |
+| Java                  | `java`       | `.java`          | POJOs with Fory 
annotations            |
+| Python                | `python`     | `.py`            | Dataclasses with 
type hints            |
+| Go                    | `go`         | `.go`            | Structs with 
struct tags               |
+| Rust                  | `rust`       | `.rs`            | Structs with 
derive macros             |
+| C++                   | `cpp`        | `.h`             | Structs with FORY 
macros               |
+| C#                    | `csharp`     | `.cs`            | Classes with Fory 
attributes           |
+| JavaScript/TypeScript | `javascript` | `.ts`            | Interfaces with 
registration function  |
+| Swift                 | `swift`      | `.swift`         | Fory Swift model 
macros                |
+| Dart                  | `dart`       | `.dart`          | `@ForyStruct` 
classes with annotations |
+| Scala                 | `scala`      | `.scala`         | Scala 3 models 
with macro derivation   |
+| Kotlin                | `kotlin`     | `.kt`            | Kotlin models with 
KSP serializers     |
 
 ## Output Structure
 
@@ -342,7 +342,7 @@ generated/
 - Namespace matches package (dots to `::`)
 - Header guards and forward declarations
 
-### JavaScript
+### JavaScript/TypeScript
 
 ```
 generated/
@@ -422,6 +422,25 @@ generated/
 - Unions use Scala 3 ADT `enum` with `@ForyUnion`, `@ForyCase`, and an 
`UnknownCase`
 - Schema module object included
 
+### Kotlin
+
+```
+generated/
+└── kotlin/
+    └── example/
+        ├── User.kt
+        ├── Status.kt
+        ├── Animal.kt
+        └── ExampleForyModule.kt
+```
+
+- One Kotlin source file per generated type
+- Package structure uses `kotlin_package` when set, otherwise the Fory IDL 
package
+- Messages use `@ForyStruct` and KSP-generated serializers
+- Enums use stable Fory enum IDs
+- Unions use sealed classes with `@ForyUnion`, `@ForyCase`, and an 
unknown-case carrier
+- Schema module object included
+
 ### C# IDL Matrix Verification
 
 Run the end-to-end C# IDL matrix (FDL/IDL/Proto/FBS generation plus roundtrip 
tests):
diff --git a/docs/compiler/flatbuffers-idl.md b/docs/compiler/flatbuffers-idl.md
index e57d1c8a4..71a249f03 100644
--- a/docs/compiler/flatbuffers-idl.md
+++ b/docs/compiler/flatbuffers-idl.md
@@ -187,9 +187,11 @@ table Node {
 Using `.fbs` as input to Fory still produces normal Fory-generated code, not
 FlatBuffers `ByteBuffer`-style APIs.
 
-- Java: POJOs/records with Fory metadata
+- Java, Scala, and Kotlin: JVM model types with Fory metadata and registration 
helpers
 - Python: dataclasses plus registration helpers
-- Go/Rust/C++: native structs and Fory metadata
+- C++, Go, and Rust: native structs and Fory metadata
+- JavaScript/TypeScript: TypeScript interfaces and registration helpers
+- C#, Swift, and Dart: annotated or macro-based model types with registration 
helpers
 
 The serialization format is Fory binary protocol, not FlatBuffers wire format.
 
diff --git a/docs/compiler/generated-code.md b/docs/compiler/generated-code.md
index beee9cf15..ed2d02c05 100644
--- a/docs/compiler/generated-code.md
+++ b/docs/compiler/generated-code.md
@@ -818,11 +818,11 @@ public static class AddressbookForyRegistration
 When explicit type IDs are not provided, generated registration uses computed
 numeric IDs (same behavior as other targets).
 
-## JavaScript
+## JavaScript/TypeScript
 
 ### Output Layout
 
-JavaScript output is one `.ts` file per schema, for example:
+JavaScript/TypeScript output is one `.ts` file per schema, for example:
 
 - `<javascript_out>/addressbook.ts`
 
@@ -1376,30 +1376,32 @@ object AddressbookForyModule extends 
org.apache.fory.ForyModule {
 
 ### Nested Type Shape
 
-| Language   | Nested type form               |
-| ---------- | ------------------------------ |
-| Java       | `Person.PhoneNumber`           |
-| Python     | `Person.PhoneNumber`           |
-| Rust       | `person::PhoneNumber`          |
-| C++        | `Person::PhoneNumber`          |
-| Go         | `Person_PhoneNumber` (default) |
-| C#         | `Person.PhoneNumber`           |
-| JavaScript | `Person.PhoneNumber`           |
-| Swift      | `Person.PhoneNumber`           |
-| Dart       | `Person_PhoneNumber`           |
+| Language              | Nested type form               |
+| --------------------- | ------------------------------ |
+| Java                  | `Person.PhoneNumber`           |
+| Python                | `Person.PhoneNumber`           |
+| Rust                  | `person::PhoneNumber`          |
+| C++                   | `Person::PhoneNumber`          |
+| Go                    | `Person_PhoneNumber` (default) |
+| C#                    | `Person.PhoneNumber`           |
+| JavaScript/TypeScript | `Person.PhoneNumber`           |
+| Swift                 | `Person.PhoneNumber`           |
+| Dart                  | `Person_PhoneNumber`           |
+| Kotlin                | `PersonPhoneNumber`            |
+| Scala                 | `Person.PhoneNumber`           |
 
 ### Byte Helper Naming
 
-| Language   | Helpers                   |
-| ---------- | ------------------------- |
-| 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 | (via `fory.serialize()`)  |
-| Swift      | `toBytes` / `fromBytes`   |
-| Dart       | (via `fory.serialize()`)  |
+| Language              | Helpers                   |
+| --------------------- | ------------------------- |
+| 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 | (via `fory.serialize()`)  |
+| Swift                 | `toBytes` / `fromBytes`   |
+| Dart                  | (via `fory.serialize()`)  |
diff --git a/docs/compiler/index.md b/docs/compiler/index.md
index 0b227d7e2..b61f49917 100644
--- a/docs/compiler/index.md
+++ b/docs/compiler/index.md
@@ -21,10 +21,11 @@ license: |
 
 Fory IDL is a schema definition language for Apache Fory that enables type-safe
 cross-language serialization. Define your data structures once and generate
-native data structure code for Java, Python, Go, Rust, C++, C#, Swift,
-JavaScript, Dart, Scala, and Kotlin. Fory IDL can also describe RPC services;
-for Java and Python, the compiler can generate gRPC service companions that use
-Fory serialization for request and response payloads.
+native data structure code for Java, Python, C++, Go, Rust,
+JavaScript/TypeScript, C#, Swift, Dart, Scala, and Kotlin. Fory IDL can also
+describe RPC services; for Java and Python, the compiler can generate gRPC
+service companions that use Fory serialization for request and response
+payloads.
 
 ## Example Schema
 
@@ -128,7 +129,7 @@ Generated code uses native language constructs:
 - Rust: Structs with `#[derive(ForyObject)]`
 - C++: Structs with `FORY_STRUCT` macros
 - C#: Classes with `[ForyObject]` and registration helpers
-- JavaScript: Interfaces with registration function
+- JavaScript/TypeScript: Interfaces with registration function
 - Swift: Fory model macros with field/case metadata and registration helpers
 - Dart: `@ForyStruct` classes with `@ForyField` annotations and registration 
helpers
 - Scala: Scala 3 `case class`, normal class, enum, and ADT enum models with 
macro-derived serializers
@@ -227,11 +228,11 @@ message Example {
 
 Fory IDL types map to native types in each language:
 
-| Fory IDL Type | Java      | Python         | Go       | Rust     | C++       
    | C#       | JavaScript | Swift    | Dart     | Scala     |
-| ------------- | --------- | -------------- | -------- | -------- | 
------------- | -------- | ---------- | -------- | -------- | --------- |
-| `int32`       | `int`     | `pyfory.Int32` | `int32`  | `i32`    | `int32_t` 
    | `int`    | `number`   | `Int32`  | `int`    | `Int`     |
-| `string`      | `String`  | `str`          | `string` | `String` | 
`std::string` | `string` | `string`   | `String` | `String` | `String`  |
-| `bool`        | `boolean` | `bool`         | `bool`   | `bool`   | `bool`    
    | `bool`   | `boolean`  | `Bool`   | `bool`   | `Boolean` |
+| Fory IDL Type | 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` |
 
 See [Type System](schema-idl.md#type-system) for complete mappings.
 
diff --git a/docs/compiler/schema-idl.md b/docs/compiler/schema-idl.md
index 8b5835faa..f5cd9da4c 100644
--- a/docs/compiler/schema-idl.md
+++ b/docs/compiler/schema-idl.md
@@ -100,17 +100,19 @@ package com.example.models alias models_v1;
 
 **Language Mapping:**
 
-| Language   | Package Usage                     |
-| ---------- | --------------------------------- |
-| Java       | Java package                      |
-| Python     | Module name (dots to underscores) |
-| Go         | Package name (last component)     |
-| Rust       | Module name (dots to underscores) |
-| C++        | Namespace (dots to `::`)          |
-| C#         | Namespace                         |
-| JavaScript | Module name (last segment)        |
-| Dart       | Library name (package segments)   |
-| Kotlin     | Kotlin package                    |
+| Language              | Package Usage                     |
+| --------------------- | --------------------------------- |
+| Java                  | Java package                      |
+| Python                | Module name (dots to underscores) |
+| Go                    | Package name (last component)     |
+| Rust                  | Module name (dots to underscores) |
+| C++                   | Namespace (dots to `::`)          |
+| C#                    | Namespace                         |
+| JavaScript/TypeScript | TypeScript module name            |
+| Swift                 | Namespace wrapper or prefix       |
+| Dart                  | Library name (package segments)   |
+| Scala                 | Scala package                     |
+| Kotlin                | Kotlin package                    |
 
 ## File-Level Options
 
@@ -596,15 +598,19 @@ FDL does not support `option ...;` statements inside enum 
bodies.
 
 ### Language Mapping
 
-| Language   | Implementation                         |
-| ---------- | -------------------------------------- |
-| Java       | `enum Status { UNKNOWN, ACTIVE, ... }` |
-| Python     | `class Status(IntEnum): UNKNOWN = 0`   |
-| Go         | `type Status int32` with constants     |
-| Rust       | `#[repr(i32)] enum Status { Unknown }` |
-| C++        | `enum class Status : int32_t { ... }`  |
-| JavaScript | `export enum Status { UNKNOWN, ... }`  |
-| Dart       | `enum Status { unknown, active, ... }` |
+| Language              | Implementation                         |
+| --------------------- | -------------------------------------- |
+| Java                  | `enum Status { UNKNOWN, ACTIVE, ... }` |
+| Python                | `class Status(IntEnum): UNKNOWN = 0`   |
+| Go                    | `type Status int32` with constants     |
+| 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` with stable IDs          |
+| Dart                  | `enum Status { unknown, active, ... }` |
+| Scala                 | Scala 3 `enum Status`                  |
+| Kotlin                | `enum class Status`                    |
 
 ### Enum Prefix Stripping
 
@@ -621,15 +627,19 @@ enum DeviceTier {
 
 **Generated code:**
 
-| Language   | Output                                    | Style          |
-| ---------- | ----------------------------------------- | -------------- |
-| Java       | `UNKNOWN, TIER1, TIER2`                   | Scoped enum    |
-| Rust       | `Unknown, Tier1, Tier2`                   | Scoped enum    |
-| C++        | `UNKNOWN, TIER1, TIER2`                   | Scoped enum    |
-| Python     | `UNKNOWN, TIER1, TIER2`                   | Scoped IntEnum |
-| Go         | `DeviceTierUnknown, DeviceTierTier1, ...` | Unscoped const |
-| JavaScript | `UNKNOWN, TIER1, TIER2`                   | Scoped enum    |
-| Dart       | `unknown, tier1, tier2`                   | Scoped enum    |
+| Language              | Output                                    | Style    
      |
+| --------------------- | ----------------------------------------- | 
-------------- |
+| Java                  | `UNKNOWN, TIER1, TIER2`                   | Scoped 
enum    |
+| Rust                  | `Unknown, Tier1, Tier2`                   | Scoped 
enum    |
+| C++                   | `UNKNOWN, TIER1, TIER2`                   | Scoped 
enum    |
+| Python                | `UNKNOWN, TIER1, TIER2`                   | Scoped 
IntEnum |
+| Go                    | `DeviceTierUnknown, DeviceTierTier1, ...` | Unscoped 
const |
+| JavaScript/TypeScript | `UNKNOWN, TIER1, TIER2`                   | Scoped 
enum    |
+| C#                    | `Unknown, Tier1, Tier2`                   | Scoped 
enum    |
+| Swift                 | `unknown, tier1, tier2`                   | Scoped 
enum    |
+| Dart                  | `unknown, tier1, tier2`                   | Scoped 
enum    |
+| Scala                 | `Unknown, Tier1, Tier2`                   | Scoped 
enum    |
+| Kotlin                | `UNKNOWN, TIER1, TIER2`                   | Scoped 
enum    |
 
 **Note:** The prefix is only stripped if the remainder is a valid identifier. 
For example, `DEVICE_TIER_1` is kept unchanged because `1` is not a valid 
identifier name.
 
@@ -699,15 +709,19 @@ message Person {  // Auto-generated when 
enable_auto_type_id = true
 
 ### Language Mapping
 
-| Language   | Implementation                      |
-| ---------- | ----------------------------------- |
-| Java       | POJO class with getters/setters     |
-| Python     | `@dataclass` class                  |
-| Go         | Struct with exported fields         |
-| Rust       | Struct with `#[derive(ForyObject)]` |
-| C++        | Struct with `FORY_STRUCT` macro     |
-| JavaScript | `export interface` declaration      |
-| Dart       | `@ForyStruct` `final class`         |
+| Language              | Implementation                      |
+| --------------------- | ----------------------------------- |
+| Java                  | POJO class with getters/setters     |
+| Python                | `@dataclass` class                  |
+| Go                    | Struct with exported fields         |
+| Rust                  | Struct with `#[derive(ForyObject)]` |
+| C++                   | Struct with `FORY_STRUCT` macro     |
+| C#                    | `[ForyObject]` class                |
+| JavaScript/TypeScript | `export interface` declaration      |
+| Swift                 | `@ForyStruct` struct or class       |
+| Dart                  | `@ForyStruct` `final class`         |
+| Scala                 | Scala 3 `case class` or class       |
+| Kotlin                | `data class` or class               |
 
 Type IDs control cross-language registration for messages, unions, and enums. 
See
 [Type IDs](#type-ids) for auto-generation, aliases, and collision handling.
@@ -824,15 +838,19 @@ message OtherMessage {
 
 ### Language-Specific Generation
 
-| Language   | Nested Type Generation                                          
                  |
-| ---------- | 
---------------------------------------------------------------------------------
 |
-| Java       | Static inner classes (`SearchResponse.Result`)                  
                  |
-| Python     | Nested classes within dataclass                                 
                  |
-| Go         | Flat structs with underscore (`SearchResponse_Result`, 
configurable to camelcase) |
-| Rust       | Nested modules (`search_response::Result`)                      
                  |
-| C++        | Nested classes (`SearchResponse::Result`)                       
                  |
-| JavaScript | Flat names (`Result`)                                           
                  |
-| Dart       | Flat classes with underscore (`SearchResponse_Result`)          
                  |
+| Language              | Nested Type Generation                               
                             |
+| --------------------- | 
---------------------------------------------------------------------------------
 |
+| Java                  | Static inner classes (`SearchResponse.Result`)       
                             |
+| Python                | Nested classes within dataclass                      
                             |
+| Go                    | Flat structs with underscore 
(`SearchResponse_Result`, configurable to camelcase) |
+| Rust                  | Nested modules (`search_response::Result`)           
                             |
+| C++                   | Nested classes (`SearchResponse::Result`)            
                             |
+| C#                    | Nested classes (`SearchResponse.Result`)             
                             |
+| JavaScript/TypeScript | Flat names (`Result`)                                
                             |
+| Swift                 | Nested namespace wrappers or flattened names         
                             |
+| Dart                  | Flat classes with underscore 
(`SearchResponse_Result`)                            |
+| Scala                 | Nested companion/object scope                        
                             |
+| Kotlin                | Flat generated names                                 
                             |
 
 **Note:** Go defaults to underscore-separated nested names; set `option 
go_nested_type_style = "camelcase";` to use concatenated names. Rust emits 
nested modules for nested types.
 
@@ -986,16 +1004,19 @@ message User {
 
 **Generated Code:**
 
-| Language   | Non-optional       | Optional                          |
-| ---------- | ------------------ | --------------------------------- |
-| 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` |
-| JavaScript | `name: string`     | `name?: string \| null`           |
-| Dart       | `String name`      | `String? email`                   |
-| Scala      | `name: String`     | `email: Option[String]`           |
+| Language              | Non-optional       | Optional                        
  |
+| --------------------- | ------------------ | 
--------------------------------- |
+| 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?`                
  |
 
 **Default Values:**
 
@@ -1024,16 +1045,19 @@ message Node {
 
 **Generated Code:**
 
-| Language   | Without `ref`  | With `ref`                                 |
-| ---------- | -------------- | ------------------------------------------ |
-| Java       | `Node parent`  | `Node parent` with `@Ref`                  |
-| Python     | `parent: Node` | `parent: Node = pyfory.field(ref=True)`    |
-| Go         | `Parent Node`  | `Parent *Node` with `fory:"ref"`           |
-| Rust       | `parent: Node` | `parent: Rc<Node>`                         |
-| C++        | `Node parent`  | `std::shared_ptr<Node> parent`             |
-| JavaScript | `parent: Node` | `parent: Node` (no ref distinction)        |
-| Dart       | `Node parent`  | `Node parent` with `@ForyField(ref: true)` |
-| Scala      | `parent: Node` | `@Ref parent: Node`                        |
+| Language              | Without `ref`  | With `ref`                          
       |
+| --------------------- | -------------- | 
------------------------------------------ |
+| Java                  | `Node parent`  | `Node parent` with `@Ref`           
       |
+| Python                | `parent: Node` | `parent: Node = 
pyfory.field(ref=True)`    |
+| Go                    | `Parent Node`  | `Parent *Node` with `fory:"ref"`    
       |
+| Rust                  | `parent: Node` | `parent: Rc<Node>`                  
       |
+| C++                   | `Node parent`  | `std::shared_ptr<Node> parent`      
       |
+| C#                    | `Node parent`  | `Node? parent` with runtime ref 
tracking   |
+| JavaScript/TypeScript | `parent: Node` | `parent: Node` (no ref distinction) 
       |
+| Swift                 | `Node parent`  | class reference with runtime ref 
tracking  |
+| Dart                  | `Node parent`  | `Node parent` with `@ForyField(ref: 
true)` |
+| Scala                 | `parent: Node` | `@Ref parent: Node`                 
       |
+| Kotlin                | `parent: Node` | `@Ref parent: Node?`                
       |
 
 Rust uses `Rc` and `RcWeak` by default for ref-tracked fields. Use
 `ref(thread_safe=true)` when the generated Rust type must use `Arc` or
@@ -1064,15 +1088,19 @@ message Document {
 
 **Generated Code:**
 
-| Language   | Type                       |
-| ---------- | -------------------------- |
-| Java       | `List<String>`             |
-| Python     | `List[str]`                |
-| Go         | `[]string`                 |
-| Rust       | `Vec<String>`              |
-| C++        | `std::vector<std::string>` |
-| JavaScript | `string[]`                 |
-| Dart       | `List<String>`             |
+| Language              | Type                       |
+| --------------------- | -------------------------- |
+| 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>`             |
 
 ### Combining Modifiers
 
@@ -1129,6 +1157,10 @@ collections. Field modifiers (`optional`, `ref`) control 
nullability and
 reference tracking, while `list<T>` and `array<T>` choose collection schema 
kind
 (see [Field Modifiers](#field-modifiers)).
 
+The compact tables in this section show common generated carriers. For the
+complete 1.0 runtime surface, including C#, Swift, Dart, Scala, and Kotlin, see
+the [xlang type-mapping specification](../specification/xlang_type_mapping.md).
+
 ### Primitive Types
 
 | Type        | Description                                    | Size     |
@@ -1156,15 +1188,15 @@ reference tracking, while `list<T>` and `array<T>` 
choose collection schema kind
 
 #### Boolean
 
-| Language   | Type                  | Notes              |
-| ---------- | --------------------- | ------------------ |
-| Java       | `boolean` / `Boolean` | Primitive or boxed |
-| Python     | `bool`                |                    |
-| Go         | `bool`                |                    |
-| Rust       | `bool`                |                    |
-| C++        | `bool`                |                    |
-| JavaScript | `boolean`             |                    |
-| Dart       | `bool`                |                    |
+| Language              | Type                  | Notes              |
+| --------------------- | --------------------- | ------------------ |
+| Java                  | `boolean` / `Boolean` | Primitive or boxed |
+| Python                | `bool`                |                    |
+| Go                    | `bool`                |                    |
+| Rust                  | `bool`                |                    |
+| C++                   | `bool`                |                    |
+| JavaScript/TypeScript | `boolean`             |                    |
+| Dart                  | `bool`                |                    |
 
 #### Integer Types
 
@@ -1179,12 +1211,12 @@ Fory IDL provides fixed-width signed integers (varint 
encoding for 32/64-bit by
 
 **Language Mapping (Signed):**
 
-| Fory IDL | Java    | Python         | Go      | Rust  | C++       | 
JavaScript         | 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 | 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 provides fixed-width unsigned integers (varint encoding for 32/64-bit 
by default):
 
@@ -1197,12 +1229,12 @@ Fory IDL provides fixed-width unsigned integers (varint 
encoding for 32/64-bit b
 
 **Language Mapping (Unsigned):**
 
-| Fory IDL | Java    | Python          | Go       | Rust  | C++        | 
JavaScript         | 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` |
+| 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` |
 
 #### Integer Encoding Modifiers
 
@@ -1235,62 +1267,62 @@ Underscore spellings for integer encoding are not FDL 
type names.
 
 **Language Mapping:**
 
-| Fory IDL   | Java       | Python annotation/value     | Go                  
| Rust       | C++                | JavaScript | 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`  |
+| Fory IDL   | Java       | Python annotation/value     | 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`  |
 
 #### String Type
 
-| Language   | Type          | Notes                 |
-| ---------- | ------------- | --------------------- |
-| Java       | `String`      | Immutable             |
-| Python     | `str`         |                       |
-| Go         | `string`      | Immutable             |
-| Rust       | `String`      | Owned, heap-allocated |
-| C++        | `std::string` |                       |
-| JavaScript | `string`      |                       |
-| Dart       | `String`      |                       |
+| Language              | Type          | Notes                 |
+| --------------------- | ------------- | --------------------- |
+| Java                  | `String`      | Immutable             |
+| Python                | `str`         |                       |
+| Go                    | `string`      | Immutable             |
+| Rust                  | `String`      | Owned, heap-allocated |
+| C++                   | `std::string` |                       |
+| JavaScript/TypeScript | `string`      |                       |
+| Dart                  | `String`      |                       |
 
 #### Bytes Type
 
-| Language   | Type                   | Notes     |
-| ---------- | ---------------------- | --------- |
-| Java       | `byte[]`               |           |
-| Python     | `bytes`                | Immutable |
-| Go         | `[]byte`               |           |
-| Rust       | `Vec<u8>`              |           |
-| C++        | `std::vector<uint8_t>` |           |
-| JavaScript | `Uint8Array`           |           |
-| Dart       | `Uint8List`            |           |
+| Language              | Type                   | Notes     |
+| --------------------- | ---------------------- | --------- |
+| Java                  | `byte[]`               |           |
+| Python                | `bytes`                | Immutable |
+| Go                    | `[]byte`               |           |
+| Rust                  | `Vec<u8>`              |           |
+| C++                   | `std::vector<uint8_t>` |           |
+| JavaScript/TypeScript | `Uint8Array`           |           |
+| Dart                  | `Uint8List`            |           |
 
 #### Temporal Types
 
 ##### Date
 
-| Language   | Type                        | Notes                             
                                          |
-| ---------- | --------------------------- | 
--------------------------------------------------------------------------- |
-| Java       | `java.time.LocalDate`       |                                   
                                          |
-| Python     | `datetime.date`             |                                   
                                          |
-| Go         | `time.Time`                 | Time portion ignored              
                                          |
-| Rust       | `fory::Date`                | Set 
`rust_use_chrono_temporal_types = true` to generate `chrono::NaiveDate` |
-| C++        | `fory::serialization::Date` |                                   
                                          |
-| JavaScript | `Date`                      |                                   
                                          |
-| Dart       | `LocalDate`                 | Fory package type                 
                                          |
+| Language              | Type                        | Notes                  
                                                     |
+| --------------------- | --------------------------- | 
--------------------------------------------------------------------------- |
+| Java                  | `java.time.LocalDate`       |                        
                                                     |
+| Python                | `datetime.date`             |                        
                                                     |
+| Go                    | `time.Time`                 | Time portion ignored   
                                                     |
+| Rust                  | `fory::Date`                | Set 
`rust_use_chrono_temporal_types = true` to generate `chrono::NaiveDate` |
+| C++                   | `fory::serialization::Date` |                        
                                                     |
+| JavaScript/TypeScript | `Date`                      |                        
                                                     |
+| Dart                  | `LocalDate`                 | Fory package type      
                                                     |
 
 ##### Timestamp
 
-| Language   | Type                             | Notes                        
                                                   |
-| ---------- | -------------------------------- | 
------------------------------------------------------------------------------- 
|
-| Java       | `java.time.Instant`              | UTC-based                    
                                                   |
-| Python     | `datetime.datetime`              |                              
                                                   |
-| Go         | `time.Time`                      |                              
                                                   |
-| Rust       | `fory::Timestamp`                | Set 
`rust_use_chrono_temporal_types = true` to generate `chrono::NaiveDateTime` |
-| C++        | `fory::serialization::Timestamp` |                              
                                                   |
-| JavaScript | `Date`                           |                              
                                                   |
-| Dart       | `Timestamp`                      | Fory package type            
                                                   |
+| Language              | Type                             | Notes             
                                                              |
+| --------------------- | -------------------------------- | 
------------------------------------------------------------------------------- 
|
+| Java                  | `java.time.Instant`              | UTC-based         
                                                              |
+| Python                | `datetime.datetime`              |                   
                                                              |
+| Go                    | `time.Time`                      |                   
                                                              |
+| Rust                  | `fory::Timestamp`                | Set 
`rust_use_chrono_temporal_types = true` to generate `chrono::NaiveDateTime` |
+| C++                   | `fory::serialization::Timestamp` |                   
                                                              |
+| JavaScript/TypeScript | `Date`                           |                   
                                                              |
+| Dart                  | `Timestamp`                      | Fory package type 
                                                              |
 
 ##### Duration
 
@@ -1305,15 +1337,15 @@ Underscore spellings for integer encoding are not FDL 
type names.
 
 #### Any
 
-| Language   | Type           | Notes                |
-| ---------- | -------------- | -------------------- |
-| Java       | `Object`       | Runtime type written |
-| Python     | `Any`          | Runtime type written |
-| Go         | `any`          | Runtime type written |
-| Rust       | `Box<dyn Any>` | Runtime type written |
-| C++        | `std::any`     | Runtime type written |
-| JavaScript | `any`          | Runtime type written |
-| Dart       | `Object?`      | Runtime type written |
+| Language              | Type           | Notes                |
+| --------------------- | -------------- | -------------------- |
+| Java                  | `Object`       | Runtime type written |
+| Python                | `Any`          | Runtime type written |
+| Go                    | `any`          | Runtime type written |
+| Rust                  | `Box<dyn Any>` | Runtime type written |
+| C++                   | `std::any`     | Runtime type written |
+| JavaScript/TypeScript | `any`          | Runtime type written |
+| Dart                  | `Object?`      | Runtime type written |
 
 **Example:**
 
@@ -1335,15 +1367,15 @@ message Envelope [id=122] {
 
 **Generated Code (`Envelope.payload`):**
 
-| Language   | Generated Field Type    |
-| ---------- | ----------------------- |
-| Java       | `Object payload`        |
-| Python     | `payload: Any`          |
-| Go         | `Payload any`           |
-| Rust       | `payload: Box<dyn Any>` |
-| C++        | `std::any payload`      |
-| JavaScript | `payload: any`          |
-| Dart       | `Object? payload`       |
+| Language              | Generated Field Type    |
+| --------------------- | ----------------------- |
+| Java                  | `Object payload`        |
+| Python                | `payload: Any`          |
+| Go                    | `Payload any`           |
+| Rust                  | `payload: Box<dyn Any>` |
+| C++                   | `std::any payload`      |
+| JavaScript/TypeScript | `payload: any`          |
+| Dart                  | `Object? payload`       |
 
 **Notes:**
 
@@ -1443,7 +1475,7 @@ message Config {
 
 **Language Mapping:**
 
-| Fory IDL             | Java                   | Python            | Go       
          | Rust                    | C++                              | 
JavaScript            | Dart                |
+| 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::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::map<std::string, User>`    
| `Map<string, User>`   | `Map<String, User>` |
diff --git a/docs/guide/cpp/configuration.md b/docs/guide/cpp/configuration.md
index a693f3209..d829dc8a9 100644
--- a/docs/guide/cpp/configuration.md
+++ b/docs/guide/cpp/configuration.md
@@ -69,8 +69,8 @@ auto fory = Fory::builder()
 ```
 
 When `true`, C++ writes the xlang wire format used by Java, Python, Go, Rust,
-JavaScript, C#, Swift, and Dart. When `false`, C++ writes native-mode payloads
-for C++-only traffic.
+JavaScript/TypeScript, C#, Swift, Dart, Scala, and Kotlin. When `false`, C++
+writes native-mode payloads for C++-only traffic.
 
 **Default:** `true`
 
diff --git a/docs/guide/cpp/index.md b/docs/guide/cpp/index.md
index 9e628f89a..73b91ece5 100644
--- a/docs/guide/cpp/index.md
+++ b/docs/guide/cpp/index.md
@@ -26,7 +26,8 @@ The C++ implementation provides high-performance 
serialization with compile-time
 ## Why Apache Fory™ C++?
 
 - **Fast binary encoding**: Fast serialization and optimized binary protocols
-- **Xlang**: Seamlessly serialize/deserialize data across Java, Python, C++, 
Go, JavaScript, and Rust
+- **Xlang**: Seamlessly serialize/deserialize data across Java, Python, C++, 
Go,
+  Rust, JavaScript/TypeScript, C#, Swift, Dart, Scala, and Kotlin
 - **Type-safe**: Compile-time type checking with macro-based struct 
registration
 - **Reference tracking**: Automatic tracking of shared and circular references
 - **Schema evolution**: Compatible mode for independent schema changes
diff --git a/docs/guide/cpp/native-serialization.md 
b/docs/guide/cpp/native-serialization.md
index 0a530278e..0189d72a7 100644
--- a/docs/guide/cpp/native-serialization.md
+++ b/docs/guide/cpp/native-serialization.md
@@ -23,8 +23,9 @@ C++ native serialization is the C++-only wire mode selected 
with `.xlang(false)`
 writer and reader is C++ and the payload should follow C++ type behavior 
instead of the portable
 xlang type system.
 
-Use [Xlang Serialization](xlang-serialization.md), the default C++ mode, when 
bytes must be read by
-Java, Python, Go, Rust, JavaScript, or another non-C++ Fory runtime.
+Use [Xlang Serialization](xlang-serialization.md), the default C++ mode, when
+bytes must be read by Java, Python, Go, Rust, JavaScript/TypeScript, C#, Swift,
+Dart, Scala, Kotlin, or another non-C++ Fory runtime.
 
 ## When To Use Native Serialization
 
diff --git a/docs/guide/cpp/xlang-serialization.md 
b/docs/guide/cpp/xlang-serialization.md
index 0570c0217..7d4dbcff3 100644
--- a/docs/guide/cpp/xlang-serialization.md
+++ b/docs/guide/cpp/xlang-serialization.md
@@ -23,7 +23,9 @@ This page explains how to use Fory xlang serialization 
between C++ and other lan
 
 ## Overview
 
-Apache Fory™ enables seamless data exchange between C++, Java, Python, Go, 
Rust, and JavaScript. Xlang mode ensures binary compatibility across all 
supported languages.
+Apache Fory™ enables seamless data exchange between C++, Java, Python, Go, 
Rust,
+JavaScript/TypeScript, C#, Swift, Dart, Scala, and Kotlin. Xlang mode ensures
+binary compatibility across all supported languages.
 
 ## Create an Xlang Runtime
 
diff --git a/docs/guide/csharp/index.md b/docs/guide/csharp/index.md
index 531b8958a..9fbb06b01 100644
--- a/docs/guide/csharp/index.md
+++ b/docs/guide/csharp/index.md
@@ -24,7 +24,8 @@ Apache Fory™ C# is a high-performance, cross-language 
serialization runtime fo
 ## Why Fory C#?
 
 - High performance binary serialization for .NET 8+
-- Xlang compatibility with Fory implementations in Java, Python, C++, Go, 
Rust, and JavaScript
+- Xlang compatibility with Fory implementations in Java, Python, C++, Go, Rust,
+  JavaScript/TypeScript, Swift, Dart, Scala, and Kotlin
 - Source-generator-based serializers for `[ForyObject]` types
 - Optional reference tracking for shared and circular object graphs
 - Compatible mode for schema evolution
diff --git a/docs/guide/dart/index.md b/docs/guide/dart/index.md
index c60016edb..74bb39b88 100644
--- a/docs/guide/dart/index.md
+++ b/docs/guide/dart/index.md
@@ -19,7 +19,10 @@ license: |
   limitations under the License.
 ---
 
-Apache Fory™ Dart lets you serialize Dart objects to bytes and deserialize 
them back — including across services written in Java, Go, C#, Python, and 
other Fory-supported languages.
+Apache Fory™ Dart lets you serialize Dart objects to bytes and deserialize them
+back, including across services written in Java, Python, C++, Go, Rust,
+JavaScript/TypeScript, C#, Swift, Scala, Kotlin, and other Fory-supported
+languages.
 
 ## Why Fory Dart?
 
diff --git a/docs/guide/go/configuration.md b/docs/guide/go/configuration.md
index 4ca85273d..d2c73e7f6 100644
--- a/docs/guide/go/configuration.md
+++ b/docs/guide/go/configuration.md
@@ -131,7 +131,8 @@ xlang := fory.New(fory.WithXlang(true))
 **When enabled:**
 
 - Uses cross-language type system
-- Compatible with Java, Python, C++, Rust, JavaScript
+- Compatible with Java, Python, C++, Rust, JavaScript/TypeScript, C#, Swift,
+  Dart, Scala, and Kotlin
 - Type IDs follow xlang specification
 
 **When disabled:**
diff --git a/docs/guide/go/index.md b/docs/guide/go/index.md
index fb74931d6..84ebb77a1 100644
--- a/docs/guide/go/index.md
+++ b/docs/guide/go/index.md
@@ -24,7 +24,8 @@ Apache Fory Go is a high-performance serialization library 
for Go. It supports x
 ## Why Fory Go?
 
 - **High Performance**: Fast serialization and optimized binary protocols
-- **Xlang**: Seamless data exchange with Java, Python, C++, Rust, and 
JavaScript
+- **Xlang**: Seamless data exchange with Java, Python, C++, Rust,
+  JavaScript/TypeScript, C#, Swift, Dart, Scala, and Kotlin
 - **Automatic Serialization**: No IDL definitions or schema compilation 
required
 - **Reference Tracking**: Built-in support for circular references and shared 
objects
 - **Type Safety**: Strong typing with schema-aware serializers
@@ -120,7 +121,9 @@ See [Supported Types](supported-types.md) for the complete 
type mapping.
 
 ## Xlang Serialization
 
-Fory Go is fully compatible with other Fory implementations. Data serialized 
in Go can be deserialized in Java, Python, C++, Rust, or JavaScript:
+Fory Go is fully compatible with other Fory implementations. Data serialized in
+Go can be deserialized in Java, Python, C++, Rust, JavaScript/TypeScript, C#,
+Swift, Dart, Scala, or Kotlin:
 
 ```go
 // Go serialization
diff --git a/docs/guide/go/native-serialization.md 
b/docs/guide/go/native-serialization.md
index 00dde847d..0dc6bc0ce 100644
--- a/docs/guide/go/native-serialization.md
+++ b/docs/guide/go/native-serialization.md
@@ -24,7 +24,8 @@ when every writer and reader is a Go service and the payload 
should follow Go's
 of the portable xlang type system.
 
 Use [Xlang Serialization](xlang-serialization.md), the default Go mode, when 
bytes must be read by
-Java, Python, C++, Rust, JavaScript, or another non-Go Fory runtime.
+Java, Python, C++, Rust, JavaScript/TypeScript, C#, Swift, Dart, Scala, Kotlin,
+or another non-Go Fory runtime.
 
 ## When To Use Native Serialization
 
diff --git a/docs/guide/go/xlang-serialization.md 
b/docs/guide/go/xlang-serialization.md
index e7df613b7..6ef2d8e58 100644
--- a/docs/guide/go/xlang-serialization.md
+++ b/docs/guide/go/xlang-serialization.md
@@ -19,7 +19,9 @@ license: |
   limitations under the License.
 ---
 
-Fory Go enables seamless data exchange with Java, Python, C++, Rust, and 
JavaScript. This guide covers xlang compatibility and type mapping.
+Fory Go enables seamless data exchange with Java, Python, C++, Rust,
+JavaScript/TypeScript, C#, Swift, Dart, Scala, and Kotlin. This guide covers
+xlang compatibility and type mapping.
 
 ## Create an Xlang Runtime
 
diff --git a/docs/guide/java/native-serialization.md 
b/docs/guide/java/native-serialization.md
index 133c0d4ad..7dd6fe58d 100644
--- a/docs/guide/java/native-serialization.md
+++ b/docs/guide/java/native-serialization.md
@@ -44,8 +44,9 @@ Use native serialization when:
 - Large primitive arrays or binary payloads should use native-mode out-of-band 
buffers.
 - You are replacing Java-only serialization frameworks and want the broadest 
Java object surface.
 
-Use xlang serialization instead when the payload must be read by Python, C++, 
Go, Rust,
-JavaScript/TypeScript, C#, Swift, Dart, or another non-Java runtime.
+Use xlang serialization instead when the payload must be read by Python, C++, 
Go,
+Rust, JavaScript/TypeScript, C#, Swift, Dart, Scala, Kotlin, or another
+non-Java runtime.
 
 ## Create a Native Runtime
 
diff --git a/docs/guide/java/xlang-serialization.md 
b/docs/guide/java/xlang-serialization.md
index 425d5b41b..8d6ea9d52 100644
--- a/docs/guide/java/xlang-serialization.md
+++ b/docs/guide/java/xlang-serialization.md
@@ -20,7 +20,7 @@ license: |
 ---
 
 Apache Fory™ xlang serialization is the Java wire mode for payloads that must 
be read by Python,
-Rust, Go, JavaScript, C++, C#, Swift, Dart, or another non-Java Fory runtime. 
Java defaults to
+Rust, Go, JavaScript/TypeScript, C++, C#, Swift, Dart, Scala, Kotlin, or 
another non-Java Fory runtime. Java defaults to
 xlang mode with compatible schema evolution, but examples set the mode 
explicitly so the payload
 contract is visible in code.
 
diff --git a/docs/guide/javascript/index.md b/docs/guide/javascript/index.md
index 49d4de729..86280097c 100644
--- a/docs/guide/javascript/index.md
+++ b/docs/guide/javascript/index.md
@@ -19,11 +19,15 @@ license: |
   limitations under the License.
 ---
 
-Apache Fory JavaScript lets you serialize JavaScript and TypeScript objects to 
bytes and deserialize them back — including across services written in Java, 
Python, Go, Rust, Swift, and other Fory-supported languages.
+Apache Fory JavaScript lets you serialize JavaScript and TypeScript objects to
+bytes and deserialize them back, including across services written in Java,
+Python, C++, Go, Rust, C#, Swift, Dart, Scala, Kotlin, and other
+Fory-supported languages.
 
 ## Why Fory JavaScript?
 
-- **Xlang**: serialize in JavaScript, deserialize in Java, Python, Go, and 
more without writing glue code
+- **Xlang**: serialize in JavaScript/TypeScript, deserialize in any supported
+  Fory runtime without writing glue code
 - **Fast**: serializer code is generated and cached the first time you 
register a schema, not on every call
 - **Reference-aware**: shared references and circular object graphs are 
supported when enabled
 - **Explicit schemas**: field types, nullability, and polymorphism are 
declared once with `Type.*` builders or TypeScript decorators
diff --git a/docs/guide/javascript/xlang-serialization.md 
b/docs/guide/javascript/xlang-serialization.md
index 13ed95674..17f1413b0 100644
--- a/docs/guide/javascript/xlang-serialization.md
+++ b/docs/guide/javascript/xlang-serialization.md
@@ -19,7 +19,10 @@ license: |
   limitations under the License.
 ---
 
-Fory JavaScript serializes to the same binary format as the Java, Python, Go, 
Rust, Swift, and C++ Fory runtimes. You can write a message in JavaScript and 
read it in Java — or any other direction — without any conversion layer.
+Fory JavaScript serializes to the same binary format as the Java, Python, C++,
+Go, Rust, C#, Swift, Dart, Scala, and Kotlin Fory runtimes. You can write a
+message in JavaScript and read it in Java, or any other direction, without a
+conversion layer.
 
 Things to keep in mind:
 
diff --git a/docs/guide/python/configuration.md 
b/docs/guide/python/configuration.md
index fc6433deb..a90219238 100644
--- a/docs/guide/python/configuration.md
+++ b/docs/guide/python/configuration.md
@@ -89,15 +89,15 @@ fory.register(MyClass, typename="my.package.MyClass", 
serializer=custom_serializ
 
 ## Xlang And Native Mode Comparison
 
-| Feature             | Native mode (`xlang=False`)                    | Xlang 
mode (default)                  |
-| ------------------- | ---------------------------------------------- | 
------------------------------------- |
-| Use case            | Python-only applications                       | 
Multi-language systems                |
-| Compatibility       | Python only                                    | Java, 
Go, Rust, C++, JavaScript, etc. |
-| Supported types     | Python object surface                          | 
Cross-language compatible types       |
-| Functions/lambdas   | Supported with trusted dynamic deserialization | Not 
allowed                           |
-| Local classes       | Supported with trusted dynamic deserialization | Not 
allowed                           |
-| Dynamic classes     | Supported with trusted dynamic deserialization | Not 
allowed                           |
-| Schema mode default | Schema-consistent                              | 
Compatible                            |
+| Feature             | Native mode (`xlang=False`)                    | Xlang 
mode (default)                                                             |
+| ------------------- | ---------------------------------------------- | 
--------------------------------------------------------------------------------
 |
+| Use case            | Python-only applications                       | 
Multi-language systems                                                          
 |
+| Compatibility       | Python only                                    | Java, 
C++, Go, Rust, JavaScript/TypeScript, C#, Swift, Dart, Scala, Kotlin, etc. |
+| Supported types     | Python object surface                          | 
Cross-language compatible types                                                 
 |
+| Functions/lambdas   | Supported with trusted dynamic deserialization | Not 
allowed                                                                      |
+| Local classes       | Supported with trusted dynamic deserialization | Not 
allowed                                                                      |
+| Dynamic classes     | Supported with trusted dynamic deserialization | Not 
allowed                                                                      |
+| Schema mode default | Schema-consistent                              | 
Compatible                                                                      
 |
 
 ## Xlang Mode
 
diff --git a/docs/guide/python/native-serialization.md 
b/docs/guide/python/native-serialization.md
index b67bc2f66..ec0f5c4a6 100644
--- a/docs/guide/python/native-serialization.md
+++ b/docs/guide/python/native-serialization.md
@@ -24,7 +24,8 @@ every writer and reader is Python and the payload should 
follow Python's object
 the portable xlang type system.
 
 Use [Xlang Serialization](xlang-serialization.md), the default Python mode, 
when bytes must be read
-by Java, Go, Rust, C++, JavaScript, or another non-Python Fory runtime.
+by Java, C++, Go, Rust, JavaScript/TypeScript, C#, Swift, Dart, Scala, Kotlin,
+or another non-Python Fory runtime.
 
 ## When To Use Native Serialization
 
diff --git a/docs/guide/python/xlang-serialization.md 
b/docs/guide/python/xlang-serialization.md
index 6bf564951..cf1bd19b5 100644
--- a/docs/guide/python/xlang-serialization.md
+++ b/docs/guide/python/xlang-serialization.md
@@ -19,7 +19,10 @@ license: |
   limitations under the License.
 ---
 
-`pyfory` supports xlang object graph serialization, allowing you to serialize 
data in Python and deserialize it in Java, Go, Rust, or other supported 
languages.
+`pyfory` supports xlang object graph serialization, allowing you to serialize
+data in Python and deserialize it in Java, C++, Go, Rust,
+JavaScript/TypeScript, C#, Swift, Dart, Scala, Kotlin, or another supported
+language.
 
 ## Create an Xlang Runtime
 
diff --git a/docs/guide/rust/index.md b/docs/guide/rust/index.md
index e90aebce7..b7b878db9 100644
--- a/docs/guide/rust/index.md
+++ b/docs/guide/rust/index.md
@@ -26,7 +26,8 @@ The Rust implementation provides versatile and 
high-performance serialization wi
 ## Why Apache Fory™ Rust?
 
 - **Fast binary encoding**: Zero-copy deserialization and optimized binary 
protocols
-- **Xlang**: Seamlessly serialize/deserialize data across Java, Python, C++, 
Go, JavaScript, and Rust
+- **Xlang**: Seamlessly serialize/deserialize data across Java, Python, C++,
+  Go, Rust, JavaScript/TypeScript, C#, Swift, Dart, Scala, and Kotlin
 - **Type-safe**: Compile-time type checking with derive macros
 - **Circular references**: Automatic tracking of shared and circular 
references with `Rc`/`Arc` and weak pointers
 - **Polymorphic**: Serialize trait objects with `Box<dyn Trait>`, `Rc<dyn 
Trait>`, and `Arc<dyn Trait>`
diff --git a/docs/guide/rust/native-serialization.md 
b/docs/guide/rust/native-serialization.md
index 387e8deae..cba76f701 100644
--- a/docs/guide/rust/native-serialization.md
+++ b/docs/guide/rust/native-serialization.md
@@ -24,7 +24,8 @@ every writer and reader is Rust and the payload should 
preserve Rust object-grap
 of the portable xlang type system.
 
 Use [Xlang Serialization](xlang-serialization.md), the default Rust mode, when 
bytes must be read
-by Java, Python, C++, Go, JavaScript, or another non-Rust Fory runtime.
+by Java, Python, C++, Go, JavaScript/TypeScript, C#, Swift, Dart, Scala,
+Kotlin, or another non-Rust Fory runtime.
 
 ## When To Use Native Serialization
 
diff --git a/docs/guide/rust/xlang-serialization.md 
b/docs/guide/rust/xlang-serialization.md
index 299e15883..a823a7218 100644
--- a/docs/guide/rust/xlang-serialization.md
+++ b/docs/guide/rust/xlang-serialization.md
@@ -19,7 +19,8 @@ license: |
   limitations under the License.
 ---
 
-Apache Fory™ supports seamless data exchange across multiple languages 
including Java, Python, C++, Go, and JavaScript.
+Apache Fory™ supports seamless data exchange across Java, Python, C++, Go,
+Rust, JavaScript/TypeScript, C#, Swift, Dart, Scala, and Kotlin.
 
 ## Create an Xlang Runtime
 
diff --git a/docs/guide/xlang/getting-started.md 
b/docs/guide/xlang/getting-started.md
index 6fa858e74..c5a7a30b1 100644
--- a/docs/guide/xlang/getting-started.md
+++ b/docs/guide/xlang/getting-started.md
@@ -60,12 +60,53 @@ go get github.com/apache/fory/go/fory
 fory = "1.0.0"
 ```
 
-### JavaScript
+### JavaScript/TypeScript
 
 ```bash
 npm install @apache-fory/core
 ```
 
+For the optional Node.js string fast path:
+
+```bash
+npm install @apache-fory/core @apache-fory/hps
+```
+
+### C\#
+
+```bash
+dotnet add package Apache.Fory --version 1.0.0
+```
+
+### Dart
+
+```bash
+dart pub add fory:^1.0.0
+dart pub add dev:build_runner
+```
+
+### Swift
+
+Add Fory to `Package.swift`:
+
+```swift
+dependencies: [
+  .package(url: "https://github.com/apache/fory.git";, exact: "1.0.0")
+]
+```
+
+### Scala
+
+```scala
+libraryDependencies += "org.apache.fory" %% "fory-scala" % "1.0.0"
+```
+
+### Kotlin
+
+```kotlin
+implementation("org.apache.fory:fory-kotlin:1.0.0")
+```
+
 ### C++
 
 Use Bazel or CMake to build from source. See [C++ Guide](../cpp/index.md) for 
details.
@@ -117,7 +158,7 @@ use fory::Fory;
 let fory = Fory::builder().xlang(true).build();
 ```
 
-### JavaScript
+### JavaScript/TypeScript
 
 ```javascript
 import Fory, { Type } from "@apache-fory/core";
@@ -125,6 +166,50 @@ import Fory, { Type } from "@apache-fory/core";
 const fory = new Fory();
 ```
 
+### C\#
+
+```csharp
+using Apache.Fory;
+
+Fory fory = Fory.Builder().Build();
+```
+
+### Dart
+
+```dart
+import 'package:fory/fory.dart';
+
+final fory = Fory();
+```
+
+### Swift
+
+```swift
+import Fory
+
+let fory = Fory()
+```
+
+### Scala
+
+```scala
+import org.apache.fory.scala.ForyScala
+
+val fory = ForyScala.builder()
+  .withXlang(true)
+  .build()
+```
+
+### Kotlin
+
+```kotlin
+import org.apache.fory.kotlin.ForyKotlin
+
+val fory = ForyKotlin.builder()
+    .withXlang(true)
+    .build()
+```
+
 ### C++
 
 ```cpp
@@ -178,7 +263,7 @@ fory
     .expect("register Person");
 ```
 
-**JavaScript:**
+**JavaScript/TypeScript:**
 
 ```javascript
 const personType = Type.struct(
@@ -199,6 +284,41 @@ fory.register_struct<Person>("example", "Person");
 // fory.register_enum<Color>("example", "Color");
 ```
 
+**C#:**
+
+```csharp
+fory.Register<Person>("example", "Person");
+```
+
+**Dart:**
+
+```dart
+PersonFory.register(
+  fory,
+  Person,
+  namespace: 'example',
+  typeName: 'Person',
+);
+```
+
+**Swift:**
+
+```swift
+try fory.register(Person.self, namespace: "example", name: "Person")
+```
+
+**Scala:**
+
+```scala
+fory.register(classOf[Person], "example.Person")
+```
+
+**Kotlin:**
+
+```kotlin
+fory.register(Person::class.java, "example.Person")
+```
+
 ### Register by ID
 
 Using numeric IDs is faster and produces smaller binary output:
@@ -221,6 +341,24 @@ fory.register_type(Person, type_id=100)
 fory.RegisterStruct(Person{}, 100)
 ```
 
+**Rust:**
+
+```rust
+fory.register::<Person>(100)?;
+```
+
+**JavaScript/TypeScript:**
+
+```javascript
+const personType = Type.struct(
+  { typeId: 100 },
+  {
+    name: Type.string(),
+    age: Type.int32(),
+  },
+);
+```
+
 **C++:**
 
 ```cpp
@@ -229,6 +367,36 @@ fory.register_struct<Person>(100);
 // fory.register_enum<Color>(101);
 ```
 
+**C#:**
+
+```csharp
+fory.Register<Person>(100);
+```
+
+**Dart:**
+
+```dart
+PersonFory.register(fory, Person, id: 100);
+```
+
+**Swift:**
+
+```swift
+fory.register(Person.self, id: 100)
+```
+
+**Scala:**
+
+```scala
+fory.register(classOf[Person], 100)
+```
+
+**Kotlin:**
+
+```kotlin
+fory.register(Person::class.java, 100)
+```
+
 ## Hello World Example
 
 A complete example showing serialization in Java and deserialization in Python:
diff --git a/docs/guide/xlang/index.md b/docs/guide/xlang/index.md
index af7f22b18..dd1f9393d 100644
--- a/docs/guide/xlang/index.md
+++ b/docs/guide/xlang/index.md
@@ -27,7 +27,9 @@ workflow is a better fit.
 ## Features
 
 - **No IDL required**: Serialize objects directly with language model types.
-- **Multi-language support**: Java, Python, C++, Go, Rust, 
JavaScript/TypeScript, C#, Swift, and Dart interoperate through the same xlang 
format.
+- **Multi-language support**: Java, Python, C++, Go, Rust,
+  JavaScript/TypeScript, C#, Swift, Dart, Scala, and Kotlin interoperate 
through
+  the same xlang format.
 - **Reference support**: Shared and circular references work across language 
boundaries when reference tracking is enabled in each runtime.
 - **Schema evolution**: Compatible mode is the xlang default so readers can 
tolerate added, removed, or reordered fields.
 - **Out-of-band buffers**: Language runtimes can expose zero-copy buffer paths 
for large binary data.
@@ -46,6 +48,8 @@ workflow is a better fit.
 | C#                    | Supported | `Apache.Fory`                    |
 | Swift                 | Supported | Swift Package Manager target     |
 | Dart                  | Supported | `fory` package                   |
+| Scala                 | Supported | `org.apache.fory:fory-scala`     |
+| Kotlin                | Supported | `org.apache.fory:fory-kotlin`    |
 
 ## When to Use Xlang Mode
 
@@ -53,7 +57,8 @@ Use xlang mode when:
 
 - Building multi-language microservices
 - Creating polyglot data pipelines
-- Sharing data between frontend (JavaScript) and backend (Java/Python/Go)
+- Sharing data between frontend JavaScript/TypeScript and backend runtimes such
+  as Java, Python, Go, C#, Scala, or Kotlin
 
 Use native mode for same-language traffic in Java, Scala, Kotlin, Python, C++,
 Go, or Rust:
@@ -128,7 +133,7 @@ message Person {
 Generate code:
 
 ```bash
-foryc person.fdl --lang java,python,go,rust,cpp --output ./generated
+foryc person.fdl --lang 
java,python,cpp,go,rust,javascript,csharp,swift,dart,scala,kotlin --output 
./generated
 ```
 
 This generates native language types with consistent field/type mappings 
across all targets.
@@ -159,7 +164,14 @@ For language-specific details and API reference:
 - [Java Xlang Serialization Guide](../java/xlang-serialization.md)
 - [Python Xlang Serialization Guide](../python/xlang-serialization.md)
 - [C++ Xlang Serialization Guide](../cpp/xlang-serialization.md)
+- [Go Xlang Serialization Guide](../go/xlang-serialization.md)
 - [Rust Xlang Serialization Guide](../rust/xlang-serialization.md)
+- [JavaScript/TypeScript Xlang Serialization 
Guide](../javascript/xlang-serialization.md)
+- [C# Xlang Serialization Guide](../csharp/xlang-serialization.md)
+- [Swift Xlang Serialization Guide](../swift/xlang-serialization.md)
+- [Dart Xlang Serialization Guide](../dart/xlang-serialization.md)
+- [Scala Schema IDL And Xlang Guide](../scala/schema-idl.md)
+- [Kotlin Static Generated Serializers 
Guide](../kotlin/static-generated-serializers.md)
 
 ## Specifications
 
diff --git a/docs/guide/xlang/serialization.md 
b/docs/guide/xlang/serialization.md
index cd4e94bf5..fd20751f8 100644
--- a/docs/guide/xlang/serialization.md
+++ b/docs/guide/xlang/serialization.md
@@ -19,7 +19,9 @@ license: |
   limitations under the License.
 ---
 
-This page demonstrates cross-language serialization patterns with examples in 
all supported languages. Data serialized in one language can be deserialized in 
any other supported language.
+This page demonstrates common cross-language serialization patterns. Data 
serialized in one
+supported language can be deserialized in any other supported language when 
peers use matching type
+identity, field schema, and compatibility settings.
 
 ## Serialize Built-in Types
 
diff --git a/docs/specification/xlang_serialization_spec.md 
b/docs/specification/xlang_serialization_spec.md
index 6e1784b40..2c7e16cd0 100644
--- a/docs/specification/xlang_serialization_spec.md
+++ b/docs/specification/xlang_serialization_spec.md
@@ -26,7 +26,8 @@ Apache Fory™ xlang serialization enables automatic 
cross-language object seria
 Key characteristics:
 
 - **Automatic**: No IDL definition, no schema compilation, no manual 
object-to-protocol conversion
-- **Cross-language**: Same binary format works seamlessly across Java, Python, 
C++, Rust, Go, JavaScript, and more
+- **Cross-language**: Same binary format works across Java, Python, C++, Go,
+  Rust, JavaScript/TypeScript, C#, Swift, Dart, Scala, and Kotlin
 - **Reference-aware**: Handles shared references and circular references 
without duplication or infinite recursion
 - **Polymorphic**: Supports object polymorphism with runtime type resolution
 
diff --git a/docs/specification/xlang_type_mapping.md 
b/docs/specification/xlang_type_mapping.md
index 8dd242c20..a50c64261 100644
--- a/docs/specification/xlang_type_mapping.md
+++ b/docs/specification/xlang_type_mapping.md
@@ -23,7 +23,9 @@ Note:
 
 - For type definition, see [Type Systems in 
Spec](xlang_serialization_spec.md#type-systems)
 - `int16_t[n]/vector<T>` indicates `int16_t[n]/vector<int16_t>`
-- The cross-language serialization is not stable, do not use it in your 
production environment.
+- Xlang serialization is the portable wire format shared by Java, Python, C++,
+  Go, Rust, JavaScript/TypeScript, C#, Swift, Dart, Scala, and Kotlin. Keep 
type
+  IDs, names, schemas, and compatibility settings aligned across every peer.
 
 ## User Type IDs
 
@@ -52,61 +54,61 @@ The first column names the Fory schema expression or 
canonical wire tag. Scalar
 encoding rows such as `fixed int32` and `tagged int64` are not FDL type names;
 FDL spells them as an encoding modifier plus a semantic integer type.
 
-| Fory schema / wire tag             | Fory Type ID | Java                     
                 | Python                                    | Javascript       
                     | C++                                                 | 
Golang                                         | Rust                           
   |
-| ---------------------------------- | ------------ | 
----------------------------------------- | 
----------------------------------------- | 
------------------------------------- | 
--------------------------------------------------- | 
---------------------------------------------- | 
--------------------------------- |
-| bool                               | 1            | bool/Boolean             
                 | bool                                      | Boolean          
                     | bool                                                | 
bool                                           | bool                           
   |
-| int8                               | 2            | byte/Byte                
                 | int/pyfory.Int8                           | Type.int8()      
                     | int8_t                                              | 
int8                                           | i8                             
   |
-| int16                              | 3            | short/Short              
                 | int/pyfory.Int16                          | Type.int16()     
                     | int16_t                                             | 
int16                                          | i16                            
   |
-| fixed int32                        | 4            | int/Integer              
                 | int/pyfory.FixedInt32                     | `Type.int32({ 
encoding: "fixed" })`   | int32_t                                             | 
int32                                          | i32                            
   |
-| int32                              | 5            | int/Integer              
                 | int/pyfory.Int32                          | Type.int32()     
                     | int32_t                                             | 
int32                                          | i32                            
   |
-| fixed int64                        | 6            | long/Long                
                 | int/pyfory.FixedInt64                     | `Type.int64({ 
encoding: "fixed" })`   | int64_t                                             | 
int64                                          | i64                            
   |
-| int64                              | 7            | long/Long                
                 | int/pyfory.Int64                          | Type.int64()     
                     | int64_t                                             | 
int64                                          | i64                            
   |
-| tagged int64                       | 8            | long/Long                
                 | int/pyfory.TaggedInt64                    | `Type.int64({ 
encoding: "tagged" })`  | int64_t                                             | 
int64                                          | i64                            
   |
-| uint8                              | 9            | short/Short              
                 | int/pyfory.UInt8                          | Type.uint8()     
                     | uint8_t                                             | 
uint8                                          | u8                             
   |
-| uint16                             | 10           | int/Integer              
                 | int/pyfory.UInt16                         | Type.uint16()    
                     | uint16_t                                            | 
uint16                                         | u16                            
   |
-| fixed uint32                       | 11           | long/Long                
                 | int/pyfory.FixedUInt32                    | `Type.uint32({ 
encoding: "fixed" })`  | uint32_t                                            | 
uint32                                         | u32                            
   |
-| uint32                             | 12           | long/Long                
                 | int/pyfory.UInt32                         | Type.uint32()    
                     | uint32_t                                            | 
uint32                                         | u32                            
   |
-| fixed uint64                       | 13           | long/Long                
                 | int/pyfory.FixedUInt64                    | `Type.uint64({ 
encoding: "fixed" })`  | uint64_t                                            | 
uint64                                         | u64                            
   |
-| uint64                             | 14           | long/Long                
                 | int/pyfory.UInt64                         | Type.uint64()    
                     | uint64_t                                            | 
uint64                                         | u64                            
   |
-| tagged uint64                      | 15           | long/Long                
                 | int/pyfory.TaggedUInt64                   | `Type.uint64({ 
encoding: "tagged" })` | uint64_t                                            | 
uint64                                         | u64                            
   |
-| float8                             | 16           | /                        
                 | /                                         | /                
                     | /                                                   | /  
                                            | /                                 
|
-| float16                            | 17           | Float16                  
                 | native float / pyfory.Float16 annotation  | `number`         
                     | `fory::float16_t`                                   | 
`float16.Float16`                              | `Float16`                      
   |
-| bfloat16                           | 18           | BFloat16                 
                 | native float / pyfory.BFloat16 annotation | `number`         
                     | `fory::bfloat16_t`                                  | 
`bfloat16.BFloat16`                            | `BFloat16`                     
   |
-| float32                            | 19           | float/Float              
                 | float/pyfory.Float32                      | Type.float32()   
                     | float                                               | 
float32                                        | f32                            
   |
-| float64                            | 20           | double/Double            
                 | float/pyfory.Float64                      | Type.float64()   
                     | double                                              | 
float64                                        | f64                            
   |
-| string                             | 21           | String                   
                 | str                                       | String           
                     | string                                              | 
string                                         | String/str                     
   |
-| list                               | 22           | List/Collection          
                 | list/tuple                                | array            
                     | vector                                              | 
slice                                          | Vec                            
   |
-| set                                | 23           | Set                      
                 | set                                       | /                
                     | set                                                 | 
fory.Set                                       | Set                            
   |
-| map                                | 24           | Map                      
                 | dict                                      | Map              
                     | unordered_map                                       | 
map                                            | HashMap                        
   |
-| enum                               | 25           | Enum subclasses          
                 | enum subclasses                           | /                
                     | enum                                                | /  
                                            | enum                              
|
-| named_enum                         | 26           | Enum subclasses          
                 | enum subclasses                           | /                
                     | enum                                                | /  
                                            | enum                              
|
-| struct                             | 27           | pojo/record              
                 | data class                                | object           
                     | struct/class                                        | 
struct                                         | struct                         
   |
-| compatible_struct                  | 28           | pojo/record              
                 | data class                                | object           
                     | struct/class                                        | 
struct                                         | struct                         
   |
-| named_struct                       | 29           | pojo/record              
                 | data class                                | object           
                     | struct/class                                        | 
struct                                         | struct                         
   |
-| named_compatible_struct            | 30           | pojo/record              
                 | data class                                | object           
                     | struct/class                                        | 
struct                                         | struct                         
   |
-| ext                                | 31           | pojo/record              
                 | data class                                | object           
                     | struct/class                                        | 
struct                                         | struct                         
   |
-| named_ext                          | 32           | pojo/record              
                 | data class                                | object           
                     | struct/class                                        | 
struct                                         | struct                         
   |
-| union                              | 33           | Union                    
                 | typing.Union                              | /                
                     | `std::variant<Ts...>`                               | /  
                                            | tagged union enum                 
|
-| none                               | 36           | null                     
                 | None                                      | null             
                     | `std::monostate`                                    | 
nil                                            | `()`                           
   |
-| duration                           | 37           | Duration                 
                 | timedelta                                 | Number           
                     | duration                                            | 
Duration                                       | Duration                       
   |
-| timestamp                          | 38           | Instant                  
                 | datetime                                  | Number           
                     | std::chrono::nanoseconds                            | 
Time                                           | Timestamp                      
   |
-| date                               | 39           | LocalDate                
                 | datetime.date                             | Date             
                     | fory::serialization::Date                           | 
fory.Date                                      | Date                           
   |
-| decimal                            | 40           | BigDecimal               
                 | Decimal                                   | Decimal          
                     | /                                                   | 
fory.Decimal                                   | fory::Decimal                  
   |
-| binary                             | 41           | byte[]                   
                 | bytes                                     | /                
                     | `uint8_t[n]/vector<T>`                              | 
`[n]uint8/[]T`                                 | `Vec<u8>`                      
   |
-| `array<bool>` (bool_array)         | 43           | bool[]                   
                 | BoolArray / ndarray(np.bool\_)            | BoolArray / 
Type.boolArray()          | `bool[n]`                                           
| `[n]bool/[]T`                                  | `Vec<bool>`                  
     |
-| `array<int8>` (int8_array)         | 44           | `@Int8Type byte[]`       
                 | Int8Array / ndarray(int8)                 | Type.int8Array() 
                     | `int8_t[n]/vector<T>`                               | 
`[n]int8/[]T`                                  | `Vec<i8>`                      
   |
-| `array<int16>` (int16_array)       | 45           | short[]                  
                 | Int16Array / ndarray(int16)               | 
Type.int16Array()                     | `int16_t[n]/vector<T>`                  
            | `[n]int16/[]T`                                 | `Vec<i16>`       
                 |
-| `array<int32>` (int32_array)       | 46           | int[]                    
                 | Int32Array / ndarray(int32)               | 
Type.int32Array()                     | `int32_t[n]/vector<T>`                  
            | `[n]int32/[]T`                                 | `Vec<i32>`       
                 |
-| `array<int64>` (int64_array)       | 47           | long[]                   
                 | Int64Array / ndarray(int64)               | 
Type.int64Array()                     | `int64_t[n]/vector<T>`                  
            | `[n]int64/[]T`                                 | `Vec<i64>`       
                 |
-| `array<uint8>` (uint8_array)       | 48           | `@UInt8Type byte[]`      
                 | UInt8Array / ndarray(uint8)               | 
Type.uint8Array()                     | `uint8_t[n]/vector<T>`                  
            | `[n]uint8/[]T`                                 | `Vec<u8>`        
                 |
-| `array<uint16>` (uint16_array)     | 49           | `@UInt16Type short[]`    
                 | UInt16Array / ndarray(uint16)             | 
Type.uint16Array()                    | `uint16_t[n]/vector<T>`                 
            | `[n]uint16/[]T`                                | `Vec<u16>`       
                 |
-| `array<uint32>` (uint32_array)     | 50           | `@UInt32Type int[]`      
                 | UInt32Array / ndarray(uint32)             | 
Type.uint32Array()                    | `uint32_t[n]/vector<T>`                 
            | `[n]uint32/[]T`                                | `Vec<u32>`       
                 |
-| `array<uint64>` (uint64_array)     | 51           | `@UInt64Type long[]`     
                 | UInt64Array / ndarray(uint64)             | 
Type.uint64Array()                    | `uint64_t[n]/vector<T>`                 
            | `[n]uint64/[]T`                                | `Vec<u64>`       
                 |
-| `array<float8>` (float8_array)     | 52           | /                        
                 | /                                         | /                
                     | /                                                   | /  
                                            | /                                 
|
-| `array<float16>` (float16_array)   | 53           | `Float16Array` / 
`@Float16Type short[]`   | Float16Array / ndarray(float16)           | 
Float16Array / Type.float16Array()    | 
`fory::float16_t[n]/std::vector<fory::float16_t>`   | `[N]float16.Float16` / 
`[]float16.Float16`     | `Vec<Float16>` / `[Float16; N]`   |
-| `array<bfloat16>` (bfloat16_array) | 54           | `BFloat16Array` / 
`@BFloat16Type short[]` | BFloat16Array / ndarray(bfloat16)         | 
BFloat16Array / Type.bfloat16Array()  | 
`fory::bfloat16_t[n]/std::vector<fory::bfloat16_t>` | `[N]bfloat16.BFloat16` / 
`[]bfloat16.BFloat16` | `Vec<BFloat16>` / `[BFloat16; N]` |
-| `array<float32>` (float32_array)   | 55           | float[]                  
                 | Float32Array / ndarray(float32)           | 
Type.float32Array()                   | `float[n]/vector<T>`                    
            | `[n]float32/[]T`                               | `Vec<f32>`       
                 |
-| `array<float64>` (float64_array)   | 56           | double[]                 
                 | Float64Array / ndarray(float64)           | 
Type.float64Array()                   | `double[n]/vector<T>`                   
            | `[n]float64/[]T`                               | `Vec<f64>`       
                 |
+| Fory schema / wire tag             | Fory Type ID | Java                     
                 | Python                                    | 
JavaScript/TypeScript                 | C++                                     
            | Go                                             | Rust             
                 | C#                               | Swift                    
| Dart                        | Scala                           | Kotlin        
         |
+| ---------------------------------- | ------------ | 
----------------------------------------- | 
----------------------------------------- | 
------------------------------------- | 
--------------------------------------------------- | 
---------------------------------------------- | 
--------------------------------- | -------------------------------- | 
------------------------ | --------------------------- | 
------------------------------- | ---------------------- |
+| bool                               | 1            | bool/Boolean             
                 | bool                                      | Boolean          
                     | bool                                                | 
bool                                           | bool                           
   | bool                             | Bool                     | bool         
               | Boolean                         | Boolean                |
+| int8                               | 2            | byte/Byte                
                 | int/pyfory.Int8                           | Type.int8()      
                     | int8_t                                              | 
int8                                           | i8                             
   | sbyte                            | Int8                     | int + 
`Int8Type`            | Byte                            | Byte                  
 |
+| int16                              | 3            | short/Short              
                 | int/pyfory.Int16                          | Type.int16()     
                     | int16_t                                             | 
int16                                          | i16                            
   | short                            | Int16                    | int + 
`Int16Type`           | Short                           | Short                 
 |
+| fixed int32                        | 4            | int/Integer              
                 | int/pyfory.FixedInt32                     | `Type.int32({ 
encoding: "fixed" })`   | int32_t                                             | 
int32                                          | i32                            
   | int + `S.Fixed<S.Int32>`         | Int32 + `.fixed`         | int + fixed 
metadata        | Int + fixed metadata            | `@Fixed Int`           |
+| int32                              | 5            | int/Integer              
                 | int/pyfory.Int32                          | Type.int32()     
                     | int32_t                                             | 
int32                                          | i32                            
   | int                              | Int32                    | int + 
`Int32Type`           | Int                             | Int                   
 |
+| fixed int64                        | 6            | long/Long                
                 | int/pyfory.FixedInt64                     | `Type.int64({ 
encoding: "fixed" })`   | int64_t                                             | 
int64                                          | i64                            
   | long + `S.Fixed<S.Int64>`        | Int64 + `.fixed`         | Int64 + 
fixed metadata      | Long + fixed metadata           | `@Fixed Long`          |
+| int64                              | 7            | long/Long                
                 | int/pyfory.Int64                          | Type.int64()     
                     | int64_t                                             | 
int64                                          | i64                            
   | long                             | Int64                    | int / Int64  
               | Long                            | Long                   |
+| tagged int64                       | 8            | long/Long                
                 | int/pyfory.TaggedInt64                    | `Type.int64({ 
encoding: "tagged" })`  | int64_t                                             | 
int64                                          | i64                            
   | long + `S.Tagged<S.Int64>`       | Int64 + `.tagged`        | Int64 + 
tagged metadata     | Long + tagged metadata          | `@Tagged Long`         |
+| uint8                              | 9            | short/Short              
                 | int/pyfory.UInt8                          | Type.uint8()     
                     | uint8_t                                             | 
uint8                                          | u8                             
   | byte                             | UInt8                    | int + 
`Uint8Type`           | Int + unsigned metadata         | UByte                 
 |
+| uint16                             | 10           | int/Integer              
                 | int/pyfory.UInt16                         | Type.uint16()    
                     | uint16_t                                            | 
uint16                                         | u16                            
   | ushort                           | UInt16                   | int + 
`Uint16Type`          | Int + unsigned metadata         | UShort                
 |
+| fixed uint32                       | 11           | long/Long                
                 | int/pyfory.FixedUInt32                    | `Type.uint32({ 
encoding: "fixed" })`  | uint32_t                                            | 
uint32                                         | u32                            
   | uint + `S.Fixed<S.UInt32>`       | UInt32 + `.fixed`        | int + fixed 
uint32 metadata | Long + fixed unsigned metadata  | `@Fixed UInt`          |
+| uint32                             | 12           | long/Long                
                 | int/pyfory.UInt32                         | Type.uint32()    
                     | uint32_t                                            | 
uint32                                         | u32                            
   | uint                             | UInt32                   | int + 
`Uint32Type`          | Long + unsigned metadata        | UInt                  
 |
+| fixed uint64                       | 13           | long/Long                
                 | int/pyfory.FixedUInt64                    | `Type.uint64({ 
encoding: "fixed" })`  | uint64_t                                            | 
uint64                                         | u64                            
   | ulong + `S.Fixed<S.UInt64>`      | UInt64 + `.fixed`        | Uint64 + 
fixed metadata     | Long + fixed unsigned metadata  | `@Fixed ULong`         |
+| uint64                             | 14           | long/Long                
                 | int/pyfory.UInt64                         | Type.uint64()    
                     | uint64_t                                            | 
uint64                                         | u64                            
   | ulong                            | UInt64                   | Uint64       
               | Long + unsigned metadata        | ULong                  |
+| tagged uint64                      | 15           | long/Long                
                 | int/pyfory.TaggedUInt64                   | `Type.uint64({ 
encoding: "tagged" })` | uint64_t                                            | 
uint64                                         | u64                            
   | ulong + `S.Tagged<S.UInt64>`     | UInt64 + `.tagged`       | Uint64 + 
tagged metadata    | Long + tagged unsigned metadata | `@Tagged ULong`        |
+| float8                             | 16           | /                        
                 | /                                         | /                
                     | /                                                   | /  
                                            | /                                 
| /                                | /                        | /               
            | /                               | /                      |
+| float16                            | 17           | Float16                  
                 | native float / pyfory.Float16 annotation  | `number`         
                     | `fory::float16_t`                                   | 
`float16.Float16`                              | `Float16`                      
   | Half                             | Float16                  | double + 
`Float16Type`      | Float16                         | Float16                |
+| bfloat16                           | 18           | BFloat16                 
                 | native float / pyfory.BFloat16 annotation | `number`         
                     | `fory::bfloat16_t`                                  | 
`bfloat16.BFloat16`                            | `BFloat16`                     
   | BFloat16                         | BFloat16                 | double + 
`Bfloat16Type`     | BFloat16                        | BFloat16               |
+| float32                            | 19           | float/Float              
                 | float/pyfory.Float32                      | Type.float32()   
                     | float                                               | 
float32                                        | f32                            
   | float                            | Float                    | Float32      
               | Float                           | Float                  |
+| float64                            | 20           | double/Double            
                 | float/pyfory.Float64                      | Type.float64()   
                     | double                                              | 
float64                                        | f64                            
   | double                           | Double                   | double       
               | Double                          | Double                 |
+| string                             | 21           | String                   
                 | str                                       | String           
                     | string                                              | 
string                                         | String/str                     
   | string                           | String                   | String       
               | String                          | String                 |
+| list                               | 22           | List/Collection          
                 | list/tuple                                | array            
                     | vector                                              | 
slice                                          | Vec                            
   | List<T>                          | [T]                      | List<T>      
               | List[T]                         | List<T>                |
+| set                                | 23           | Set                      
                 | set                                       | /                
                     | set                                                 | 
fory.Set                                       | Set                            
   | HashSet<T>                       | Set<T>                   | Set<T>       
               | Set[T]                          | Set<T>                 |
+| map                                | 24           | Map                      
                 | dict                                      | Map              
                     | unordered_map                                       | 
map                                            | HashMap                        
   | Dictionary<K,V>                  | [K: V]                   | Map<K, V>    
               | Map[K, V]                       | Map<K, V>              |
+| enum                               | 25           | Enum subclasses          
                 | enum subclasses                           | /                
                     | enum                                                | /  
                                            | enum                              
| enum                             | enum                     | enum            
            | Scala 3 enum                    | enum class             |
+| named_enum                         | 26           | Enum subclasses          
                 | enum subclasses                           | /                
                     | enum                                                | /  
                                            | enum                              
| enum                             | enum                     | enum            
            | Scala 3 enum                    | enum class             |
+| struct                             | 27           | pojo/record              
                 | data class                                | object           
                     | struct/class                                        | 
struct                                         | struct                         
   | [ForyObject] class/struct        | @ForyStruct struct/class | @ForyStruct 
class           | case class/class                | data class/class       |
+| compatible_struct                  | 28           | pojo/record              
                 | data class                                | object           
                     | struct/class                                        | 
struct                                         | struct                         
   | [ForyObject] class/struct        | @ForyStruct struct/class | @ForyStruct 
class           | case class/class                | data class/class       |
+| named_struct                       | 29           | pojo/record              
                 | data class                                | object           
                     | struct/class                                        | 
struct                                         | struct                         
   | [ForyObject] class/struct        | @ForyStruct struct/class | @ForyStruct 
class           | case class/class                | data class/class       |
+| named_compatible_struct            | 30           | pojo/record              
                 | data class                                | object           
                     | struct/class                                        | 
struct                                         | struct                         
   | [ForyObject] class/struct        | @ForyStruct struct/class | @ForyStruct 
class           | case class/class                | data class/class       |
+| ext                                | 31           | pojo/record              
                 | data class                                | object           
                     | struct/class                                        | 
struct                                         | struct                         
   | [ForyObject] class/struct        | @ForyStruct struct/class | @ForyStruct 
class           | case class/class                | data class/class       |
+| named_ext                          | 32           | pojo/record              
                 | data class                                | object           
                     | struct/class                                        | 
struct                                         | struct                         
   | [ForyObject] class/struct        | @ForyStruct struct/class | @ForyStruct 
class           | case class/class                | data class/class       |
+| union                              | 33           | Union                    
                 | typing.Union                              | /                
                     | `std::variant<Ts...>`                               | /  
                                            | tagged union enum                 
| Union subclass                   | tagged enum              | @ForyUnion 
class            | ADT enum                        | sealed class           |
+| none                               | 36           | null                     
                 | None                                      | null             
                     | `std::monostate`                                    | 
nil                                            | `()`                           
   | null                             | nil                      | null         
               | null                            | null                   |
+| duration                           | 37           | Duration                 
                 | timedelta                                 | Number           
                     | duration                                            | 
Duration                                       | Duration                       
   | TimeSpan                         | Duration                 | Duration     
               | java.time.Duration              | kotlin.time.Duration   |
+| timestamp                          | 38           | Instant                  
                 | datetime                                  | Number           
                     | std::chrono::nanoseconds                            | 
Time                                           | Timestamp                      
   | DateTime/DateTimeOffset          | Date                     | Timestamp    
               | java.time.Instant               | java.time.Instant      |
+| date                               | 39           | LocalDate                
                 | datetime.date                             | Date             
                     | fory::serialization::Date                           | 
fory.Date                                      | Date                           
   | DateOnly                         | LocalDate                | LocalDate    
               | java.time.LocalDate             | java.time.LocalDate    |
+| decimal                            | 40           | BigDecimal               
                 | Decimal                                   | Decimal          
                     | /                                                   | 
fory.Decimal                                   | fory::Decimal                  
   | decimal                          | Decimal                  | Decimal      
               | java.math.BigDecimal            | java.math.BigDecimal   |
+| binary                             | 41           | byte[]                   
                 | bytes                                     | /                
                     | `uint8_t[n]/vector<T>`                              | 
`[n]uint8/[]T`                                 | `Vec<u8>`                      
   | byte[]                           | Data                     | Uint8List    
               | Array[Byte]                     | ByteArray              |
+| `array<bool>` (bool_array)         | 43           | bool[]                   
                 | BoolArray / ndarray(np.bool\_)            | BoolArray / 
Type.boolArray()          | `bool[n]`                                           
| `[n]bool/[]T`                                  | `Vec<bool>`                  
     | bool[]                           | [Bool] + @ArrayField     | BoolList   
                 | Array[Boolean]                  | BooleanArray           |
+| `array<int8>` (int8_array)         | 44           | `@Int8Type byte[]`       
                 | Int8Array / ndarray(int8)                 | Type.int8Array() 
                     | `int8_t[n]/vector<T>`                               | 
`[n]int8/[]T`                                  | `Vec<i8>`                      
   | sbyte[]                          | [Int8] + @ArrayField     | Int8List     
               | Array[Byte] + metadata          | ByteArray + @ArrayType |
+| `array<int16>` (int16_array)       | 45           | short[]                  
                 | Int16Array / ndarray(int16)               | 
Type.int16Array()                     | `int16_t[n]/vector<T>`                  
            | `[n]int16/[]T`                                 | `Vec<i16>`       
                 | short[]                          | [Int16] + @ArrayField    
| Int16List                   | Array[Short]                    | ShortArray    
         |
+| `array<int32>` (int32_array)       | 46           | int[]                    
                 | Int32Array / ndarray(int32)               | 
Type.int32Array()                     | `int32_t[n]/vector<T>`                  
            | `[n]int32/[]T`                                 | `Vec<i32>`       
                 | int[]                            | [Int32] + @ArrayField    
| Int32List                   | Array[Int]                      | IntArray      
         |
+| `array<int64>` (int64_array)       | 47           | long[]                   
                 | Int64Array / ndarray(int64)               | 
Type.int64Array()                     | `int64_t[n]/vector<T>`                  
            | `[n]int64/[]T`                                 | `Vec<i64>`       
                 | long[]                           | [Int64] + @ArrayField    
| Int64List                   | Array[Long]                     | LongArray     
         |
+| `array<uint8>` (uint8_array)       | 48           | `@UInt8Type byte[]`      
                 | UInt8Array / ndarray(uint8)               | 
Type.uint8Array()                     | `uint8_t[n]/vector<T>`                  
            | `[n]uint8/[]T`                                 | `Vec<u8>`        
                 | byte[]                           | [UInt8] + @ArrayField    
| Uint8List                   | Array[Byte] + metadata          | UByteArray    
         |
+| `array<uint16>` (uint16_array)     | 49           | `@UInt16Type short[]`    
                 | UInt16Array / ndarray(uint16)             | 
Type.uint16Array()                    | `uint16_t[n]/vector<T>`                 
            | `[n]uint16/[]T`                                | `Vec<u16>`       
                 | ushort[]                         | [UInt16] + @ArrayField   
| Uint16List                  | Array[Short] + metadata         | UShortArray   
         |
+| `array<uint32>` (uint32_array)     | 50           | `@UInt32Type int[]`      
                 | UInt32Array / ndarray(uint32)             | 
Type.uint32Array()                    | `uint32_t[n]/vector<T>`                 
            | `[n]uint32/[]T`                                | `Vec<u32>`       
                 | uint[]                           | [UInt32] + @ArrayField   
| Uint32List                  | Array[Int] + metadata           | UIntArray     
         |
+| `array<uint64>` (uint64_array)     | 51           | `@UInt64Type long[]`     
                 | UInt64Array / ndarray(uint64)             | 
Type.uint64Array()                    | `uint64_t[n]/vector<T>`                 
            | `[n]uint64/[]T`                                | `Vec<u64>`       
                 | ulong[]                          | [UInt64] + @ArrayField   
| Uint64List                  | Array[Long] + metadata          | ULongArray    
         |
+| `array<float8>` (float8_array)     | 52           | /                        
                 | /                                         | /                
                     | /                                                   | /  
                                            | /                                 
| /                                | /                        | /               
            | /                               | /                      |
+| `array<float16>` (float16_array)   | 53           | `Float16Array` / 
`@Float16Type short[]`   | Float16Array / ndarray(float16)           | 
Float16Array / Type.float16Array()    | 
`fory::float16_t[n]/std::vector<fory::float16_t>`   | `[N]float16.Float16` / 
`[]float16.Float16`     | `Vec<Float16>` / `[Float16; N]`   | Half[] / 
S.Array<S.Float16>      | [Float16] + @ArrayField  | Float16List                
 | Array[Short] + metadata         | Float16Array           |
+| `array<bfloat16>` (bfloat16_array) | 54           | `BFloat16Array` / 
`@BFloat16Type short[]` | BFloat16Array / ndarray(bfloat16)         | 
BFloat16Array / Type.bfloat16Array()  | 
`fory::bfloat16_t[n]/std::vector<fory::bfloat16_t>` | `[N]bfloat16.BFloat16` / 
`[]bfloat16.BFloat16` | `Vec<BFloat16>` / `[BFloat16; N]` | BFloat16[] / 
S.Array<S.BFloat16> | [BFloat16] + @ArrayField | Bfloat16List                | 
Array[Short] + metadata         | BFloat16Array          |
+| `array<float32>` (float32_array)   | 55           | float[]                  
                 | Float32Array / ndarray(float32)           | 
Type.float32Array()                   | `float[n]/vector<T>`                    
            | `[n]float32/[]T`                               | `Vec<f32>`       
                 | float[]                          | [Float] + @ArrayField    
| Float32List                 | Array[Float]                    | FloatArray    
         |
+| `array<float64>` (float64_array)   | 56           | double[]                 
                 | Float64Array / ndarray(float64)           | 
Type.float64Array()                   | `double[n]/vector<T>`                   
            | `[n]float64/[]T`                               | `Vec<f64>`       
                 | double[]                         | [Double] + @ArrayField   
| Float64List                 | Array[Double]                   | DoubleArray   
         |
 
 Notes:
 


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to