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-site.git
commit e230d612792cd83a2c80e542c8b7ad5685e40fef Author: chaokunyang <[email protected]> AuthorDate: Sat May 23 08:56:01 2026 +0000 🔄 synced local 'docs/guide/' with remote 'docs/guide/' --- 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 +- 23 files changed, 252 insertions(+), 40 deletions(-) diff --git a/docs/guide/cpp/configuration.md b/docs/guide/cpp/configuration.md index a693f32091..d829dc8a99 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 9e628f89a1..73b91ece50 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 0a530278e9..0189d72a78 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 0570c02176..7d4dbcff36 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 531b8958a2..9fbb06b018 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 c60016edbb..74bb39b883 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 4ca85273dd..d2c73e7f65 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 fb74931d62..84ebb77a11 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 00dde847dc..0dc6bc0ce4 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 e7df613b75..6ef2d8e589 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 133c0d4ad5..7dd6fe58dc 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 425d5b41b3..8d6ea9d521 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 49d4de7290..86280097c2 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 13ed956747..17f1413b02 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 fc6433debb..a902192382 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 b67bc2f662..ec0f5c4a60 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 6bf564951e..cf1bd19b56 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 e90aebce7e..b7b878db99 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 387e8deae7..cba76f7010 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 299e158834..a823a7218a 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 6fa858e747..c5a7a30b1b 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 af7f22b181..dd1f9393d0 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 cd4e94bf54..fd20751f82 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 --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
