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

github-bot pushed a commit to branch deploy
in repository https://gitbox.apache.org/repos/asf/incubator-fury-site.git


The following commit(s) were added to refs/heads/deploy by this push:
     new ad07c63  deploy: b98b9888bf3f4d350daeb1f9d656172206936941
ad07c63 is described below

commit ad07c63e6e51d42091e8bbf04ea35aebac7fb5a5
Author: PragmaTwice <[email protected]>
AuthorDate: Tue Dec 26 11:37:56 2023 +0000

    deploy: b98b9888bf3f4d350daeb1f9d656172206936941
---
 404.html                                           |  2 +-
 blog/fury_0_1_0_release/index.html                 |  2 +-
 blog/fury_0_1_1_release/index.html                 |  2 +-
 blog/fury_0_1_2_release/index.html                 |  2 +-
 blog/fury_0_2_0_release/index.html                 |  2 +-
 blog/fury_0_2_1_release/index.html                 |  2 +-
 blog/fury_0_3_0_release/index.html                 |  2 +-
 blog/fury_0_3_1_release/index.html                 |  2 +-
 blog/fury_0_4_0_release/index.html                 |  2 +-
 blog/fury_0_4_1_release/index.html                 |  2 +-
 .../index.html                                     |  2 +-
 blog/list/index.html                               |  2 +-
 ...__dumi__theme__ContextWrapper.0bd6f14b.async.js |  1 -
 ...__dumi__theme__ContextWrapper.9316ec6e.async.js |  1 +
 guide/development/index.html                       |  2 +-
 guide/graalvm_guide/index.html                     |  2 +-
 guide/java_object_graph_guide/index.html           |  2 +-
 guide/row_format_guide/index.html                  |  2 +-
 guide/scala_guide/index.html                       |  2 +-
 guide/xlang_object_graph_guide/index.html          |  2 +-
 index.html                                         |  2 +-
 introduction/benchmark/index.html                  |  2 +-
 introduction/features/index.html                   |  2 +-
 introduction/introduction/index.html               |  2 +-
 start/install/index.html                           |  2 +-
 start/usage/index.html                             |  2 +-
 umi.8f9af598.js => umi.16a90a81.js                 | 62 +++++++++++-----------
 zh/blog/fury_0_1_0_release/index.html              |  2 +-
 zh/blog/fury_0_1_1_release/index.html              |  2 +-
 zh/blog/fury_0_1_2_release/index.html              |  2 +-
 zh/blog/fury_0_2_0_release/index.html              |  2 +-
 zh/blog/fury_0_2_1_release/index.html              |  2 +-
 zh/blog/fury_0_3_0_release/index.html              |  2 +-
 zh/blog/fury_0_3_1_release/index.html              |  2 +-
 zh/blog/fury_0_4_0_release/index.html              |  2 +-
 zh/blog/fury_0_4_1_release/index.html              |  2 +-
 .../index.html                                     |  2 +-
 zh/blog/list/index.html                            |  2 +-
 zh/guide/java_object_graph_guide/index.html        |  2 +-
 zh/guide/row_format_guide/index.html               |  2 +-
 zh/guide/xlang_object_graph_guide/index.html       |  2 +-
 zh/introduction/benchmark/index.html               |  2 +-
 zh/introduction/features/index.html                |  2 +-
 zh/introduction/introduction/index.html            |  2 +-
 zh/start/install/index.html                        |  2 +-
 zh/start/usage/index.html                          |  2 +-
 ~demos/:id/index.html                              |  2 +-
 47 files changed, 76 insertions(+), 76 deletions(-)

diff --git a/404.html b/404.html
index a34c132..4134e3d 100644
--- a/404.html
+++ b/404.html
@@ -9,6 +9,6 @@
 </head>
 <body>
 <div id="root"></div>
-<script src="/umi.8f9af598.js"></script>
+<script src="/umi.16a90a81.js"></script>
 
 </body></html>
\ No newline at end of file
diff --git a/blog/fury_0_1_0_release/index.html 
b/blog/fury_0_1_0_release/index.html
index a34c132..4134e3d 100644
--- a/blog/fury_0_1_0_release/index.html
+++ b/blog/fury_0_1_0_release/index.html
@@ -9,6 +9,6 @@
 </head>
 <body>
 <div id="root"></div>
-<script src="/umi.8f9af598.js"></script>
+<script src="/umi.16a90a81.js"></script>
 
 </body></html>
\ No newline at end of file
diff --git a/blog/fury_0_1_1_release/index.html 
b/blog/fury_0_1_1_release/index.html
index a34c132..4134e3d 100644
--- a/blog/fury_0_1_1_release/index.html
+++ b/blog/fury_0_1_1_release/index.html
@@ -9,6 +9,6 @@
 </head>
 <body>
 <div id="root"></div>
-<script src="/umi.8f9af598.js"></script>
+<script src="/umi.16a90a81.js"></script>
 
 </body></html>
\ No newline at end of file
diff --git a/blog/fury_0_1_2_release/index.html 
b/blog/fury_0_1_2_release/index.html
index a34c132..4134e3d 100644
--- a/blog/fury_0_1_2_release/index.html
+++ b/blog/fury_0_1_2_release/index.html
@@ -9,6 +9,6 @@
 </head>
 <body>
 <div id="root"></div>
-<script src="/umi.8f9af598.js"></script>
+<script src="/umi.16a90a81.js"></script>
 
 </body></html>
\ No newline at end of file
diff --git a/blog/fury_0_2_0_release/index.html 
b/blog/fury_0_2_0_release/index.html
index a34c132..4134e3d 100644
--- a/blog/fury_0_2_0_release/index.html
+++ b/blog/fury_0_2_0_release/index.html
@@ -9,6 +9,6 @@
 </head>
 <body>
 <div id="root"></div>
-<script src="/umi.8f9af598.js"></script>
+<script src="/umi.16a90a81.js"></script>
 
 </body></html>
\ No newline at end of file
diff --git a/blog/fury_0_2_1_release/index.html 
b/blog/fury_0_2_1_release/index.html
index a34c132..4134e3d 100644
--- a/blog/fury_0_2_1_release/index.html
+++ b/blog/fury_0_2_1_release/index.html
@@ -9,6 +9,6 @@
 </head>
 <body>
 <div id="root"></div>
-<script src="/umi.8f9af598.js"></script>
+<script src="/umi.16a90a81.js"></script>
 
 </body></html>
\ No newline at end of file
diff --git a/blog/fury_0_3_0_release/index.html 
b/blog/fury_0_3_0_release/index.html
index a34c132..4134e3d 100644
--- a/blog/fury_0_3_0_release/index.html
+++ b/blog/fury_0_3_0_release/index.html
@@ -9,6 +9,6 @@
 </head>
 <body>
 <div id="root"></div>
-<script src="/umi.8f9af598.js"></script>
+<script src="/umi.16a90a81.js"></script>
 
 </body></html>
\ No newline at end of file
diff --git a/blog/fury_0_3_1_release/index.html 
b/blog/fury_0_3_1_release/index.html
index a34c132..4134e3d 100644
--- a/blog/fury_0_3_1_release/index.html
+++ b/blog/fury_0_3_1_release/index.html
@@ -9,6 +9,6 @@
 </head>
 <body>
 <div id="root"></div>
-<script src="/umi.8f9af598.js"></script>
+<script src="/umi.16a90a81.js"></script>
 
 </body></html>
\ No newline at end of file
diff --git a/blog/fury_0_4_0_release/index.html 
b/blog/fury_0_4_0_release/index.html
index a34c132..4134e3d 100644
--- a/blog/fury_0_4_0_release/index.html
+++ b/blog/fury_0_4_0_release/index.html
@@ -9,6 +9,6 @@
 </head>
 <body>
 <div id="root"></div>
-<script src="/umi.8f9af598.js"></script>
+<script src="/umi.16a90a81.js"></script>
 
 </body></html>
\ No newline at end of file
diff --git a/blog/fury_0_4_1_release/index.html 
b/blog/fury_0_4_1_release/index.html
index a34c132..4134e3d 100644
--- a/blog/fury_0_4_1_release/index.html
+++ b/blog/fury_0_4_1_release/index.html
@@ -9,6 +9,6 @@
 </head>
 <body>
 <div id="root"></div>
-<script src="/umi.8f9af598.js"></script>
+<script src="/umi.16a90a81.js"></script>
 
 </body></html>
\ No newline at end of file
diff --git 
a/blog/fury_blazing_fast_multiple_language_serialization_framework/index.html 
b/blog/fury_blazing_fast_multiple_language_serialization_framework/index.html
index a34c132..4134e3d 100644
--- 
a/blog/fury_blazing_fast_multiple_language_serialization_framework/index.html
+++ 
b/blog/fury_blazing_fast_multiple_language_serialization_framework/index.html
@@ -9,6 +9,6 @@
 </head>
 <body>
 <div id="root"></div>
-<script src="/umi.8f9af598.js"></script>
+<script src="/umi.16a90a81.js"></script>
 
 </body></html>
\ No newline at end of file
diff --git a/blog/list/index.html b/blog/list/index.html
index a34c132..4134e3d 100644
--- a/blog/list/index.html
+++ b/blog/list/index.html
@@ -9,6 +9,6 @@
 </head>
 <body>
 <div id="root"></div>
-<script src="/umi.8f9af598.js"></script>
+<script src="/umi.16a90a81.js"></script>
 
 </body></html>
\ No newline at end of file
diff --git 
a/dumi__tmp-production__dumi__theme__ContextWrapper.0bd6f14b.async.js 
b/dumi__tmp-production__dumi__theme__ContextWrapper.0bd6f14b.async.js
deleted file mode 100644
index 50cb05d..0000000
--- a/dumi__tmp-production__dumi__theme__ContextWrapper.0bd6f14b.async.js
+++ /dev/null
@@ -1 +0,0 @@
-"use 
strict";(self.webpackChunkfury_site=self.webpackChunkfury_site||[]).push([[923],{34576:function(z,a,e){e.r(a),e.d(a,{default:function(){return
 _}});var 
l=e(5574),u=e.n(l),t=e(62435),i=e(85956),A=e(64236),o=e(74067),d=e(90482),c=e(86074),h={};function
 _(){var 
m=(0,i.pC)(),g=(0,t.useState)(!1),r=u()(g,2),p=r[0],f=r[1],n=(0,t.useRef)(i.m8.location.pathname);return(0,t.useEffect)(function(){return
 
i.m8.listen(function(s){s.location.pathname!==n.current&&(n.current=s.location.pathname,do
 [...]
diff --git 
a/dumi__tmp-production__dumi__theme__ContextWrapper.9316ec6e.async.js 
b/dumi__tmp-production__dumi__theme__ContextWrapper.9316ec6e.async.js
new file mode 100644
index 0000000..3975f88
--- /dev/null
+++ b/dumi__tmp-production__dumi__theme__ContextWrapper.9316ec6e.async.js
@@ -0,0 +1 @@
+"use 
strict";(self.webpackChunkfury_site=self.webpackChunkfury_site||[]).push([[923],{34576:function(z,a,e){e.r(a),e.d(a,{default:function(){return
 _}});var 
l=e(5574),u=e.n(l),t=e(62435),i=e(85956),A=e(64236),o=e(74067),d=e(90482),c=e(86074),h={};function
 _(){var 
m=(0,i.pC)(),g=(0,t.useState)(!1),r=u()(g,2),p=r[0],f=r[1],n=(0,t.useRef)(i.m8.location.pathname);return(0,t.useEffect)(function(){return
 
i.m8.listen(function(s){s.location.pathname!==n.current&&(n.current=s.location.pathname,do
 [...]
diff --git a/guide/development/index.html b/guide/development/index.html
index a34c132..4134e3d 100644
--- a/guide/development/index.html
+++ b/guide/development/index.html
@@ -9,6 +9,6 @@
 </head>
 <body>
 <div id="root"></div>
-<script src="/umi.8f9af598.js"></script>
+<script src="/umi.16a90a81.js"></script>
 
 </body></html>
\ No newline at end of file
diff --git a/guide/graalvm_guide/index.html b/guide/graalvm_guide/index.html
index a34c132..4134e3d 100644
--- a/guide/graalvm_guide/index.html
+++ b/guide/graalvm_guide/index.html
@@ -9,6 +9,6 @@
 </head>
 <body>
 <div id="root"></div>
-<script src="/umi.8f9af598.js"></script>
+<script src="/umi.16a90a81.js"></script>
 
 </body></html>
\ No newline at end of file
diff --git a/guide/java_object_graph_guide/index.html 
b/guide/java_object_graph_guide/index.html
index a34c132..4134e3d 100644
--- a/guide/java_object_graph_guide/index.html
+++ b/guide/java_object_graph_guide/index.html
@@ -9,6 +9,6 @@
 </head>
 <body>
 <div id="root"></div>
-<script src="/umi.8f9af598.js"></script>
+<script src="/umi.16a90a81.js"></script>
 
 </body></html>
\ No newline at end of file
diff --git a/guide/row_format_guide/index.html 
b/guide/row_format_guide/index.html
index a34c132..4134e3d 100644
--- a/guide/row_format_guide/index.html
+++ b/guide/row_format_guide/index.html
@@ -9,6 +9,6 @@
 </head>
 <body>
 <div id="root"></div>
-<script src="/umi.8f9af598.js"></script>
+<script src="/umi.16a90a81.js"></script>
 
 </body></html>
\ No newline at end of file
diff --git a/guide/scala_guide/index.html b/guide/scala_guide/index.html
index a34c132..4134e3d 100644
--- a/guide/scala_guide/index.html
+++ b/guide/scala_guide/index.html
@@ -9,6 +9,6 @@
 </head>
 <body>
 <div id="root"></div>
-<script src="/umi.8f9af598.js"></script>
+<script src="/umi.16a90a81.js"></script>
 
 </body></html>
\ No newline at end of file
diff --git a/guide/xlang_object_graph_guide/index.html 
b/guide/xlang_object_graph_guide/index.html
index a34c132..4134e3d 100644
--- a/guide/xlang_object_graph_guide/index.html
+++ b/guide/xlang_object_graph_guide/index.html
@@ -9,6 +9,6 @@
 </head>
 <body>
 <div id="root"></div>
-<script src="/umi.8f9af598.js"></script>
+<script src="/umi.16a90a81.js"></script>
 
 </body></html>
\ No newline at end of file
diff --git a/index.html b/index.html
index a34c132..4134e3d 100644
--- a/index.html
+++ b/index.html
@@ -9,6 +9,6 @@
 </head>
 <body>
 <div id="root"></div>
-<script src="/umi.8f9af598.js"></script>
+<script src="/umi.16a90a81.js"></script>
 
 </body></html>
\ No newline at end of file
diff --git a/introduction/benchmark/index.html 
b/introduction/benchmark/index.html
index a34c132..4134e3d 100644
--- a/introduction/benchmark/index.html
+++ b/introduction/benchmark/index.html
@@ -9,6 +9,6 @@
 </head>
 <body>
 <div id="root"></div>
-<script src="/umi.8f9af598.js"></script>
+<script src="/umi.16a90a81.js"></script>
 
 </body></html>
\ No newline at end of file
diff --git a/introduction/features/index.html b/introduction/features/index.html
index a34c132..4134e3d 100644
--- a/introduction/features/index.html
+++ b/introduction/features/index.html
@@ -9,6 +9,6 @@
 </head>
 <body>
 <div id="root"></div>
-<script src="/umi.8f9af598.js"></script>
+<script src="/umi.16a90a81.js"></script>
 
 </body></html>
\ No newline at end of file
diff --git a/introduction/introduction/index.html 
b/introduction/introduction/index.html
index a34c132..4134e3d 100644
--- a/introduction/introduction/index.html
+++ b/introduction/introduction/index.html
@@ -9,6 +9,6 @@
 </head>
 <body>
 <div id="root"></div>
-<script src="/umi.8f9af598.js"></script>
+<script src="/umi.16a90a81.js"></script>
 
 </body></html>
\ No newline at end of file
diff --git a/start/install/index.html b/start/install/index.html
index a34c132..4134e3d 100644
--- a/start/install/index.html
+++ b/start/install/index.html
@@ -9,6 +9,6 @@
 </head>
 <body>
 <div id="root"></div>
-<script src="/umi.8f9af598.js"></script>
+<script src="/umi.16a90a81.js"></script>
 
 </body></html>
\ No newline at end of file
diff --git a/start/usage/index.html b/start/usage/index.html
index a34c132..4134e3d 100644
--- a/start/usage/index.html
+++ b/start/usage/index.html
@@ -9,6 +9,6 @@
 </head>
 <body>
 <div id="root"></div>
-<script src="/umi.8f9af598.js"></script>
+<script src="/umi.16a90a81.js"></script>
 
 </body></html>
\ No newline at end of file
diff --git a/umi.8f9af598.js b/umi.16a90a81.js
similarity index 85%
rename from umi.8f9af598.js
rename to umi.16a90a81.js
index 9e91393..6082c90 100644
--- a/umi.8f9af598.js
+++ b/umi.16a90a81.js
@@ -17,7 +17,7 @@ Try polyfilling it using "@formatjs/intl-listformat"
 Try polyfilling it using "@formatjs/intl-displaynames"
 `,Tt.jK.MISSING_INTL_API));var Ye=(0,b.L6)(ie,pr);try{return 
_e(Re,Ye).of(pe)}catch(Ot){Te(new Me.Qe("Error formatting display 
name.",Re,Ot))}}function sr(re){var _e=re?re[Object.keys(re)[0]]:void 0;return 
typeof _e=="string"}function 
cr(re){re.onWarn&&re.defaultRichTextElements&&sr(re.messages||{})&&re.onWarn(`[@formatjs/intl]
 "defaultRichTextElements" was specified but "message" was not pre-compiled. 
 Please consider using "@formatjs/cli" to pre-compile your messages for 
performance.
-For more details see 
https://formatjs.io/docs/getting-started/message-distribution`)}function 
Za(re,_e){var 
pe=(0,b.ax)(_e),ie=(0,Q.pi)((0,Q.pi)({},b.Z0),re),Re=ie.locale,Te=ie.defaultLocale,We=ie.onError;return
 Re?!Intl.NumberFormat.supportedLocalesOf(Re).length&&We?We(new Me.gb('Missing 
locale data for locale: "'.concat(Re,'" in Intl.NumberFormat. Using default 
locale: "').concat(Te,'" as fallback. See 
https://formatjs.io/docs/react-intl#runtime-requirements for more 
details'))):!Intl. [...]
+For more details see 
https://formatjs.io/docs/getting-started/message-distribution`)}function 
Za(re,_e){var 
pe=(0,b.ax)(_e),ie=(0,Q.pi)((0,Q.pi)({},b.Z0),re),Re=ie.locale,Te=ie.defaultLocale,We=ie.onError;return
 Re?!Intl.NumberFormat.supportedLocalesOf(Re).length&&We?We(new Me.gb('Missing 
locale data for locale: "'.concat(Re,'" in Intl.NumberFormat. Using default 
locale: "').concat(Te,'" as fallback. See 
https://formatjs.io/docs/react-intl#runtime-requirements for more 
details'))):!Intl. [...]
 other distributed systems.
 `,paraId:3,tocIndex:1},{value:`Data transfer between 
processes/languages/nodes, or object persistence, state read/write and
 copy`,paraId:3,tocIndex:1},{value:` all need serialization.
@@ -133,7 +133,7 @@ development and discussion are open-sourced and transparent 
in the community. An
 including but not limited to questions, code contributions, technical 
discussions, etc. We are looking forward to
 receiving your ideas and feedback, participating in the project together, 
pushing the project forward and creating a
 better serialization framework.`,paraId:47,tocIndex:15},{value:`The GitHub 
address of the fury repository is:
-`,paraId:48,tocIndex:15},{value:"https://github.com/alipay/fury",paraId:48,tocIndex:15},{value:"Official
 website: 
",paraId:49,tocIndex:15},{value:"https://furyio.org",paraId:49,tocIndex:15},{value:"All
 issues, PR, and Discussion are 
welcome.",paraId:50,tocIndex:15}],h={},y={title:"Join 
US",toc:"menu",filename:"docs/blog/fury_blazing_fast_multiple_language_serialization_framework.md",lastUpdated:1703515673e3,description:"Author:
 chaokunyang"},f=[{id:"fury---a-blazing-fast-multi-language-s [...]
+`,paraId:48,tocIndex:15},{value:"https://github.com/alipay/fury",paraId:48,tocIndex:15},{value:"Official
 website: 
",paraId:49,tocIndex:15},{value:"https://furyio.org",paraId:49,tocIndex:15},{value:"All
 issues, PR, and Discussion are 
welcome.",paraId:50,tocIndex:15}],h={},y={title:"Join 
US",toc:"menu",filename:"docs/blog/fury_blazing_fast_multiple_language_serialization_framework.md",lastUpdated:170359056e4,description:"Author:
 chaokunyang"},f=[{id:"fury---a-blazing-fast-multi-language-se [...]
 zero-copy`,paraId:1,tocIndex:0},{value:", providing up to 
",paraId:1,tocIndex:0},{value:"170x performance",paraId:1,tocIndex:0},{value:" 
and ultimate ",paraId:1,tocIndex:0},{value:"ease of 
use",paraId:1,tocIndex:0},{value:".",paraId:1,tocIndex:0},{value:"The GitHub 
address of fury repository is: 
",paraId:2,tocIndex:0},{value:"https://github.com/alipay/fury",paraId:2,tocIndex:0},{value:`Serialization
 is a basic component of system communication, and widely used in big data, AI 
framework,  [...]
 other distributed systems.
 `,paraId:3,tocIndex:1},{value:`Data transfer between 
processes/languages/nodes, or object persistence, state read/write and
@@ -250,7 +250,7 @@ development and discussion are open-sourced and transparent 
in the community. An
 including but not limited to questions, code contributions, technical 
discussions, etc. We are looking forward to
 receiving your ideas and feedback, participating in the project together, 
pushing the project forward and creating a
 better serialization framework.`,paraId:47,tocIndex:15},{value:`The GitHub 
address of the fury repository is:
-`,paraId:48,tocIndex:15},{value:"https://github.com/alipay/fury",paraId:48,tocIndex:15},{value:"Official
 website: 
",paraId:49,tocIndex:15},{value:"https://furyio.org",paraId:49,tocIndex:15},{value:"All
 issues, PR, and Discussion are 
welcome.",paraId:50,tocIndex:15}],I={},g={title:"Xlang Object Graph 
Guide",toc:"menu",filename:"docs/guide/xlang_object_graph_guide.zh.md",lastUpdated:1703515673e3,order:2,description:"Common
 types can be serialized automatically: primitive numeric types, str [...]
+`,paraId:48,tocIndex:15},{value:"https://github.com/alipay/fury",paraId:48,tocIndex:15},{value:"Official
 website: 
",paraId:49,tocIndex:15},{value:"https://furyio.org",paraId:49,tocIndex:15},{value:"All
 issues, PR, and Discussion are 
welcome.",paraId:50,tocIndex:15}],I={},g={title:"Xlang Object Graph 
Guide",toc:"menu",filename:"docs/guide/xlang_object_graph_guide.zh.md",lastUpdated:170359056e4,order:2,description:"Common
 types can be serialized automatically: primitive numeric types, stri [...]
 
 import java.util.*;
 
@@ -616,7 +616,7 @@ func main() {
        fmt.Println(newList)
 }
 `,paraId:32,tocIndex:4},{value:"JavaScript",paraId:33,tocIndex:4},{value:`// 
Coming soon
-`,paraId:34,tocIndex:4}],k={},w={title:"Java Object Graph 
Guide",toc:"menu",filename:"docs/guide/java_object_graph_guide.zh.md",lastUpdated:1703515673e3,order:0,description:"When
 only java object serialization needed, this mode will have better performance 
compared to cross-language object graph 
serialization."},A=[{id:"java-object-graph-serialization",depth:1,title:"Java 
object graph serialization"},{id:"quick-start",depth:2,title:"Quick 
Start"},{id:"advanced-usage",depth:2,title:"Advan [...]
+`,paraId:34,tocIndex:4}],k={},w={title:"Java Object Graph 
Guide",toc:"menu",filename:"docs/guide/java_object_graph_guide.zh.md",lastUpdated:170359056e4,order:0,description:"When
 only java object serialization needed, this mode will have better performance 
compared to cross-language object graph 
serialization."},A=[{id:"java-object-graph-serialization",depth:1,title:"Java 
object graph serialization"},{id:"quick-start",depth:2,title:"Quick 
Start"},{id:"advanced-usage",depth:2,title:"Advanc [...]
 import java.util.Arrays;
 import io.fury.*;
 
@@ -745,7 +745,7 @@ Object newObj = fury.execute(
 } else {
   return fury.deserialize(bytes);
 }
-`,paraId:19,tocIndex:10}],R={},T={title:"Xlang Object Graph 
Guide",toc:"menu",filename:"docs/guide/xlang_object_graph_guide.md",lastUpdated:1703515673e3,order:2,description:"Common
 types can be serialized automatically: primitive numeric types, string, 
binary, array, list, map and so 
on."},O=[{id:"cross-language-object-graph-serialization",depth:2,title:"Cross-language
 object graph 
serialization"},{id:"serialize-built-in-types",depth:3,title:"Serialize 
built-in types"},{id:"serialize-cus [...]
+`,paraId:19,tocIndex:10}],R={},T={title:"Xlang Object Graph 
Guide",toc:"menu",filename:"docs/guide/xlang_object_graph_guide.md",lastUpdated:170359056e4,order:2,description:"Common
 types can be serialized automatically: primitive numeric types, string, 
binary, array, list, map and so 
on."},O=[{id:"cross-language-object-graph-serialization",depth:2,title:"Cross-language
 object graph 
serialization"},{id:"serialize-built-in-types",depth:3,title:"Serialize 
built-in types"},{id:"serialize-cust [...]
 import io.fury.config.*;
 
 import java.util.*;
@@ -1231,7 +1231,7 @@ func main() {
        fmt.Println(newList)
 }
 `,paraId:37,tocIndex:4},{value:"JavaScript",paraId:38,tocIndex:4},{value:`// 
Coming soon
-`,paraId:39,tocIndex:4}],H={},W={title:"Java Object Graph 
Guide",toc:"menu",filename:"docs/guide/java_object_graph_guide.md",lastUpdated:1703515673e3,order:0,description:`When
 only java object serialization needed, this mode will have better performance 
compared to cross-language object
+`,paraId:39,tocIndex:4}],H={},W={title:"Java Object Graph 
Guide",toc:"menu",filename:"docs/guide/java_object_graph_guide.md",lastUpdated:170359056e4,order:0,description:`When
 only java object serialization needed, this mode will have better performance 
compared to cross-language object
 graph 
serialization.`},K=[{id:"java-object-graph-serialization",depth:1,title:"Java 
object graph serialization"},{id:"quick-start",depth:2,title:"Quick 
Start"},{id:"advanced-usage",depth:2,title:"Advanced 
Usage"},{id:"furybuilder--options",depth:3,title:"FuryBuilder  
options"},{id:"fury-creation",depth:3,title:"Fury 
creation"},{id:"smaller-size",depth:3,title:"Smaller 
size"},{id:"implement-a-customized-serializer",depth:3,title:"Implement a 
customized serializer"},{id:"security--class-re [...]
 graph serialization.`,paraId:0,tocIndex:0},{value:"Note that fury creation is 
not cheap, the ",paraId:1,tocIndex:1},{value:"fury instances should be reused 
between serializations",paraId:1,tocIndex:1},{value:` instead of creating
 it everytime.
@@ -1475,20 +1475,20 @@ package, and load fury by 
version.`,paraId:49,tocIndex:14},{value:`If you upgrad
 no need to 
`,paraId:50,tocIndex:14},{value:"versioning",paraId:50,tocIndex:14},{value:" 
the data.",paraId:50,tocIndex:14},{value:"If you create fury without setting 
",paraId:51,tocIndex:16},{value:"CompatibleMode",paraId:51,tocIndex:16},{value:"
 to 
",paraId:51,tocIndex:16},{value:"io.fury.config.CompatibleMode.COMPATIBLE",paraId:51,tocIndex:16},{value:`,
 and you got a strange
 serialization error, it may be caused by class inconsistency between 
serialization peer and deserialization peer.`,paraId:51,tocIndex:16},{value:"In 
such cases, you can invoke 
",paraId:52,tocIndex:16},{value:"FuryBuilder#withClassVersionCheck",paraId:52,tocIndex:16},{value:"
 to create fury to validate it, if deserialization throws 
",paraId:52,tocIndex:16},{value:"io.fury.exception.ClassNotCompatibleException",paraId:52,tocIndex:16},{value:`,
 it shows class are inconsistent, and you shoul [...]
 
`,paraId:52,tocIndex:16},{value:"FuryBuilder#withCompaibleMode(CompatibleMode.COMPATIBLE)",paraId:52,tocIndex:16},{value:".",paraId:52,tocIndex:16},{value:"CompatibleMode.COMPATIBLE",paraId:53,tocIndex:16},{value:"
 has more performance and space cost, do not set it by default if your classes 
are always consistent between serialization and 
deserialization.",paraId:53,tocIndex:16},{value:"If you serialize an object by 
invoking ",paraId:54,tocIndex:17},{value:"Fury#serialize",paraId:54,tocI [...]
-`,paraId:54,tocIndex:17},{value:"Fury#deserializeJavaObject",paraId:54,tocIndex:17},{value:".",paraId:54,tocIndex:17},{value:"If
 you serialize an object by invoking 
",paraId:55,tocIndex:17},{value:"Fury#serializeJavaObject",paraId:55,tocIndex:17},{value:",
 you should invoke 
",paraId:55,tocIndex:17},{value:"Fury#deserializeJavaObject",paraId:55,tocIndex:17},{value:"
 for deserialization instead of 
",paraId:55,tocIndex:17},{value:"Fury#deserializeJavaObjectAndClass",paraId:55,tocIndex:17},{
 [...]
+`,paraId:54,tocIndex:17},{value:"Fury#deserializeJavaObject",paraId:54,tocIndex:17},{value:".",paraId:54,tocIndex:17},{value:"If
 you serialize an object by invoking 
",paraId:55,tocIndex:17},{value:"Fury#serializeJavaObject",paraId:55,tocIndex:17},{value:",
 you should invoke 
",paraId:55,tocIndex:17},{value:"Fury#deserializeJavaObject",paraId:55,tocIndex:17},{value:"
 for deserialization instead of 
",paraId:55,tocIndex:17},{value:"Fury#deserializeJavaObjectAndClass",paraId:55,tocIndex:17},{
 [...]
 multiple binary protocols for those 
requirements:`,paraId:1,tocIndex:0},{value:`Cross-language object graph 
protocol:
 `,paraId:2,tocIndex:0},{value:`Cross-language serialize any object 
automatically, no need for IDL definition, schema compilation and object 
to/from protocol
 conversion.`,paraId:3,tocIndex:0},{value:"Support shared reference and 
circular reference, no duplicate data or recursion 
error.",paraId:3,tocIndex:0},{value:"Support object 
polymorphism.",paraId:3,tocIndex:0},{value:"Native java/python object graph 
protocol: highly-optimized based on type system of the 
language.",paraId:2,tocIndex:0},{value:`Row format protocol: a cache-friendly 
binary random access format, supports skipping serialization and partial 
serialization,
 and can convert to column-format 
automatically.`,paraId:2,tocIndex:0},{value:`New protocols can be added easily 
based on fury existing buffer, encoding, meta, codegen and other capabilities. 
All of those share same codebase, and the optimization for one protocol
-can be reused by another protocol.`,paraId:4,tocIndex:0},{value:"Fury java 
object graph serialization support class schema forward/backward compatibility. 
The serialization peer and deserialization peer can add/delete fields 
independently.",paraId:5,tocIndex:2},{value:"We plan to add support 
cross-language serialization after ",paraId:6,tocIndex:2},{value:"meta 
compression",paraId:6,tocIndex:2},{value:" are 
finished.",paraId:6,tocIndex:2},{value:"We are still improving our protocols, 
bin [...]
+can be reused by another protocol.`,paraId:4,tocIndex:0},{value:"Fury java 
object graph serialization support class schema forward/backward compatibility. 
The serialization peer and deserialization peer can add/delete fields 
independently.",paraId:5,tocIndex:2},{value:"We plan to add support 
cross-language serialization after ",paraId:6,tocIndex:2},{value:"meta 
compression",paraId:6,tocIndex:2},{value:" are 
finished.",paraId:6,tocIndex:2},{value:"We are still improving our protocols, 
bin [...]
 
`,paraId:1,tocIndex:0},{value:"\u901A\u8FC7\u5185\u8054\u53D8\u91CF\u51CF\u5C11\u5185\u5B58\u8BBF\u95EE\uFF1B",paraId:2,tocIndex:0},{value:"\u901A\u8FC7\u5728\u751F\u6210\u4EE3\u7801\u5F53\u4E2D\u5185\u8054\u65B9\u6CD5\u8C03\u7528\u51CF\u5C11\u865A\u65B9\u6CD5\u5F00\u9500\uFF1B",paraId:2,tocIndex:0},{value:"\u51CF\u5C11\u6761\u4EF6\u5206\u652F\uFF1B",paraId:2,tocIndex:0},{value:"\u68C0\u67E5hash\u67E5\u627E\uFF1B",paraId:2,tocIndex:0},{value:"\u591A\u4E2A\u4E8C\u8FDB\u5236\u534F\u8BAE",p
 [...]
 
`,paraId:4,tocIndex:0},{value:"writeObject/readObject/writeReplace/readResolve/readObjectNoData",paraId:4,tocIndex:0},{value:"\u3002",paraId:4,tocIndex:0},{value:"\u652F\u6301Golang\u5171\u4EAB\u5F15\u7528\u3001\u5FAA\u73AF\u5F15\u7528\u3001\u6307\u9488\u5E8F\u5217\u5316\u3002",paraId:4,tocIndex:0},{value:"\u652F\u6301\u81EA\u52A8\u5316\u7684Golang
 
struct\u5E8F\u5217\u5316\u3002",paraId:4,tocIndex:0},{value:"\u4E0D\u540C\u7684\u534F\u8BAE\u6709\u4E0D\u540C\u7684\u5E8F\u5217\u5316\u9700\u
 [...]
 
`,paraId:6,tocIndex:1},{value:"\u8DE8\u8BED\u8A00\u81EA\u52A8\u5E8F\u5217\u5316\u4EFB\u610F\u5BF9\u8C61\uFF0C\u4E0D\u9700\u8981\u5B9A\u4E49IDL\uFF0C\u9759\u6001\u751F\u6210\u4EE3\u7801\uFF0C\u4EE5\u53CA\u5728\u5BF9\u8C61\u548C\u751F\u6210\u4EE3\u7801\u4E4B\u95F4\u8FDB\u884C\u8F6C\u6362\u3002",paraId:7,tocIndex:1},{value:"\u652F\u6301\u5171\u4EAB\u5F15\u7528\u548C\u5FAA\u73AF\u5F15\u7528\uFF0C\u4E0D\u4F1A\u51FA\u73B0\u91CD\u590D\u5E8F\u5217\u5316\u548C\u9012\u5F52\u9519\u8BEF\u3002",paraI
 [...]
 \u7684\u7C7B, 
`,paraId:12,tocIndex:3},{value:"Sample",paraId:12,tocIndex:3},{value:`
 \u662F\u6765\u81EA `,paraId:12,tocIndex:3},{value:"kryo 
benchmark",paraId:12,tocIndex:3},{value:`
-\u7684\u7C7B.`,paraId:12,tocIndex:3},{value:"\u53EF\u4EE5\u8BBF\u95EE 
",paraId:13,tocIndex:3},{value:"benchmarks",paraId:13,tocIndex:3},{value:" 
\u67E5\u770B\u57FA\u51C6\u6D4B\u8BD5\u73AF\u5883\u3001\u4EE3\u7801\u4EE5\u53CA\u96F6\u62F7\u8D1D\u548C\u5806\u5916\u5E8F\u5217\u5316\u7B49\u573A\u666F\u6D4B\u8BD5\u7ED3\u679C\u3002",paraId:13,tocIndex:3},{value:"Fury
 
Java\u5E8F\u5217\u5316\u652F\u6301schema\u5411\u524D\u5411\u540E\u517C\u5BB9\u3002\u5E8F\u5217\u5316\u548C\u53CD\u5E8F\u5217\u5316
 [...]
+\u7684\u7C7B.`,paraId:12,tocIndex:3},{value:"\u53EF\u4EE5\u8BBF\u95EE 
",paraId:13,tocIndex:3},{value:"benchmarks",paraId:13,tocIndex:3},{value:" 
\u67E5\u770B\u57FA\u51C6\u6D4B\u8BD5\u73AF\u5883\u3001\u4EE3\u7801\u4EE5\u53CA\u96F6\u62F7\u8D1D\u548C\u5806\u5916\u5E8F\u5217\u5316\u7B49\u573A\u666F\u6D4B\u8BD5\u7ED3\u679C\u3002",paraId:13,tocIndex:3},{value:"Fury
 
Java\u5E8F\u5217\u5316\u652F\u6301schema\u5411\u524D\u5411\u540E\u517C\u5BB9\u3002\u5E8F\u5217\u5316\u548C\u53CD\u5E8F\u5217\u5316
 [...]
 `,paraId:2,tocIndex:1},{value:"Dubbo fury integration: 
",paraId:3,tocIndex:1},{value:"https://github.com/fury-project/dubbo-serialization-fury",paraId:3,tocIndex:1},{value:"Add
 class checker API to customize security check 
behaviour(#890)",paraId:3,tocIndex:1},{value:`Python
-`,paraId:2,tocIndex:1},{value:"Support pyarrow6 bazel build (#859 
#862)",paraId:4,tocIndex:1},{value:"Support python 3.10 (#859 
#862)",paraId:4,tocIndex:1},{value:"[Java] Dubbo fury integration: 
",paraId:5,tocIndex:2},{value:"https://github.com/fury-project/dubbo-serialization-fury",paraId:5,tocIndex:2},{value:"[Java]
 fix isSecure check for xlang in java 
(#822)",paraId:5,tocIndex:2},{value:"[Java] register empty object by default 
(#829)",paraId:5,tocIndex:2},{value:"[Java] upgrade guava  [...]
+`,paraId:2,tocIndex:1},{value:"Support pyarrow6 bazel build (#859 
#862)",paraId:4,tocIndex:1},{value:"Support python 3.10 (#859 
#862)",paraId:4,tocIndex:1},{value:"[Java] Dubbo fury integration: 
",paraId:5,tocIndex:2},{value:"https://github.com/fury-project/dubbo-serialization-fury",paraId:5,tocIndex:2},{value:"[Java]
 fix isSecure check for xlang in java 
(#822)",paraId:5,tocIndex:2},{value:"[Java] register empty object by default 
(#829)",paraId:5,tocIndex:2},{value:"[Java] upgrade guava  [...]
 `,paraId:3,tocIndex:2},{value:`val fury = Fury.builder()
   .withScalaOptimizationEnabled(true)
   // 
\u6700\u597D\u5173\u95ED\u8BE5\u5F00\u5173\uFF0C\u63D0\u524D\u6CE8\u518C\u7C7B\u578B
@@ -1526,7 +1526,7 @@ println(fury.deserialize(fury.serialize(ColorEnum.Green)))
 println(fury.deserialize(fury.serialize(opt)))
 val opt1: Option[Long] = None
 println(fury.deserialize(fury.serialize(opt1)))
-`,paraId:13,tocIndex:9},{value:"[Scala] 
\u652F\u6301\u4EFB\u610Fscala\u5BF9\u8C61\u5E8F\u5217\u5316\uFF0C\u5305\u62ECcase/object/tuple/string/collection/enum/basic
 \u7B49",paraId:14,tocIndex:10},{value:"[Scala] \u589E\u52A0fury scala 
\u5E8F\u5217\u5316\u7528\u6237\u6587\u6863\uFF1A",paraId:14,tocIndex:10},{value:"https://github.com/alipay/fury/blob/main/docs/guide/scala_guide.md",paraId:14,tocIndex:10},{value:"[Scala]
 \u5B9E\u73B0\u4F18\u5316\u7684scala object singleton\u5E8F\u5217\u5316 [...]
+`,paraId:13,tocIndex:9},{value:"[Scala] 
\u652F\u6301\u4EFB\u610Fscala\u5BF9\u8C61\u5E8F\u5217\u5316\uFF0C\u5305\u62ECcase/object/tuple/string/collection/enum/basic
 \u7B49",paraId:14,tocIndex:10},{value:"[Scala] \u589E\u52A0fury scala 
\u5E8F\u5217\u5316\u7528\u6237\u6587\u6863\uFF1A",paraId:14,tocIndex:10},{value:"https://github.com/alipay/fury/blob/main/docs/guide/scala_guide.md",paraId:14,tocIndex:10},{value:"[Scala]
 \u5B9E\u73B0\u4F18\u5316\u7684scala object singleton\u5E8F\u5217\u5316 [...]
   String f1;
   List<Long> f2;
 }
@@ -1626,25 +1626,25 @@ for (int i = 0; i < 10; i++) {
   arrowWriter.write(encoder.toRow(beanA));
 }
 return arrowWriter.finishAsRecordBatch();
-`,paraId:9,tocIndex:3}],Xe={},ut={title:"Benchmark",toc:"menu",filename:"docs/introduction/benchmark.en.md",lastUpdated:1703515673e3,order:1,description:"Different
 serialization frameworks are suitable for different scenarios, and benchmark 
results here are for reference 
only."},it=[{id:"java-serialization",depth:3,title:"Java 
Serialization"},{id:"java-deserialization",depth:3,title:"Java 
Deserialization"},{id:"javascript",depth:3,title:"JavaScript"}],jt=[{value:"Different
 serialization  [...]
+`,paraId:9,tocIndex:3}],Xe={},ut={title:"Benchmark",toc:"menu",filename:"docs/introduction/benchmark.en.md",lastUpdated:170359056e4,order:1,description:"Different
 serialization frameworks are suitable for different scenarios, and benchmark 
results here are for reference 
only."},it=[{id:"java-serialization",depth:3,title:"Java 
Serialization"},{id:"java-deserialization",depth:3,title:"Java 
Deserialization"},{id:"javascript",depth:3,title:"JavaScript"}],jt=[{value:"Different
 serialization f [...]
 to static serialization frameworks, unless it uses the jit techniques as fury 
did.
-Since fury will generate code at runtime, please warm up before collecting 
benchmark statistics.`,paraId:2},{value:"See 
",paraId:3,tocIndex:1},{value:"benchmarks",paraId:3,tocIndex:1},{value:" for 
more benchmarks about type forward/backward compatibility, off-heap support, 
zero-copy serialization.",paraId:3,tocIndex:1},{value:"The data used for this 
bar graph includes a complex object that has many kinds of field types, and the 
size of the JSON data is 3KB.",paraId:4,tocIndex:2},{value:" [...]
+Since fury will generate code at runtime, please warm up before collecting 
benchmark statistics.`,paraId:2},{value:"See 
",paraId:3,tocIndex:1},{value:"benchmarks",paraId:3,tocIndex:1},{value:" for 
more benchmarks about type forward/backward compatibility, off-heap support, 
zero-copy serialization.",paraId:3,tocIndex:1},{value:"The data used for this 
bar graph includes a complex object that has many kinds of field types, and the 
size of the JSON data is 3KB.",paraId:4,tocIndex:2},{value:" [...]
 to static serialization frameworks, unless it uses the jit techniques as fury 
did.
-Since fury will generate code at runtime, please warm up before collecting 
benchmark statistics.`,paraId:2},{value:"See 
",paraId:3,tocIndex:1},{value:"benchmarks",paraId:3,tocIndex:1},{value:" for 
more benchmarks about type forward/backward compatibility, off-heap support, 
zero-copy serialization.",paraId:3,tocIndex:1},{value:"The data used for this 
bar graph includes a complex object that has many kinds of field types, and the 
size of the JSON data is 3KB.",paraId:4,tocIndex:2},{value:" [...]
+Since fury will generate code at runtime, please warm up before collecting 
benchmark statistics.`,paraId:2},{value:"See 
",paraId:3,tocIndex:1},{value:"benchmarks",paraId:3,tocIndex:1},{value:" for 
more benchmarks about type forward/backward compatibility, off-heap support, 
zero-copy serialization.",paraId:3,tocIndex:1},{value:"The data used for this 
bar graph includes a complex object that has many kinds of field types, and the 
size of the JSON data is 3KB.",paraId:4,tocIndex:2},{value:" [...]
 by `,paraId:0},{value:"pickle5",paraId:0},{value:" and off-heap 
read/write.",paraId:0},{value:`High performance: A highly-extensible JIT 
framework to generate serializer code at runtime in an async multi-thread way 
to speed serialization, providing 20-170x speed up by:
 `,paraId:0},{value:"reduce memory access by inline variable in generated 
code.",paraId:1},{value:"reduce virtual method invocation by inline call in 
generated code.",paraId:1},{value:"reduce conditional 
branching.",paraId:1},{value:"reduce hash lookup.",paraId:1},{value:"binary 
protocols: object graph, row format and so on.",paraId:1},{value:"In addition 
to cross-language serialization, Fury also features 
at:",paraId:2},{value:`Drop-in replace Java serialization frameworks such as 
JDK/Kr [...]
 It can greatly improve the efficiency of high-performance RPC calls, data 
transfer and object persistence.`,paraId:3},{value:`JDK serialization 100% 
compatible, support java custom serialization
-`,paraId:3},{value:"writeObject/readObject/writeReplace/readResolve/readObjectNoData",paraId:3},{value:"
 natively.",paraId:3},{value:"Supports shared and circular reference object 
serialization for golang.",paraId:3},{value:"Supports automatic object 
serialization for 
golang.",paraId:3}],Qe={},At={title:"Features",toc:"menu",filename:"docs/introduction/features.zh.md",lastUpdated:1703515673e3,order:2,description:"In
 addition to cross-language serialization, Fury also features at:"},Dt=[] [...]
+`,paraId:3},{value:"writeObject/readObject/writeReplace/readResolve/readObjectNoData",paraId:3},{value:"
 natively.",paraId:3},{value:"Supports shared and circular reference object 
serialization for golang.",paraId:3},{value:"Supports automatic object 
serialization for 
golang.",paraId:3}],Qe={},At={title:"Features",toc:"menu",filename:"docs/introduction/features.zh.md",lastUpdated:170359056e4,order:2,description:"In
 addition to cross-language serialization, Fury also features at:"},Dt=[], [...]
 by `,paraId:0},{value:"pickle5",paraId:0},{value:" and off-heap 
read/write.",paraId:0},{value:`High performance: A highly-extensible JIT 
framework to generate serializer code at runtime in an async multi-thread way 
to speed serialization, providing 20-170x speed up by:
 `,paraId:0},{value:"reduce memory access by inline variable in generated 
code.",paraId:1},{value:"reduce virtual method invocation by inline call in 
generated code.",paraId:1},{value:"reduce conditional 
branching.",paraId:1},{value:"reduce hash lookup.",paraId:1},{value:"binary 
protocols: object graph, row format and so on.",paraId:1},{value:"In addition 
to cross-language serialization, Fury also features 
at:",paraId:2},{value:`Drop-in replace Java serialization frameworks such as 
JDK/Kr [...]
 It can greatly improve the efficiency of high-performance RPC calls, data 
transfer and object persistence.`,paraId:3},{value:`JDK serialization 100% 
compatible, support java custom serialization
-`,paraId:3},{value:"writeObject/readObject/writeReplace/readResolve/readObjectNoData",paraId:3},{value:"
 natively.",paraId:3},{value:"Supports shared and circular reference object 
serialization for golang.",paraId:3},{value:"Supports automatic object 
serialization for golang.",paraId:3}],ba={},La={title:"Fury v0.1.0 
released",toc:"menu",filename:"docs/blog/fury_0_1_0_release.md",lastUpdated:1703515673e3,description:"Author:
 chaokunyang"},Ba=[{id:"fury-v010-released",depth:1,title:"Fury v [...]
+`,paraId:3},{value:"writeObject/readObject/writeReplace/readResolve/readObjectNoData",paraId:3},{value:"
 natively.",paraId:3},{value:"Supports shared and circular reference object 
serialization for golang.",paraId:3},{value:"Supports automatic object 
serialization for golang.",paraId:3}],ba={},La={title:"Fury v0.1.0 
released",toc:"menu",filename:"docs/blog/fury_0_1_0_release.md",lastUpdated:170359056e4,description:"Author:
 chaokunyang"},Ba=[{id:"fury-v010-released",depth:1,title:"Fury v0 [...]
 `,paraId:4,tocIndex:0},{value:"Highly optimized Java serialization 
primives",paraId:5,tocIndex:0},{value:"Runtime codegen 
framework",paraId:5,tocIndex:0},{value:"Interpreter mode java 
serialization",paraId:5,tocIndex:0},{value:"JIT accelerated serializer for java 
serialization",paraId:5,tocIndex:0},{value:"Support async and multi-thread 
JIT",paraId:5,tocIndex:0},{value:"Support type forward-backward 
compatibility.",paraId:5,tocIndex:0},{value:"Support meta sharing to send class 
meta only [...]
 `,paraId:4,tocIndex:0},{value:"Support basic types cross-language between 
java/python/javascript/rust",paraId:6,tocIndex:0},{value:"Support struct 
cross-language automatically, no need for IDL 
definition",paraId:6,tocIndex:0},{value:"Supports shared and circular reference 
object serialization between 
java/python/javascript.",paraId:6,tocIndex:0},{value:"Support object 
polymorphism between 
java/python/javascript.",paraId:6,tocIndex:0},{value:"Out-of-band zero-copy 
serialization between ja [...]
 `,paraId:4,tocIndex:0},{value:"Support row format between 
java/python/c++.",paraId:7,tocIndex:0},{value:"Support lazy/partial 
deserialization.",paraId:7,tocIndex:0},{value:"Support convert to arrow format 
automatically.",paraId:7,tocIndex:0},{value:`With this release, we take big 
strides towards our goal of making serialization fast, cross-language, unified 
and open.
-For details, please refer to the following commit 
messages.`,paraId:8,tocIndex:0},{value:"Note that javascript/rust support is 
still experimental, please let us know if you have any 
issues.",paraId:9,tocIndex:0},{value:"@wangweipeng2 made their first 
contribution in 
",paraId:10,tocIndex:1},{value:"https://github.com/alipay/fury/pull/215",paraId:10,tocIndex:1},{value:"@rainsonGain
 made their first contribution in 
",paraId:10,tocIndex:1},{value:"https://github.com/alipay/fury/pull/429",par 
[...]
+For details, please refer to the following commit 
messages.`,paraId:8,tocIndex:0},{value:"Note that javascript/rust support is 
still experimental, please let us know if you have any 
issues.",paraId:9,tocIndex:0},{value:"@wangweipeng2 made their first 
contribution in 
",paraId:10,tocIndex:1},{value:"https://github.com/alipay/fury/pull/215",paraId:10,tocIndex:1},{value:"@rainsonGain
 made their first contribution in 
",paraId:10,tocIndex:1},{value:"https://github.com/alipay/fury/pull/429",par 
[...]
 `,paraId:2,tocIndex:1},{value:"Dubbo fury integration: 
",paraId:3,tocIndex:1},{value:"https://github.com/fury-project/dubbo-serialization-fury",paraId:3,tocIndex:1},{value:"Add
 class checker API to customize security check 
behaviour(#890)",paraId:3,tocIndex:1},{value:`Python
-`,paraId:2,tocIndex:1},{value:"Support pyarrow6 bazel build (#859 
#862)",paraId:4,tocIndex:1},{value:"Support python 3.10 (#859 
#862)",paraId:4,tocIndex:1},{value:"[Java] Dubbo fury integration: 
",paraId:5,tocIndex:2},{value:"https://github.com/fury-project/dubbo-serialization-fury",paraId:5,tocIndex:2},{value:"[Java]
 fix isSecure check for xlang in java 
(#822)",paraId:5,tocIndex:2},{value:"[Java] register empty object by default 
(#829)",paraId:5,tocIndex:2},{value:"[Java] upgrade guava  [...]
+`,paraId:2,tocIndex:1},{value:"Support pyarrow6 bazel build (#859 
#862)",paraId:4,tocIndex:1},{value:"Support python 3.10 (#859 
#862)",paraId:4,tocIndex:1},{value:"[Java] Dubbo fury integration: 
",paraId:5,tocIndex:2},{value:"https://github.com/fury-project/dubbo-serialization-fury",paraId:5,tocIndex:2},{value:"[Java]
 fix isSecure check for xlang in java 
(#822)",paraId:5,tocIndex:2},{value:"[Java] register empty object by default 
(#829)",paraId:5,tocIndex:2},{value:"[Java] upgrade guava  [...]
 `,paraId:4,tocIndex:1},{value:"Creating 
fury:",paraId:5,tocIndex:1},{value:`val fury = Fury.builder()
  .withScalaOptimizationEnabled(true) 
  .requireClassRegistration(false)
@@ -1666,8 +1666,8 @@ println(fury.deserialize(fury.serialize(list)))
 println(fury.deserialize(fury.serialize(map)))
 `,paraId:12,tocIndex:1},{value:"Serialize 
enum:",paraId:13,tocIndex:1},{value:`enum Color { case Red, Green, Blue }
 println(fury.deserialize(fury.serialize(Color.Green)))
-`,paraId:14,tocIndex:1},{value:"[Scala] Support scala serialization: 
",paraId:15,tocIndex:2},{value:"case/object/tuple/string/collection/enum/basic",paraId:15,tocIndex:2},{value:"
 all supported",paraId:15,tocIndex:2},{value:"[Scala] Add 
",paraId:15,tocIndex:2},{value:"scala user 
documentation",paraId:15,tocIndex:2},{value:"[Scala] add optimized scala 
singleton object serializer",paraId:15,tocIndex:2},{value:"[Java] Make 
",paraId:15,tocIndex:2},{value:"java.io.Externalizable",paraId:15,to [...]
-Multiple scala serialization JIT optimization are included, and java 
serialization compatibility is improved 
too.`,paraId:1,tocIndex:0},{value:"Support python 3.11 and 3.12, drop python 
3.6 support",paraId:2,tocIndex:1},{value:"Refactor collection serialization 
framework to support writeReplace JIT",paraId:2,tocIndex:1},{value:"Integrate 
scala collection with fury java collection 
framework",paraId:2,tocIndex:1},{value:"Support scala collection jit 
serialization",paraId:2,tocIndex:1},{val [...]
+`,paraId:14,tocIndex:1},{value:"[Scala] Support scala serialization: 
",paraId:15,tocIndex:2},{value:"case/object/tuple/string/collection/enum/basic",paraId:15,tocIndex:2},{value:"
 all supported",paraId:15,tocIndex:2},{value:"[Scala] Add 
",paraId:15,tocIndex:2},{value:"scala user 
documentation",paraId:15,tocIndex:2},{value:"[Scala] add optimized scala 
singleton object serializer",paraId:15,tocIndex:2},{value:"[Java] Make 
",paraId:15,tocIndex:2},{value:"java.io.Externalizable",paraId:15,to [...]
+Multiple scala serialization JIT optimization are included, and java 
serialization compatibility is improved 
too.`,paraId:1,tocIndex:0},{value:"Support python 3.11 and 3.12, drop python 
3.6 support",paraId:2,tocIndex:1},{value:"Refactor collection serialization 
framework to support writeReplace JIT",paraId:2,tocIndex:1},{value:"Integrate 
scala collection with fury java collection 
framework",paraId:2,tocIndex:1},{value:"Support scala collection jit 
serialization",paraId:2,tocIndex:1},{val [...]
   String f1;
   List<Long> f2;
 }
@@ -1767,7 +1767,7 @@ for (int i = 0; i < 10; i++) {
   arrowWriter.write(encoder.toRow(beanA));
 }
 return arrowWriter.finishAsRecordBatch();
-`,paraId:9,tocIndex:3}],ie={},Re={title:"GraalVM 
Guide",toc:"menu",filename:"docs/guide/graalvm_guide.md",lastUpdated:1703515673e3,order:6,description:`GraalVM
 native image can compile java code into native code ahead to build faster, 
smaller, leaner applications.
+`,paraId:9,tocIndex:3}],ie={},Re={title:"GraalVM 
Guide",toc:"menu",filename:"docs/guide/graalvm_guide.md",lastUpdated:170359056e4,order:6,description:`GraalVM
 native image can compile java code into native code ahead to build faster, 
smaller, leaner applications.
 The native image doesn't have a JIT compiler to compile bytecode into machine 
code, and doesn't support
 reflection unless configure reflection 
file.`},Te=[{id:"graalvm-native-image",depth:1,title:"GraalVM Native 
Image"},{id:"not-thread-safe-fury",depth:2,title:"Not thread-safe 
Fury"},{id:"thread-safe-fury",depth:2,title:"Thread-safe 
Fury"},{id:"framework-integration",depth:2,title:"Framework 
Integration"},{id:"benchmark",depth:2,title:"Benchmark"},{id:"struct-benchmark",depth:3,title:"Struct
 Benchmark"},{id:"class-fields",depth:4,title:"Class 
Fields"},{id:"benchmark-results",depth:4,title: [...]
 The native image doesn't have a JIT compiler to compile bytecode into machine 
code, and doesn't support
@@ -1910,7 +1910,7 @@ Fury serialization took mills: 1289
 JDK serialization took mills: 15069
 Compare speed: Fury is 12.11x speed of JDK
 Compare size: Fury is 0.48x size of JDK
-`,paraId:30,tocIndex:10}],Ye={},Ot={title:"Development",toc:"menu",filename:"docs/guide/DEVELOPMENT.md",lastUpdated:1703515673e3,order:6,description:"Github
 repo: 
https://github.com/alipay/fury"},pa=[{id:"how-to-build-to-fury",depth:1,title:"How
 to build to Fury"},{id:"get-the-source-code",depth:2,title:"Get the source 
code"},{id:"building-fury-\uFE0F",depth:2,title:"Building Fury 
\u{1F3CB}\u{1F3FF}\u200D\u2640\uFE0F"},{id:"building-fury-java",depth:3,title:"Building
 Fury Java"},{id:"env [...]
+`,paraId:30,tocIndex:10}],Ye={},Ot={title:"Development",toc:"menu",filename:"docs/guide/DEVELOPMENT.md",lastUpdated:170359056e4,order:6,description:"Github
 repo: 
https://github.com/alipay/fury"},pa=[{id:"how-to-build-to-fury",depth:1,title:"How
 to build to Fury"},{id:"get-the-source-code",depth:2,title:"Get the source 
code"},{id:"building-fury-\uFE0F",depth:2,title:"Building Fury 
\u{1F3CB}\u{1F3FF}\u200D\u2640\uFE0F"},{id:"building-fury-java",depth:3,title:"Building
 Fury Java"},{id:"envi [...]
 mvn clean compile -DskipTests
 `,paraId:1,tocIndex:3},{value:"java 1.8+",paraId:2,tocIndex:4},{value:"maven 
3.6.3+",paraId:2,tocIndex:4},{value:`cd python
 pip install pyarrow==14.0.0 Cython wheel numpy pytest
@@ -1929,7 +1929,7 @@ cargo build
 # run test
 cargo test
 `,paraId:12,tocIndex:11},{value:`curl --proto '=https' --tlsv1.2 -sSf 
https://sh.rustup.rs | sh
-`,paraId:13,tocIndex:12}],da={},ua={title:"Scala Serialization 
Guide",toc:"menu",filename:"docs/guide/scala_guide.md",lastUpdated:1703515673e3,order:4,description:"Fury
 supports all scala object 
serialization:"},or=[{id:"scala-serialization",depth:1,title:"Scala 
serialization"},{id:"install",depth:2,title:"Install"},{id:"fury-creation",depth:2,title:"Fury
 creation"},{id:"serialize-case-object",depth:2,title:"Serialize case 
object"},{id:"serialize-pojo",depth:2,title:"Serialize pojo"},{id [...]
+`,paraId:13,tocIndex:12}],da={},ua={title:"Scala Serialization 
Guide",toc:"menu",filename:"docs/guide/scala_guide.md",lastUpdated:170359056e4,order:4,description:"Fury
 supports all scala object 
serialization:"},or=[{id:"scala-serialization",depth:1,title:"Scala 
serialization"},{id:"install",depth:2,title:"Install"},{id:"fury-creation",depth:2,title:"Fury
 creation"},{id:"serialize-case-object",depth:2,title:"Serialize case 
object"},{id:"serialize-pojo",depth:2,title:"Serialize pojo"},{id: [...]
 `,paraId:3,tocIndex:1},{value:"When using fury for scala serialization, you 
should create fury at least with following 
options:",paraId:4,tocIndex:2},{value:`val fury = Fury.builder()
   .withScalaOptimizationEnabled(true)
   .requireClassRegistration(false)
@@ -1971,7 +1971,7 @@ println(fury.deserialize(fury.serialize(ColorEnum.Green)))
 println(fury.deserialize(fury.serialize(opt)))
 val opt1: Option[Long] = None
 println(fury.deserialize(fury.serialize(opt1)))
-`,paraId:18,tocIndex:11},{value:"Scala 
",paraId:19,tocIndex:12},{value:"pojo/bean/case/object",paraId:19,tocIndex:12},{value:"
 are supported by fury jit well, the performance is as good as fury 
java.",paraId:19,tocIndex:12},{value:"Scala collections and generics doesn't 
follow java collection framework, and is not fully integrated with Fury JIT in 
current release version. The performance won't be as good as fury collections 
serialization for java.",paraId:20,tocIndex:12},{value:"The exec [...]
+`,paraId:18,tocIndex:11},{value:"Scala 
",paraId:19,tocIndex:12},{value:"pojo/bean/case/object",paraId:19,tocIndex:12},{value:"
 are supported by fury jit well, the performance is as good as fury 
java.",paraId:19,tocIndex:12},{value:"Scala collections and generics doesn't 
follow java collection framework, and is not fully integrated with Fury JIT in 
current release version. The performance won't be as good as fury collections 
serialization for java.",paraId:20,tocIndex:12},{value:"The exec [...]
   <repository>
     <id>sonatype</id>
     <url>https://s01.oss.sonatype.org/content/repositories/snapshots</url>
@@ -2019,7 +2019,7 @@ fury = { git= "https://github.com/alipay/fury.git";, 
branch = "main" }
 fury_derive = { git= "https://github.com/alipay/fury.git";, branch = "main" }
 lazy_static = { version = "1.4.0" }
 
-`,paraId:8,tocIndex:5}],wr={},Wo={title:"\u5B89\u88C5Fury",toc:"menu",filename:"docs/start/install.zh.md",lastUpdated:1703515673e3,order:0,description:"Nightly\u5FEB\u7167\u7248\u672C:"},po=[{id:"java",depth:3,title:"Java"},{id:"scala",depth:3,title:"Scala"},{id:"python",depth:3,title:"Python"},{id:"javascript",depth:3,title:"JavaScript"},{id:"golang",depth:3,title:"Golang"},{id:"javascript-1",depth:3,title:"JavaScript"},{id:"rust",depth:3,title:"Rust"}],bo=[{value:"Nightly\u5FEB\u7167\u
 [...]
+`,paraId:8,tocIndex:5}],wr={},Wo={title:"\u5B89\u88C5Fury",toc:"menu",filename:"docs/start/install.zh.md",lastUpdated:170359056e4,order:0,description:"Nightly\u5FEB\u7167\u7248\u672C:"},po=[{id:"java",depth:3,title:"Java"},{id:"scala",depth:3,title:"Scala"},{id:"python",depth:3,title:"Python"},{id:"javascript",depth:3,title:"JavaScript"},{id:"golang",depth:3,title:"Golang"},{id:"javascript-1",depth:3,title:"JavaScript"},{id:"rust",depth:3,title:"Rust"}],bo=[{value:"Nightly\u5FEB\u7167\u7
 [...]
   <repository>
     <id>sonatype</id>
     <url>https://s01.oss.sonatype.org/content/repositories/snapshots</url>
@@ -2067,7 +2067,7 @@ fury = { git= "https://github.com/alipay/fury.git";, 
branch = "main" }
 fury_derive = { git= "https://github.com/alipay/fury.git";, branch = "main" }
 lazy_static = { version = "1.4.0" }
 
-`,paraId:9,tocIndex:6}],Ci={},Hi={title:"Usage",toc:"menu",filename:"docs/start/usage.en.md",lastUpdated:1703515673e3,order:1},ui=[{id:"java-serialization",depth:2,title:"Java
 Serialization"},{id:"crosslanguage-serialization",depth:2,title:"CrossLanguage 
Serialization"},{id:"java",depth:3,title:"Java"},{id:"python",depth:3,title:"Python"},{id:"golang",depth:3,title:"Golang"},{id:"javascript",depth:3,title:"JavaScript"},{id:"rust",depth:3,title:"Rust"}],li=[{value:`import
 java.util.List;
+`,paraId:9,tocIndex:6}],Ci={},Hi={title:"Usage",toc:"menu",filename:"docs/start/usage.en.md",lastUpdated:170359056e4,order:1},ui=[{id:"java-serialization",depth:2,title:"Java
 Serialization"},{id:"crosslanguage-serialization",depth:2,title:"CrossLanguage 
Serialization"},{id:"java",depth:3,title:"Java"},{id:"python",depth:3,title:"Python"},{id:"golang",depth:3,title:"Golang"},{id:"javascript",depth:3,title:"JavaScript"},{id:"rust",depth:3,title:"Rust"}],li=[{value:`import
 java.util.List;
 import java.util.Arrays;
 import io.fury.*;
 
@@ -2218,7 +2218,7 @@ fn main() {
     let obj: Person = from_buffer(&bin).expect("should success");
     assert_eq!(obj, penson);
 }
-`,paraId:5,tocIndex:6}],si={},Ko={title:"\u5FEB\u901F\u5F00\u59CB",toc:"menu",filename:"docs/start/usage.zh.md",lastUpdated:1703515673e3,order:1,description:"\u4E0B\u9762\u662F\u4E00\u4E2A\u5982\u4F55\u4F7F\u7528Fury\u7684\u5FEB\u901F\u6307\u5357\uFF0C\u66F4\u591A\u4FE1\u606F\u8BF7\u67E5\u770B
 
\u7528\u6237\u6307\u5357\uFF0C\u8DE8\u8BED\u8A00\u5E8F\u5217\u5316\u6307\u5357\uFF0C
 
\u884C\u5B58\u6307\u5357."},Nn=[{id:"fury-java-\u5E8F\u5217\u5316",depth:3,title:"Fury
 Java \u5E8F\u5217\u5316"} [...]
+`,paraId:5,tocIndex:6}],si={},Ko={title:"\u5FEB\u901F\u5F00\u59CB",toc:"menu",filename:"docs/start/usage.zh.md",lastUpdated:170359056e4,order:1,description:"\u4E0B\u9762\u662F\u4E00\u4E2A\u5982\u4F55\u4F7F\u7528Fury\u7684\u5FEB\u901F\u6307\u5357\uFF0C\u66F4\u591A\u4FE1\u606F\u8BF7\u67E5\u770B
 
\u7528\u6237\u6307\u5357\uFF0C\u8DE8\u8BED\u8A00\u5E8F\u5217\u5316\u6307\u5357\uFF0C
 
\u884C\u5B58\u6307\u5357."},Nn=[{id:"fury-java-\u5E8F\u5217\u5316",depth:3,title:"Fury
 Java \u5E8F\u5217\u5316"}, [...]
 
 import java.util.*;
 
@@ -2449,7 +2449,7 @@ foo = Foo(f1=10, f2=list(range(1000_000)),
 binary: bytes = encoder.to_row(foo).to_bytes()
 foo_row = pyfury.RowData(encoder.schema, binary)
 print(foo_row.f2[100000], foo_row.f4[100000].f1, foo_row.f4[200000].f2[5])
-`,paraId:12,tocIndex:6}],fo={},ou={title:'<font color="#d74633" 
face="Lato,Roboto,Arial,sans-serif">Fury - 
\u4E00\u4E2A\u57FA\u4E8EJIT\u548C\u96F6\u62F7\u8D1D\u7684\u9AD8\u6027\u80FD\u591A\u8BED\u8A00\u5E8F\u5217\u5316\u6846\u67B6</font>',toc:"menu",filename:"docs/blog/list.zh.md",lastUpdated:1703515673e3,order:-1,description:`2023\u5E74
 12\u67089\u53F7
+`,paraId:12,tocIndex:6}],fo={},ou={title:'<font color="#d74633" 
face="Lato,Roboto,Arial,sans-serif">Fury - 
\u4E00\u4E2A\u57FA\u4E8EJIT\u548C\u96F6\u62F7\u8D1D\u7684\u9AD8\u6027\u80FD\u591A\u8BED\u8A00\u5E8F\u5217\u5316\u6846\u67B6</font>',toc:"menu",filename:"docs/blog/list.zh.md",lastUpdated:170359056e4,order:-1,description:`2023\u5E74
 12\u67089\u53F7
 \u5F88\u9AD8\u5174\u5411\u5927\u5BB6\u53D1\u5E03Fury 
0.4.1\u7248\u672C\uFF0C\u672C\u6B21\u53D1\u5E03\u91CD\u70B9\u65B0\u589E\u4E86 
Fury \u884C\u5B58 Rust \u652F\u6301\uFF0C\u540C\u65F6\u5BF9Fury \u884C\u5B58 
C++\u652F\u6301\u8FDB\u884C\u4E86\u5B8C\u5584\uFF0C\u652F\u6301\u53EF\u8FED\u4EE3\u7C7B\u578B\uFF0C\u6B22\u8FCE\u4F7F\u7528\uFF01`},Ti=[{id:"\u9879\u76EE\u65B0\u95FB\u548C\u535A\u5BA2",depth:1,title:"\u9879\u76EE\u65B0\u95FB\u548C\u535A\u5BA2"},{id:"fury-041-released",depth:1,title:"
 [...]
 \u5F88\u9AD8\u5174\u5411\u5927\u5BB6\u53D1\u5E03Fury 
0.4.1\u7248\u672C\uFF0C\u672C\u6B21\u53D1\u5E03\u91CD\u70B9\u65B0\u589E\u4E86 
Fury \u884C\u5B58 Rust \u652F\u6301\uFF0C\u540C\u65F6\u5BF9Fury \u884C\u5B58 
C++\u652F\u6301\u8FDB\u884C\u4E86\u5B8C\u5584\uFF0C\u652F\u6301\u53EF\u8FED\u4EE3\u7C7B\u578B\uFF0C\u6B22\u8FCE\u4F7F\u7528\uFF01
 `,paraId:2,tocIndex:1},{value:"Fury 0.4.0 
Released",paraId:3,tocIndex:1},{value:"2023\u5E74 
11\u670829\u53F7",paraId:4,tocIndex:2},{value:`
@@ -2469,7 +2469,7 @@ print(foo_row.f2[100000], foo_row.f4[100000].f1, 
foo_row.f4[200000].f2[5])
 
\u5927\u5BB6\u597D\uFF0C\u7ECF\u8FC7\u51E0\u4E2A\u6708\u7684\u52AA\u529B\uFF0CFury
 0.1.0 
\u7248\u672C\u6B63\u5F0F\u5BF9\u5916\u53D1\u5E03\u3002\u8FD9\u662F\u6211\u4EEC\u4ECA\u5E74\u56DB\u6708\u5E95\u6B63\u5F0F\u5728
 GitHub \u5F00\u53D1\u30017 \u6708 15 
\u53F7\u5BF9\u5916\u5F00\u6E90\u540E\u53D1\u5E03\u7684\u7B2C\u4E00\u4E2A\u7248\u672C\u3002\u8FD9\u4E00\u7248\u672C\u5305\u542B\u4E86\u5927\u91CF\u7279\u6027\uFF0C\u6B22\u8FCE\u5927\u5BB6\u4F7F\u7528\uFF0C\u5E0C\u671B\u80FD\u63D0\u4F9B\u5B9
 [...]
 `,paraId:18,tocIndex:9},{value:"Fury - 
\u4E00\u4E2A\u57FA\u4E8EJIT\u548C\u96F6\u62F7\u8D1D\u7684\u9AD8\u6027\u80FD\u591A\u8BED\u8A00\u5E8F\u5217\u5316\u6846\u67B6",paraId:19,tocIndex:9},{value:"2023\u5E74
 07\u670815\u53F7",paraId:20,tocIndex:10},{value:`
 Fury \u662F\u4E00\u4E2A\u57FA\u4E8E JIT 
\u52A8\u6001\u7F16\u8BD1\u548C\u96F6\u62F7\u8D1D\u7684\u591A\u8BED\u8A00\u5E8F\u5217\u5316\u6846\u67B6\uFF0C\u652F\u6301
 Java/Python/Golang/JavaScript/C++ 
\u7B49\u8BED\u8A00\uFF0C\u63D0\u4F9B\u5168\u81EA\u52A8\u7684\u5BF9\u8C61\u591A\u8BED\u8A00
 / \u8DE8\u8BED\u8A00\u5E8F\u5217\u5316\u80FD\u529B\uFF0C\u548C\u76F8\u6BD4 JDK 
\u6700\u9AD8 170 \u500D\u7684\u6027\u80FD\u3002
-`,paraId:0}],ci={},Gi={title:'<font color="#d74633" 
face="Lato,Roboto,Arial,sans-serif">Fury - A blazing fast multi-language 
serialization framework powered by jit and 
zero-copy</font>',toc:"menu",filename:"docs/blog/list.md",lastUpdated:1703515673e3,order:-1,description:`9
 Dec 2023
+`,paraId:0}],ci={},Gi={title:'<font color="#d74633" 
face="Lato,Roboto,Arial,sans-serif">Fury - A blazing fast multi-language 
serialization framework powered by jit and 
zero-copy</font>',toc:"menu",filename:"docs/blog/list.md",lastUpdated:170359056e4,order:-1,description:`9
 Dec 2023
 I'm pleased to announce the 0.4.1 release of the Fury: 
https://github.com/alipay/fury/releases/tag/v0.4.1. With this release, Fury 
support rust row format now. C++ row format has been enhanced too, now iterable 
types can be encoded to fury row format. Please try it out and share your 
feedbacks with us.`},Oi=[{id:"project-news-and-blog",depth:1,title:"Project 
News and Blog"},{id:"fury-041-released",depth:1,title:"Fury 0.4.1 
Released"},{id:"fury-040-released",depth:1,title:"Fury 0.4.0 Rele [...]
 I'm pleased to announce the 0.4.1 release of the Fury: 
`,paraId:2,tocIndex:1},{value:"https://github.com/alipay/fury/releases/tag/v0.4.1",paraId:2,tocIndex:1},{value:`.
 With this release, Fury support rust row format now. C++ row format has been 
enhanced too, now iterable types can be encoded to fury row format. Please try 
it out and share your feedbacks with us.
 `,paraId:2,tocIndex:1},{value:"Fury 0.4.0 
Released",paraId:3,tocIndex:1},{value:"29 Nov 
2023",paraId:4,tocIndex:2},{value:`
@@ -2491,7 +2491,7 @@ I'm pleased to announce the 0.1.1 release of the Fury. 
Fury 0.1.1 is our second
 I'm pleased to announce the 0.1.0 release of the Fury. Fury 0.1.0 is our first 
release since we started the development in github in 2023.04.28, and open 
sourced in 2023.07.15. This release includes many features: production-ready 
Java serialization, cross language serialization for 
Java/Python/JavaScript/Rust, row format support and so on.
 `,paraId:18,tocIndex:9},{value:"Fury - A blazing fast multi-language 
serialization framework powered by jit and 
zero-copy",paraId:19,tocIndex:9},{value:"15 July 
2023",paraId:20,tocIndex:10},{value:`
 Fury is a multi-language serialization framework powered by JIT dynamic 
compilation and zero copy. It supports Java/Python/Golang/JavaScript/Rust/C++, 
provide automatic multi-language objects serialization features, and 170x 
speedup compared to JDK serialization.
-`,paraId:20,tocIndex:10}],Ri={},jo={title:"Docs",toc:"menu",filename:"docs/index.md",lastUpdated:1703515673e3},Pi=[],Fn=[],di=null,pi={},dn={"docs/blog/fury_blazing_fast_multiple_language_serialization_framework.zh":{frontmatter:s,toc:l,texts:c,demos:u},"docs/blog/fury_blazing_fast_multiple_language_serialization_framework":{frontmatter:y,toc:f,texts:v,demos:h},"docs/guide/xlang_object_graph_guide.zh":{frontmatter:g,toc:x,texts:E,demos:I},"docs/guide/java_object_graph_guide.zh":{frontmat
 [...]
+`,paraId:20,tocIndex:10}],Ri={},jo={title:"Docs",toc:"menu",filename:"docs/index.md",lastUpdated:170359056e4},Pi=[],Fn=[],di=null,pi={},dn={"docs/blog/fury_blazing_fast_multiple_language_serialization_framework.zh":{frontmatter:s,toc:l,texts:c,demos:u},"docs/blog/fury_blazing_fast_multiple_language_serialization_framework":{frontmatter:y,toc:f,texts:v,demos:h},"docs/guide/xlang_object_graph_guide.zh":{frontmatter:g,toc:x,texts:E,demos:I},"docs/guide/java_object_graph_guide.zh":{frontmatt
 [...]
 In order to be iterable, non-array objects must have a [Symbol.iterator]() 
method.`)}var 
Le=!0,He=!1,Ze;return{s:function(){Ne=Ne.call(be)},n:function(){var 
ot=Ne.next();return 
Le=ot.done,ot},e:function(ot){He=!0,Ze=ot},f:function(){try{!Le&&Ne.return!=null&&Ne.return()}finally{if(He)throw
 Ze}}}}function X(be){if(Array.isArray(be))return be}function ne(be){if(typeof 
Symbol!="undefined"&&be[Symbol.iterator]!=null||be["@@iterator"]!=null)return 
Array.from(be)}function B(){throw new TypeErr [...]
 In order to be iterable, non-array objects must have a [Symbol.iterator]() 
method.`)}function Z(be){return X(be)||ne(be)||ve(be)||B()}function 
$(be,ke){if(!(be instanceof ke))throw new TypeError("Cannot call a class as a 
function")}function S(be,ke){for(var Ne=0;Ne<ke.length;Ne++){var 
de=ke[Ne];de.enumerable=de.enumerable||!1,de.configurable=!0,"value"in 
de&&(de.writable=!0),Object.defineProperty(be,O(de.key),de)}}function 
j(be,ke,Ne){return ke&&S(be.prototype,ke),Ne&&S(be,Ne),Object.def [...]
 In order to be iterable, non-array objects must have a [Symbol.iterator]() 
method.`)}function _unsupportedIterableToArray(d,m){if(d){if(typeof 
d=="string")return _arrayLikeToArray(d,m);var 
e=Object.prototype.toString.call(d).slice(8,-1);if(e==="Object"&&d.constructor&&(e=d.constructor.name),e==="Map"||e==="Set")return
 
Array.from(d);if(e==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e))return
 _arrayLikeToArray(d,m)}}function 
_arrayLikeToArray(d,m){(m==null||m>d.length)&&( [...]
@@ -2567,7 +2567,7 @@ Try polyfilling it using "@formatjs/intl-pluralrules"
 
|(?![\\s\\S])))+`,"m"),alias:l,inside:{line:{pattern:/(.)(?=[\s\S]).*(?:\r\n?|\n)?/,lookbehind:!0},prefix:{pattern:/[\s\S]/,alias:/\w+/.exec(u)[0]}}}}),Object.defineProperty(r.languages.diff,"PREFIXES",{value:o})}(n),n.languages.git={comment:/^#.*/m,deleted:/^[-–].*/m,inserted:/^\+.*/m,string:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,command:{pattern:/^.*\$
 git 
.*$/m,inside:{parameter:/\s--?\w+/}},coord:/^@@.*@@$/m,"commit-sha1":/^commit 
\w{40}$/m},n.languages.go=n.languages.extend("clike",{stri [...]
 In order to be iterable, non-array objects must have a [Symbol.iterator]() 
method.`)}d.exports=m,d.exports.__esModule=!0,d.exports.default=d.exports},97857:function(d,m,e){var
 n=e(9783);function r(u,s){var 
l=Object.keys(u);if(Object.getOwnPropertySymbols){var 
c=Object.getOwnPropertySymbols(u);s&&(c=c.filter(function(h){return 
Object.getOwnPropertyDescriptor(u,h).enumerable})),l.push.apply(l,c)}return 
l}function o(u){for(var s=1;s<arguments.length;s++){var 
l=arguments[s]!=null?arguments[s [...]
 In order to be iterable, non-array objects must have a [Symbol.iterator]() 
method.`)}},1413:function(d,m,e){"use strict";e.d(m,{Z:function(){return 
o}});var n=e(4942);function r(u,s){var 
l=Object.keys(u);if(Object.getOwnPropertySymbols){var 
c=Object.getOwnPropertySymbols(u);s&&(c=c.filter(function(h){return 
Object.getOwnPropertyDescriptor(u,h).enumerable})),l.push.apply(l,c)}return 
l}function o(u){for(var s=1;s<arguments.length;s++){var 
l=arguments[s]!=null?arguments[s]:{};s%2?r(Object(l [...]
-In order to be iterable, non-array objects must have a [Symbol.iterator]() 
method.`)}function l(c){return 
r(c)||(0,o.Z)(c)||(0,u.Z)(c)||s()}},83997:function(d,m,e){"use 
strict";e.d(m,{Z:function(){return o}});var n=e(71002);function 
r(u,s){if((0,n.Z)(u)!="object"||!u)return u;var 
l=u[Symbol.toPrimitive];if(l!==void 0){var 
c=l.call(u,s||"default");if((0,n.Z)(c)!="object")return c;throw new 
TypeError("@@toPrimitive must return a primitive 
value.")}return(s==="string"?String:Number)(u)}func [...]
+In order to be iterable, non-array objects must have a [Symbol.iterator]() 
method.`)}function l(c){return 
r(c)||(0,o.Z)(c)||(0,u.Z)(c)||s()}},83997:function(d,m,e){"use 
strict";e.d(m,{Z:function(){return o}});var n=e(71002);function 
r(u,s){if((0,n.Z)(u)!="object"||!u)return u;var 
l=u[Symbol.toPrimitive];if(l!==void 0){var 
c=l.call(u,s||"default");if((0,n.Z)(c)!="object")return c;throw new 
TypeError("@@toPrimitive must return a primitive 
value.")}return(s==="string"?String:Number)(u)}func [...]
 
(`+v+")");I.code="CSS_CHUNK_LOAD_FAILED",I.type=f,I.request=v,c.parentNode.removeChild(c),l(I)}};return
 
c.onerror=c.onload=h,c.href=o,u?u.parentNode.insertBefore(c,u.nextSibling):document.head.appendChild(c),c},m=function(r,o){for(var
 u=document.getElementsByTagName("link"),s=0;s<u.length;s++){var 
l=u[s],c=l.getAttribute("data-href")||l.getAttribute("href");if(l.rel==="stylesheet"&&(c===r||c===o))return
 l}for(var h=document.getElementsByTagName("style"),s=0;s<h.length;s++){var 
l=h[s],c=l [...]
 (`+y+": 
"+f+")",l.name="ChunkLoadError",l.type=y,l.request=f,o[1](l)}};__webpack_require__.l(s,c,"chunk-"+n,n)}};var
 m=function(n,r){var o=r[0],u=r[1],s=r[2],l,c,h=0;if(o.some(function(f){return 
d[f]!==0})){for(l in 
u)__webpack_require__.o(u,l)&&(__webpack_require__.m[l]=u[l]);if(s)var 
y=s(__webpack_require__)}for(n&&n(r);h<o.length;h++)c=o[h],__webpack_require__.o(d,c)&&d[c]&&d[c][0](),d[c]=0},e=self.webpackChunkfury_site=self.webpackChunkfury_site||[];e.forEach(m.bind(null,0)),e.push=m
 [...]
 In order to be iterable, non-array objects must have a [Symbol.iterator]() 
method.`)}function Rr(nt,D){return sa(nt)||Ja(nt,D)||er(nt,D)||Zr()}var 
It=__webpack_require__(62435),vo=__webpack_require__(6915),Dr=__webpack_require__(20057),No=__webpack_require__(34162);function
 Zo(nt){var D=nt.id,F=nt.basename,G=nt.cb,ce=new 
URLSearchParams({route:D,url:window.location.href}).toString(),ue="".concat(su(F),"__serverLoader?").concat(ce);fetch(ue,{credentials:"include"}).then(function(Ie){retur
 [...]
diff --git a/zh/blog/fury_0_1_0_release/index.html 
b/zh/blog/fury_0_1_0_release/index.html
index a34c132..4134e3d 100644
--- a/zh/blog/fury_0_1_0_release/index.html
+++ b/zh/blog/fury_0_1_0_release/index.html
@@ -9,6 +9,6 @@
 </head>
 <body>
 <div id="root"></div>
-<script src="/umi.8f9af598.js"></script>
+<script src="/umi.16a90a81.js"></script>
 
 </body></html>
\ No newline at end of file
diff --git a/zh/blog/fury_0_1_1_release/index.html 
b/zh/blog/fury_0_1_1_release/index.html
index a34c132..4134e3d 100644
--- a/zh/blog/fury_0_1_1_release/index.html
+++ b/zh/blog/fury_0_1_1_release/index.html
@@ -9,6 +9,6 @@
 </head>
 <body>
 <div id="root"></div>
-<script src="/umi.8f9af598.js"></script>
+<script src="/umi.16a90a81.js"></script>
 
 </body></html>
\ No newline at end of file
diff --git a/zh/blog/fury_0_1_2_release/index.html 
b/zh/blog/fury_0_1_2_release/index.html
index a34c132..4134e3d 100644
--- a/zh/blog/fury_0_1_2_release/index.html
+++ b/zh/blog/fury_0_1_2_release/index.html
@@ -9,6 +9,6 @@
 </head>
 <body>
 <div id="root"></div>
-<script src="/umi.8f9af598.js"></script>
+<script src="/umi.16a90a81.js"></script>
 
 </body></html>
\ No newline at end of file
diff --git a/zh/blog/fury_0_2_0_release/index.html 
b/zh/blog/fury_0_2_0_release/index.html
index a34c132..4134e3d 100644
--- a/zh/blog/fury_0_2_0_release/index.html
+++ b/zh/blog/fury_0_2_0_release/index.html
@@ -9,6 +9,6 @@
 </head>
 <body>
 <div id="root"></div>
-<script src="/umi.8f9af598.js"></script>
+<script src="/umi.16a90a81.js"></script>
 
 </body></html>
\ No newline at end of file
diff --git a/zh/blog/fury_0_2_1_release/index.html 
b/zh/blog/fury_0_2_1_release/index.html
index a34c132..4134e3d 100644
--- a/zh/blog/fury_0_2_1_release/index.html
+++ b/zh/blog/fury_0_2_1_release/index.html
@@ -9,6 +9,6 @@
 </head>
 <body>
 <div id="root"></div>
-<script src="/umi.8f9af598.js"></script>
+<script src="/umi.16a90a81.js"></script>
 
 </body></html>
\ No newline at end of file
diff --git a/zh/blog/fury_0_3_0_release/index.html 
b/zh/blog/fury_0_3_0_release/index.html
index a34c132..4134e3d 100644
--- a/zh/blog/fury_0_3_0_release/index.html
+++ b/zh/blog/fury_0_3_0_release/index.html
@@ -9,6 +9,6 @@
 </head>
 <body>
 <div id="root"></div>
-<script src="/umi.8f9af598.js"></script>
+<script src="/umi.16a90a81.js"></script>
 
 </body></html>
\ No newline at end of file
diff --git a/zh/blog/fury_0_3_1_release/index.html 
b/zh/blog/fury_0_3_1_release/index.html
index a34c132..4134e3d 100644
--- a/zh/blog/fury_0_3_1_release/index.html
+++ b/zh/blog/fury_0_3_1_release/index.html
@@ -9,6 +9,6 @@
 </head>
 <body>
 <div id="root"></div>
-<script src="/umi.8f9af598.js"></script>
+<script src="/umi.16a90a81.js"></script>
 
 </body></html>
\ No newline at end of file
diff --git a/zh/blog/fury_0_4_0_release/index.html 
b/zh/blog/fury_0_4_0_release/index.html
index a34c132..4134e3d 100644
--- a/zh/blog/fury_0_4_0_release/index.html
+++ b/zh/blog/fury_0_4_0_release/index.html
@@ -9,6 +9,6 @@
 </head>
 <body>
 <div id="root"></div>
-<script src="/umi.8f9af598.js"></script>
+<script src="/umi.16a90a81.js"></script>
 
 </body></html>
\ No newline at end of file
diff --git a/zh/blog/fury_0_4_1_release/index.html 
b/zh/blog/fury_0_4_1_release/index.html
index a34c132..4134e3d 100644
--- a/zh/blog/fury_0_4_1_release/index.html
+++ b/zh/blog/fury_0_4_1_release/index.html
@@ -9,6 +9,6 @@
 </head>
 <body>
 <div id="root"></div>
-<script src="/umi.8f9af598.js"></script>
+<script src="/umi.16a90a81.js"></script>
 
 </body></html>
\ No newline at end of file
diff --git 
a/zh/blog/fury_blazing_fast_multiple_language_serialization_framework/index.html
 
b/zh/blog/fury_blazing_fast_multiple_language_serialization_framework/index.html
index a34c132..4134e3d 100644
--- 
a/zh/blog/fury_blazing_fast_multiple_language_serialization_framework/index.html
+++ 
b/zh/blog/fury_blazing_fast_multiple_language_serialization_framework/index.html
@@ -9,6 +9,6 @@
 </head>
 <body>
 <div id="root"></div>
-<script src="/umi.8f9af598.js"></script>
+<script src="/umi.16a90a81.js"></script>
 
 </body></html>
\ No newline at end of file
diff --git a/zh/blog/list/index.html b/zh/blog/list/index.html
index a34c132..4134e3d 100644
--- a/zh/blog/list/index.html
+++ b/zh/blog/list/index.html
@@ -9,6 +9,6 @@
 </head>
 <body>
 <div id="root"></div>
-<script src="/umi.8f9af598.js"></script>
+<script src="/umi.16a90a81.js"></script>
 
 </body></html>
\ No newline at end of file
diff --git a/zh/guide/java_object_graph_guide/index.html 
b/zh/guide/java_object_graph_guide/index.html
index a34c132..4134e3d 100644
--- a/zh/guide/java_object_graph_guide/index.html
+++ b/zh/guide/java_object_graph_guide/index.html
@@ -9,6 +9,6 @@
 </head>
 <body>
 <div id="root"></div>
-<script src="/umi.8f9af598.js"></script>
+<script src="/umi.16a90a81.js"></script>
 
 </body></html>
\ No newline at end of file
diff --git a/zh/guide/row_format_guide/index.html 
b/zh/guide/row_format_guide/index.html
index a34c132..4134e3d 100644
--- a/zh/guide/row_format_guide/index.html
+++ b/zh/guide/row_format_guide/index.html
@@ -9,6 +9,6 @@
 </head>
 <body>
 <div id="root"></div>
-<script src="/umi.8f9af598.js"></script>
+<script src="/umi.16a90a81.js"></script>
 
 </body></html>
\ No newline at end of file
diff --git a/zh/guide/xlang_object_graph_guide/index.html 
b/zh/guide/xlang_object_graph_guide/index.html
index a34c132..4134e3d 100644
--- a/zh/guide/xlang_object_graph_guide/index.html
+++ b/zh/guide/xlang_object_graph_guide/index.html
@@ -9,6 +9,6 @@
 </head>
 <body>
 <div id="root"></div>
-<script src="/umi.8f9af598.js"></script>
+<script src="/umi.16a90a81.js"></script>
 
 </body></html>
\ No newline at end of file
diff --git a/zh/introduction/benchmark/index.html 
b/zh/introduction/benchmark/index.html
index a34c132..4134e3d 100644
--- a/zh/introduction/benchmark/index.html
+++ b/zh/introduction/benchmark/index.html
@@ -9,6 +9,6 @@
 </head>
 <body>
 <div id="root"></div>
-<script src="/umi.8f9af598.js"></script>
+<script src="/umi.16a90a81.js"></script>
 
 </body></html>
\ No newline at end of file
diff --git a/zh/introduction/features/index.html 
b/zh/introduction/features/index.html
index a34c132..4134e3d 100644
--- a/zh/introduction/features/index.html
+++ b/zh/introduction/features/index.html
@@ -9,6 +9,6 @@
 </head>
 <body>
 <div id="root"></div>
-<script src="/umi.8f9af598.js"></script>
+<script src="/umi.16a90a81.js"></script>
 
 </body></html>
\ No newline at end of file
diff --git a/zh/introduction/introduction/index.html 
b/zh/introduction/introduction/index.html
index a34c132..4134e3d 100644
--- a/zh/introduction/introduction/index.html
+++ b/zh/introduction/introduction/index.html
@@ -9,6 +9,6 @@
 </head>
 <body>
 <div id="root"></div>
-<script src="/umi.8f9af598.js"></script>
+<script src="/umi.16a90a81.js"></script>
 
 </body></html>
\ No newline at end of file
diff --git a/zh/start/install/index.html b/zh/start/install/index.html
index a34c132..4134e3d 100644
--- a/zh/start/install/index.html
+++ b/zh/start/install/index.html
@@ -9,6 +9,6 @@
 </head>
 <body>
 <div id="root"></div>
-<script src="/umi.8f9af598.js"></script>
+<script src="/umi.16a90a81.js"></script>
 
 </body></html>
\ No newline at end of file
diff --git a/zh/start/usage/index.html b/zh/start/usage/index.html
index a34c132..4134e3d 100644
--- a/zh/start/usage/index.html
+++ b/zh/start/usage/index.html
@@ -9,6 +9,6 @@
 </head>
 <body>
 <div id="root"></div>
-<script src="/umi.8f9af598.js"></script>
+<script src="/umi.16a90a81.js"></script>
 
 </body></html>
\ No newline at end of file
diff --git a/~demos/:id/index.html b/~demos/:id/index.html
index a34c132..4134e3d 100644
--- a/~demos/:id/index.html
+++ b/~demos/:id/index.html
@@ -9,6 +9,6 @@
 </head>
 <body>
 <div id="root"></div>
-<script src="/umi.8f9af598.js"></script>
+<script src="/umi.16a90a81.js"></script>
 
 </body></html>
\ No newline at end of file


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

Reply via email to