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
The following commit(s) were added to refs/heads/main by this push:
new 21ca119d1 🔄 synced local 'docs/specification/' with remote
'docs/specification/'
21ca119d1 is described below
commit 21ca119d1c128de6e0859588b5768f3903522bbd
Author: chaokunyang <[email protected]>
AuthorDate: Tue Oct 21 08:29:07 2025 +0000
🔄 synced local 'docs/specification/' with remote 'docs/specification/'
---
docs/specification/xlang_serialization_spec.md | 34 ++++++++++++++++++--------
1 file changed, 24 insertions(+), 10 deletions(-)
diff --git a/docs/specification/xlang_serialization_spec.md
b/docs/specification/xlang_serialization_spec.md
index 4b562de27..7252f7bbf 100644
--- a/docs/specification/xlang_serialization_spec.md
+++ b/docs/specification/xlang_serialization_spec.md
@@ -815,28 +815,42 @@ nullable primitive field value:
+-----------+---------------+
| null flag | field value |
+-----------+---------------+
-field value of final type with ref tracking:
+other interal types supported by fory
| var bytes | var objects |
+-----------+-------------+
-| ref meta | value data |
+| null flag | value data |
+-----------+-------------+
-field value of final type without ref tracking:
+list field type:
| one byte | var objects |
+-----------+-------------+
-| null flag | field value |
+| ref meta | value data |
+set field type:
+| one byte | var objects |
+-----------+-------------+
-field value of non-final type with ref tracking:
-| one byte | var bytes | var objects |
-+-----------+-------------+-------------+
-| ref meta | type meta | value data |
+| ref meta | value data |
+map field type:
+| one byte | var objects |
++-----------+-------------+
+| ref meta | value data |
+-----------+-------------+-------------+
-field value of non-final type without ref tracking:
+other types such as enum/struct/ext
| one byte | var bytes | var objects |
+-----------+------------+------------+
-| null flag | type meta | value data |
+| ref flag | type meta | value data |
+-----------+------------+------------+
```
+Type hash algorithm:
+
+- Sort fields by fields sort algorithm
+- Start with string `""`
+- Iterate every field, append string by:
+ - `snow_case(field_name),`. For camelcase name, convert it to snow_case
first.
+ - `$type_id,`, for other fields, use type id `TypeId::UNKNOWN` instead.
+ - `$nullable;`, `1` if nullable, `0` otherwise.
+- Then convert string to utf8 bytes
+- Compute murmurhash3_x64_128, and use first 32 bits
+
#### Schema evolution
Schema evolution have similar format as schema consistent mode for object
except:
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]