(incubator-fury-site) 01/02: synced local 'docs/guide/' with remote 'docs/guide/'
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/incubator-fury-site.git commit a0969d42483f876b3e7455d633b0c975c38bd69c Author: chaokunyang AuthorDate: Sat Apr 13 05:59:58 2024 + synced local 'docs/guide/' with remote 'docs/guide/' --- docs/guide/DEVELOPMENT.md| 2 +- docs/guide/xlang_type_mapping.md | 88 +++- 2 files changed, 88 insertions(+), 2 deletions(-) diff --git a/docs/guide/DEVELOPMENT.md b/docs/guide/DEVELOPMENT.md index 5d71166..bfab541 100644 --- a/docs/guide/DEVELOPMENT.md +++ b/docs/guide/DEVELOPMENT.md @@ -1,6 +1,6 @@ --- title: Development -sidebar_position: 6 +sidebar_position: 7 id: development --- diff --git a/docs/guide/xlang_type_mapping.md b/docs/guide/xlang_type_mapping.md index f529d4e..4baa455 100644 --- a/docs/guide/xlang_type_mapping.md +++ b/docs/guide/xlang_type_mapping.md @@ -4,4 +4,90 @@ sidebar_position: 3 id: xlang_type_mapping --- -Coming soon. +Note: + +- For type definition, see [Type Systems in Spec](../specification/xlang_serialization_spec.md#type-systems) +- `int16_t[n]/vector` indicates `int16_t[n]/vector` +- The cross-language serialization is not stable, do not use it in your production environment. + +# Type Mapping + +| Fury Type | Fury Type ID | Java| Python | Javascript | C++| Golang | Rust | +||--|-|--|-||--|--| +| bool | 1| bool/Boolean| bool | Boolean | bool | bool | bool | +| int8 | 2| byte/Byte | int/pyfury.Int8 | Type.int8() | int8_t | int8 | i8 | +| int16 | 3| short/Short | int/pyfury.Int16 | Type.int16()| int16_t| int16| i6 | +| int32 | 4| int/Integer | int/pyfury.Int32 | Type.int32()| int32_t| int32| i32 | +| var_int32 | 5| int/Integer | int/pyfury.VarInt32 | Type.varint32() | fury::varint32_t | fury.varint32| fury::varint32 | +| int64 | 6| long/Long | int/pyfury.Int64 | Type.int64()| int64_t| int64| i64 | +| var_int64 | 7| long/Long | int/pyfury.VarInt64 | Type.varint64() | fury::varint64_t | fury.varint64| fury::varint64 | +| sli_int64 | 8| long/Long | int/pyfury.SliInt64 | Type.sliint64() | fury::sliint64_t | fury.sliint64| fury::sliint64 | +| float16| 9| float/Float | float/pyfury.Float16 | Type.float16() | fury::float16_t| fury.float16 | fury::f16 | +| float32| 10 | float/Float | float/pyfury.Float32 | Type.float32() | float | float32 | f32 | +| float64| 11 | double/Double | float/pyfury.Float64 | Type.float64() | double | float64 | f64 | +| string | 12 | String | str | String | string | string | String/str | +| enum | 13 | Enum subclasses | enum subclasses | / | enum | /| enum | +| list | 14 | List/Collection | list/tuple | array | vector | slice| Vec | +| set| 15 | Set | set | / | set| fury.Set | Set | +| map| 16 | Map | dict | Map | unordered_map | map | HashMap | +| duration | 17 | Duration| timedelta| Number | duration | Duration | Duration | +| timestamp | 18 | Instant | datetime | Number | std::chrono::nanoseconds | Time | DateTime | +| decimal| 19 | BigDecimal | Decimal | bigint | / | /| / | +| binary | 20 |
(incubator-fury-site) 01/02: synced local 'docs/guide/' with remote 'docs/guide/'
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/incubator-fury-site.git commit 5acb64a40823553a6f1fb408cd258784a2893e06 Author: chaokunyang AuthorDate: Sun Apr 7 13:11:53 2024 + synced local 'docs/guide/' with remote 'docs/guide/' --- docs/guide/DEVELOPMENT.md| 2 +- docs/guide/xlang_type_mapping.md | 73 +--- 2 files changed, 2 insertions(+), 73 deletions(-) diff --git a/docs/guide/DEVELOPMENT.md b/docs/guide/DEVELOPMENT.md index bfab541..5d71166 100644 --- a/docs/guide/DEVELOPMENT.md +++ b/docs/guide/DEVELOPMENT.md @@ -1,6 +1,6 @@ --- title: Development -sidebar_position: 7 +sidebar_position: 6 id: development --- diff --git a/docs/guide/xlang_type_mapping.md b/docs/guide/xlang_type_mapping.md index bec2295..f529d4e 100644 --- a/docs/guide/xlang_type_mapping.md +++ b/docs/guide/xlang_type_mapping.md @@ -4,75 +4,4 @@ sidebar_position: 3 id: xlang_type_mapping --- -Note: - -- For type definition, see [Type Systems in Spec](../specification/xlang_serialization_spec.md#type-systems) -- `int16_t[x]/vector<~>` indicates `int16_t[x]/vector` -- The cross-language serialization is not stable, do not use it in your production environment. - -# Type Mapping - -| Type | Type ID | Java| Python | Javascript | C++| Golang | Rust | -||-|-|--|-||--|--| -| bool | 1 | bool/Boolean| bool | Boolean | bool | bool | bool | -| int8 | 2 | byte/Byte | int/pyfury.Int8 | Type.int8() | int8_t | int8 | i8 | -| int16 | 3 | short/Short | int/pyfury.Int16 | Type.int16()| int16_t| int16| i6 | -| int32 | 4 | int/Integer | int/pyfury.Int32 | Type.int32()| int32_t| int32| i32 | -| var_int32 | 5 | int/Integer | int/pyfury.VarInt32 | Type.varint32() | fury::varint32_t | fury.varint32| fury::varint32 | -| int64 | 6 | long/Long | int/pyfury.Int64 | Type.int64()| int64_t| int64| i64 | -| var_int64 | 7 | long/Long | int/pyfury.VarInt64 | Type.varint64() | fury::varint64_t | fury.varint64| fury::varint64 | -| sli_int64 | 8 | long/Long | int/pyfury.SliInt64 | Type.sliint64() | fury::sliint64_t | fury.sliint64| fury::sliint64 | -| float16| 9 | float/Float | float/pyfury.Float16 | Type.float16() | fury::float16_t| fury.float16 | fury::f16 | -| float32| 10 | float/Float | float/pyfury.Float32 | Type.float32() | float | float32 | f32 | -| float64| 11 | double/Double | float/pyfury.Float64 | Type.float64() | double | float64 | f64 | -| string | 12 | String | str | String | string | string | String/str | -| enum | 13 | Enum subclasses | enum subclasses | / | enum | /| enum | -| list | 14 | List/Collection | list/tuple | array | vector | slice| Vec | -| set| 15 | Set | set | / | set| fury.Set | Set | -| map| 16 | Map | dict | Map | unordered_map | map | HashMap | -| duration | 17 | Duration| timedelta| Number | duration | Duration | Duration | -| timestamp | 18 | Instant | datetime | Number | std::chrono::nanoseconds | Time | DateTime | -| decimal| 19 | BigDecimal | Decimal | bigint | / | /| / | -| array | 20 | array | np.ndarray | / | / | array/slice | Vec
(incubator-fury-site) 01/02: synced local 'docs/guide/' with remote 'docs/guide/'
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/incubator-fury-site.git commit 45472f09d1474dba9615705be6b1cc480e0370dd Author: chaokunyang AuthorDate: Sat Apr 6 12:31:02 2024 + synced local 'docs/guide/' with remote 'docs/guide/' --- docs/guide/DEVELOPMENT.md| 2 +- docs/guide/xlang_type_mapping.md | 73 +++- 2 files changed, 73 insertions(+), 2 deletions(-) diff --git a/docs/guide/DEVELOPMENT.md b/docs/guide/DEVELOPMENT.md index 5d71166..bfab541 100644 --- a/docs/guide/DEVELOPMENT.md +++ b/docs/guide/DEVELOPMENT.md @@ -1,6 +1,6 @@ --- title: Development -sidebar_position: 6 +sidebar_position: 7 id: development --- diff --git a/docs/guide/xlang_type_mapping.md b/docs/guide/xlang_type_mapping.md index f529d4e..bec2295 100644 --- a/docs/guide/xlang_type_mapping.md +++ b/docs/guide/xlang_type_mapping.md @@ -4,4 +4,75 @@ sidebar_position: 3 id: xlang_type_mapping --- -Coming soon. +Note: + +- For type definition, see [Type Systems in Spec](../specification/xlang_serialization_spec.md#type-systems) +- `int16_t[x]/vector<~>` indicates `int16_t[x]/vector` +- The cross-language serialization is not stable, do not use it in your production environment. + +# Type Mapping + +| Type | Type ID | Java| Python | Javascript | C++| Golang | Rust | +||-|-|--|-||--|--| +| bool | 1 | bool/Boolean| bool | Boolean | bool | bool | bool | +| int8 | 2 | byte/Byte | int/pyfury.Int8 | Type.int8() | int8_t | int8 | i8 | +| int16 | 3 | short/Short | int/pyfury.Int16 | Type.int16()| int16_t| int16| i6 | +| int32 | 4 | int/Integer | int/pyfury.Int32 | Type.int32()| int32_t| int32| i32 | +| var_int32 | 5 | int/Integer | int/pyfury.VarInt32 | Type.varint32() | fury::varint32_t | fury.varint32| fury::varint32 | +| int64 | 6 | long/Long | int/pyfury.Int64 | Type.int64()| int64_t| int64| i64 | +| var_int64 | 7 | long/Long | int/pyfury.VarInt64 | Type.varint64() | fury::varint64_t | fury.varint64| fury::varint64 | +| sli_int64 | 8 | long/Long | int/pyfury.SliInt64 | Type.sliint64() | fury::sliint64_t | fury.sliint64| fury::sliint64 | +| float16| 9 | float/Float | float/pyfury.Float16 | Type.float16() | fury::float16_t| fury.float16 | fury::f16 | +| float32| 10 | float/Float | float/pyfury.Float32 | Type.float32() | float | float32 | f32 | +| float64| 11 | double/Double | float/pyfury.Float64 | Type.float64() | double | float64 | f64 | +| string | 12 | String | str | String | string | string | String/str | +| enum | 13 | Enum subclasses | enum subclasses | / | enum | /| enum | +| list | 14 | List/Collection | list/tuple | array | vector | slice| Vec | +| set| 15 | Set | set | / | set| fury.Set | Set | +| map| 16 | Map | dict | Map | unordered_map | map | HashMap | +| duration | 17 | Duration| timedelta| Number | duration | Duration | Duration | +| timestamp | 18 | Instant | datetime | Number | std::chrono::nanoseconds | Time | DateTime | +| decimal| 19 | BigDecimal | Decimal | bigint | / | /| / | +| array | 20 | array | np.ndarray | / | / | array/slice |
(incubator-fury-site) 01/02: synced local 'docs/guide/' with remote 'docs/guide/'
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/incubator-fury-site.git commit 4083b4c09bdc64c04ab5fa95b16632ffe9daf1bf Author: chaokunyang AuthorDate: Wed Dec 27 08:41:03 2023 + synced local 'docs/guide/' with remote 'docs/guide/' --- docs/guide/DEVELOPMENT.md | 3 +-- docs/guide/graalvm_guide.md| 5 ++--- docs/guide/java_object_graph_guide.md | 3 +-- docs/guide/row_format_guide.md | 3 +-- docs/guide/scala_guide.md | 3 +-- docs/guide/xlang_object_graph_guide.md | 3 +-- 6 files changed, 7 insertions(+), 13 deletions(-) diff --git a/docs/guide/DEVELOPMENT.md b/docs/guide/DEVELOPMENT.md index fc323a7..65b95b9 100644 --- a/docs/guide/DEVELOPMENT.md +++ b/docs/guide/DEVELOPMENT.md @@ -1,7 +1,6 @@ --- title: Development -sidebar_position: 6 -id: development +order: 6 --- # How to build to Fury diff --git a/docs/guide/graalvm_guide.md b/docs/guide/graalvm_guide.md index 3d9acd9..9229d0e 100644 --- a/docs/guide/graalvm_guide.md +++ b/docs/guide/graalvm_guide.md @@ -1,7 +1,6 @@ --- title: GraalVM Guide -sidebar_position: 6 -id: graalvm_guide +order: 6 --- # GraalVM Native Image @@ -131,7 +130,7 @@ When Fury compression is enabled: - Struct: Fury is `24x speed, 31% size` compared to JDK. - Pojo: Fury is `12x speed, 48% size` compared to JDK. -See [[Benchmark.java](https://github.com/apache/incubator-fury/blob/main/integration_tests/graalvm_tests/src/main/java/org/apache/fury/graalvm/Benchmark.java)] for benchmark code. +See [[Benchmark.java](../../integration_tests/graalvm_tests/src/main/java/org/apache/fury/graalvm/Benchmark.java)] for benchmark code. ### Struct Benchmark Class Fields diff --git a/docs/guide/java_object_graph_guide.md b/docs/guide/java_object_graph_guide.md index 2a9ce51..b4dff62 100644 --- a/docs/guide/java_object_graph_guide.md +++ b/docs/guide/java_object_graph_guide.md @@ -1,7 +1,6 @@ --- title: Java Object Graph Guide -sidebar_position: 0 -id: java_object_graph_guide +order: 0 --- # Java object graph serialization diff --git a/docs/guide/row_format_guide.md b/docs/guide/row_format_guide.md index 3c60927..fa6ed6c 100644 --- a/docs/guide/row_format_guide.md +++ b/docs/guide/row_format_guide.md @@ -1,7 +1,6 @@ --- title: Row Format Guide -sidebar_position: 1 -id: row_format_guide +order: 1 --- ## Row format protocol diff --git a/docs/guide/scala_guide.md b/docs/guide/scala_guide.md index 93502af..abce514 100644 --- a/docs/guide/scala_guide.md +++ b/docs/guide/scala_guide.md @@ -1,7 +1,6 @@ --- title: Scala Serialization Guide -sidebar_position: 4 -id: scala_guide +order: 4 --- # Scala serialization diff --git a/docs/guide/xlang_object_graph_guide.md b/docs/guide/xlang_object_graph_guide.md index a834960..9a65cb3 100644 --- a/docs/guide/xlang_object_graph_guide.md +++ b/docs/guide/xlang_object_graph_guide.md @@ -1,7 +1,6 @@ --- title: Xlang Object Graph Guide -sidebar_position: 2 -id: xlang_object_graph_guide +order: 2 --- ## Cross-language object graph serialization - To unsubscribe, e-mail: commits-unsubscr...@fury.apache.org For additional commands, e-mail: commits-h...@fury.apache.org
(incubator-fury-site) 01/02: synced local 'docs/guide/' with remote 'docs/guide/'
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/incubator-fury-site.git commit dd1031efcc3b6b0f0b499c638a701b5b3dc26fc6 Author: chaokunyang AuthorDate: Wed Dec 27 00:47:25 2023 + synced local 'docs/guide/' with remote 'docs/guide/' --- docs/guide/DEVELOPMENT.md | 2 +- docs/guide/graalvm_guide.md| 38 +- docs/guide/java_object_graph_guide.md | 36 docs/guide/scala_guide.md | 17 --- docs/guide/xlang_object_graph_guide.md | 32 ++-- 5 files changed, 64 insertions(+), 61 deletions(-) diff --git a/docs/guide/DEVELOPMENT.md b/docs/guide/DEVELOPMENT.md index cd0223f..65b95b9 100644 --- a/docs/guide/DEVELOPMENT.md +++ b/docs/guide/DEVELOPMENT.md @@ -6,7 +6,7 @@ order: 6 ## Get the source code -Github repo: https://github.com/alipay/fury +Github repo: https://github.com/apache/incubator-fury ## Building Fury ♀️ diff --git a/docs/guide/graalvm_guide.md b/docs/guide/graalvm_guide.md index d94fd72..9229d0e 100644 --- a/docs/guide/graalvm_guide.md +++ b/docs/guide/graalvm_guide.md @@ -14,15 +14,15 @@ any extra cost, the performance is great. In order to use Fury on graalvm native image, you must create Fury as an **static** field of a class, and **register** all classes at the enclosing class initialize time. Then configure `native-image.properties` under `resources/META-INF/native-image/$xxx/native-image.propertie` to tell graalvm to init the class at native image -build time. For example, here we configure `io.fury.graalvm.Example` class be init at build time: +build time. For example, here we configure `org.apache.fury.graalvm.Example` class be init at build time: ```properties -Args = --initialize-at-build-time=io.fury.graalvm.Example +Args = --initialize-at-build-time=org.apache.fury.graalvm.Example ``` Another benefit using fury is that you don't have to configure [reflection json](https://www.graalvm.org/latest/reference-manual/native-image/metadata/#specifying-reflection-metadata-in-json) and [serialization json](https://www.graalvm.org/latest/reference-manual/native-image/metadata/#serialization), which is very tedious, cumbersome and inconvenient. When using fury, you just need to invoke -`io.fury.Fury.register(Class, boolean)` for every type you want to serialize. +`org.apache.fury.Fury.register(Class, boolean)` for every type you want to serialize. Note that Fury `asyncCompilationEnabled` option will be disabled automatically for graalvm native image since graalvm native image doesn't support JIT at the image run time. @@ -30,8 +30,8 @@ native image doesn't support JIT at the image run time. ## Not thread-safe Fury Example: ```java -import io.fury.Fury; -import io.fury.util.Preconditions; +import org.apache.fury.Fury; +import org.apache.fury.util.Preconditions; import java.util.List; import java.util.Map; @@ -62,17 +62,17 @@ public class Example { } } ``` -Then add `io.fury.graalvm.Example` build time init to `native-image.properties` configuration: +Then add `org.apache.fury.graalvm.Example` build time init to `native-image.properties` configuration: ```properties -Args = --initialize-at-build-time=io.fury.graalvm.Example +Args = --initialize-at-build-time=org.apache.fury.graalvm.Example ``` ## Thread-safe Fury ```java -import io.fury.Fury; -import io.fury.ThreadLocalFury; -import io.fury.ThreadSafeFury; -import io.fury.util.Preconditions; +import org.apache.fury.Fury; +import org.apache.fury.ThreadLocalFury; +import org.apache.fury.ThreadSafeFury; +import org.apache.fury.util.Preconditions; import java.util.List; import java.util.Map; @@ -108,15 +108,15 @@ public class ThreadSafeExample { } } ``` -Then add `io.fury.graalvm.ThreadSafeExample` build time init to `native-image.properties` configuration: +Then add `org.apache.fury.graalvm.ThreadSafeExample` build time init to `native-image.properties` configuration: ```properties -Args = --initialize-at-build-time=io.fury.graalvm.ThreadSafeExample +Args = --initialize-at-build-time=org.apache.fury.graalvm.ThreadSafeExample ``` ## Framework Integration For framework developers, if you want to integrate fury for serialization, you can provided a configuration file to let the users to list all the classes they want to serialize, then you can load those classes and invoke -`io.fury.Fury.register(Class, boolean)` to register those classes in your Fury integration class, and configure that +`org.apache.fury.Fury.register(Class, boolean)` to register those classes in your Fury integration class, and configure that class be initialized at graalvm native image build time. ## Benchmark @@ -130,7 +130,7 @@ When Fury compression is enabled: - Struct: Fury is `24x speed, 31% size` compared to JDK. - Pojo: