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]