| <!doctype html><html lang=en-US dir=ltr class="docs-wrapper plugin-docs plugin-id-default docs-version-1.3.0 docs-doc-page docs-doc-id-introduction/features" data-has-hydrated=false><head><meta charset=UTF-8><meta name=generator content="Docusaurus v3.10.1"><title data-rh=true>Features | Apache Fory™</title><meta data-rh=true name=viewport content="width=device-width, initial-scale=1.0"/><meta data-rh=true property=og:url content=https://fory.apache.org/docs/introduction/features /><meta data-rh=true property=og:locale content=en_US /><meta data-rh=true property=og:locale:alternate content=zh_CN /><meta data-rh=true name=docusaurus_locale content=en-US /><meta data-rh=true name=docsearch:language content=en-US /><meta data-rh=true http-equiv=Content-Security-Policy content="frame-src 'self' https://ghbtns.com/;"/><meta data-rh=true property=og:image content=https://fory.apache.org/img/logo.png /><meta data-rh=true property=og:image:width content=1500 /><meta data-rh=true property=og:image:height content=1500 /><meta data-rh=true name=twitter:card content=summary_large_image /><meta data-rh=true name=twitter:image content=https://fory.apache.org/img/logo.png /><meta data-rh=true name=docusaurus_version content=1.3.0 /><meta data-rh=true name=docusaurus_tag content=docs-default-1.3.0 /><meta data-rh=true name=docsearch:version content=1.3.0 /><meta data-rh=true name=docsearch:docusaurus_tag content=docs-default-1.3.0 /><meta data-rh=true property=og:title content="Features | Apache Fory™"/><meta data-rh=true name=description content="Core Capabilities"/><meta data-rh=true property=og:description content="Core Capabilities"/><link data-rh=true rel=icon href=/img/favicon.ico /><link data-rh=true rel=canonical href=https://fory.apache.org/docs/introduction/features /><link data-rh=true rel=alternate href=https://fory.apache.org/docs/introduction/features hreflang=en-US /><link data-rh=true rel=alternate href=https://fory.apache.org/zh-CN/docs/introduction/features hreflang=zh-CN /><link data-rh=true rel=alternate href=https://fory.apache.org/docs/introduction/features hreflang=x-default /><script data-rh=true type=application/ld+json>{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","item":"https://fory.apache.org/docs/introduction/features","name":"Features","position":1}]}</script><link rel=alternate type=application/rss+xml href=/blog/rss.xml title="Apache Fory™ RSS Feed"><link rel=alternate type=application/atom+xml href=/blog/atom.xml title="Apache Fory™ Atom Feed"><script type=text/javascript>"fury.apache.org"===window.location.host&&(window.location.href="https://fory.apache.org"),function(){for(var o=window.location.pathname,a=["guide","introduction","start"],n=0;n<a.length;n++){var t=a[n],i=RegExp("^((?:/[a-z]{2}-[A-Z]{2})?/docs(?:/(?:next|[0-9]+.[0-9]+))?)/docs/"+t+"(/.*)?$"),c=o.match(i);if(c){var r=c[1]+"/"+t+(c[2]||"");window.location.replace(r+window.location.search+window.location.hash);return}}}()</script><link rel=stylesheet href=/assets/css/styles.3a1edaa1.css /><script src=/assets/js/runtime~main.605b11b1.js defer></script><script src=/assets/js/main.283fea4b.js defer></script></head><body><svg style="display: none;"><defs> |
| <symbol id=theme-svg-external-link viewBox="0 0 24 24"><path fill=currentColor d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol> |
| </defs></svg> |
| <script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||"light"),document.documentElement.setAttribute("data-theme-choice",t||"light")}(),function(){try{for(var[t,e]of new URLSearchParams(window.location.search).entries())if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id=__docusaurus><div role=region aria-label="Skip to main content"><a class=skipToContent_fXgn href=#__docusaurus_skipToContent_fallback>Skip to main content</a></div><nav aria-label=Main class="theme-layout-navbar navbar navbar--fixed-top"><div class=navbar__inner><div class="theme-layout-navbar-left navbar__items"><button aria-label="Toggle navigation bar" aria-expanded=false class="navbar__toggle clean-btn" type=button><svg width=30 height=30 viewBox="0 0 30 30" aria-hidden=true><path stroke=currentColor stroke-linecap=round stroke-miterlimit=10 stroke-width=2 d="M4 7h22M4 15h22M4 23h22"/></svg></button><a class=navbar__brand href=/><div class=navbar__logo><img src=/img/fory-logo-light.png alt="Apache Fory™ Logo" class="themedComponent_mlkZ themedComponent--light_NVdE"/><img src=/img/fory-logo-dark.png alt="Apache Fory™ Logo" class="themedComponent_mlkZ themedComponent--dark_xIcU"/></div><b class="navbar__title text--truncate"></b></a><a aria-current=page class="navbar__item navbar__link navbar__link--active" href=/docs/introduction/overview>Docs</a><a class="navbar__item navbar__link" href=/docs/specification/xlang_serialization_spec>Specification</a><a class="navbar__item navbar__link" href=/docs/community/>Community</a><a class="navbar__item navbar__link" href=/user>Users</a><a class="navbar__item navbar__link" href=/download>Download</a><a class="navbar__item navbar__link" href=/blog>Blog</a></div><div class="theme-layout-navbar-right navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href=# aria-haspopup=true aria-expanded=false role=button class=navbar__link>ASF</a><ul class=dropdown__menu><li><a href=https://www.apache.org/ target=_blank rel="noopener noreferrer" class=dropdown__link>Foundation</a><li><a href=https://www.apache.org/licenses/ target=_blank rel="noopener noreferrer" class=dropdown__link>License</a><li><a href=https://www.apache.org/events/current-event.html target=_blank rel="noopener noreferrer" class=dropdown__link>Events</a><li><a href=https://privacy.apache.org/policies/privacy-policy-public.html target=_blank rel="noopener noreferrer" class=dropdown__link>Privacy</a><li><a href=https://www.apache.org/security/ target=_blank rel="noopener noreferrer" class=dropdown__link>Security</a><li><a href=https://www.apache.org/foundation/sponsorship.html target=_blank rel="noopener noreferrer" class=dropdown__link>Sponsorship</a><li><a href=https://www.apache.org/foundation/thanks.html target=_blank rel="noopener noreferrer" class=dropdown__link>Thanks</a><li><a href=https://www.apache.org/foundation/policies/conduct.html target=_blank rel="noopener noreferrer" class=dropdown__link>Code of Conduct</a></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a class=navbar__link aria-haspopup=true aria-expanded=false role=button href=/docs/introduction/features>1.3.0</a><ul class=dropdown__menu><li><a class=dropdown__link href=/docs/next/introduction/features>dev</a><li><a aria-current=page class="dropdown__link dropdown__link--active" href=/docs/introduction/features>1.3.0</a><li><a class=dropdown__link href=/docs/1.2.0/introduction/features>1.2.0</a><li><a class=dropdown__link href=/docs/1.1.0/introduction/features>1.1.0</a><li><a class=dropdown__link href=/docs/1.0.0/introduction/features>1.0.0</a><li><a class=dropdown__link href=/docs/0.17/introduction/features>0.17</a><li><a class=dropdown__link href=/docs/0.16/introduction/features>0.16</a><li><a class=dropdown__link href=/docs/0.15/introduction/features>0.15</a><li><a class=dropdown__link href=/docs/0.14/introduction/features>0.14</a><li><a class=dropdown__link href=/docs/0.13/introduction/features>0.13</a><li><a class=dropdown__link href=/docs/0.12/introduction/features>0.12</a><li><a class=dropdown__link href=/docs/0.11/introduction/features>0.11</a><li><a class=dropdown__link href=/docs/0.10/introduction/features>0.10</a></ul></div><a href=https://github.com/apache/fory target=_blank rel="noopener noreferrer" class="navbar__item navbar__link header-github-link" aria-label="GitHub repository"></a><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href=# aria-haspopup=true aria-expanded=false role=button class=navbar__link><svg viewBox="0 0 24 24" width=20 height=20 aria-hidden=true class=iconLanguage_nlXk><path fill=currentColor d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"/></svg>English</a><ul class=dropdown__menu><li><a href=/docs/introduction/features target=_self rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang=en-US>English</a><li><a href=/zh-CN/docs/introduction/features target=_self rel="noopener noreferrer" class=dropdown__link lang=zh-CN>简体中文</a></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type=button disabled title="system mode" aria-label="Switch between dark and light mode (currently system mode)"><svg viewBox="0 0 24 24" width=24 height=24 aria-hidden=true class="toggleIcon_g3eP lightToggleIcon_pyhR"><path fill=currentColor d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"/></svg><svg viewBox="0 0 24 24" width=24 height=24 aria-hidden=true class="toggleIcon_g3eP darkToggleIcon_wfgR"><path fill=currentColor d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"/></svg><svg viewBox="0 0 24 24" width=24 height=24 aria-hidden=true class="toggleIcon_g3eP systemToggleIcon_QzmC"><path fill=currentColor d="m12 21c4.971 0 9-4.029 9-9s-4.029-9-9-9-9 4.029-9 9 4.029 9 9 9zm4.95-13.95c1.313 1.313 2.05 3.093 2.05 4.95s-0.738 3.637-2.05 4.95c-1.313 1.313-3.093 2.05-4.95 2.05v-14c1.857 0 3.637 0.737 4.95 2.05z"/></svg></button></div><div class=navbarSearchContainer_Bca1><div class=navbar__search><span aria-label="expand searchbar" role=button class=search-icon tabindex=0></span><input id=search_input_react type=search placeholder=Loading... aria-label=Search class="navbar__search-input search-bar" disabled/></div></div></div></div><div role=presentation class=navbar-sidebar__backdrop></div></nav><div id=__docusaurus_skipToContent_fallback class="theme-layout-main main-wrapper mainWrapper_z2l0"><div class=docsWrapper_hBAB><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type=button></button><div class=docRoot_UBD9><aside class="theme-doc-sidebar-container docSidebarContainer_YfHR"><div class=sidebarViewport_aRkj><div class=sidebar_njMd><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class=menu__list-item-collapsible><a class="categoryLink_byQd menu__link menu__link--sublist menu__link--sublist-caret menu__link--active" role=button aria-expanded=true href=/docs/introduction/overview><span title=Introduction class=categoryLinkLabel_W154>Introduction</span></a></div><ul class=menu__list><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/docs/introduction/overview><span title=Overview class=linkLabel_WmDU>Overview</span></a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link menu__link--active" aria-current=page tabindex=0 href=/docs/introduction/features><span title=Features class=linkLabel_WmDU>Features</span></a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/docs/introduction/benchmark><span title=Benchmark class=linkLabel_WmDU>Benchmark</span></a></ul><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class=menu__list-item-collapsible><a class="categoryLink_byQd menu__link menu__link--sublist menu__link--sublist-caret" role=button aria-expanded=true href=/docs/start/install><span title=Start class=categoryLinkLabel_W154>Start</span></a></div><ul class=menu__list><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/docs/start/install><span title=Install class=linkLabel_WmDU>Install</span></a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/docs/start/usage><span title=Usage class=linkLabel_WmDU>Usage</span></a></ul><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="categoryLink_byQd menu__link menu__link--sublist menu__link--sublist-caret" role=button aria-expanded=false href=/docs/compiler/><span title="Schema IDL & Compiler" class=categoryLinkLabel_W154>Schema IDL & Compiler</span></a></div><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class=menu__list-item-collapsible><a class="categoryLink_byQd menu__link menu__link--sublist menu__link--sublist-caret" role=button aria-expanded=true href=/docs/guide/java/><span title=Guide class=categoryLinkLabel_W154>Guide</span></a></div><ul class=menu__list><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="categoryLink_byQd menu__link menu__link--sublist" tabindex=0 href=/docs/guide/java/><span title=Java class=categoryLinkLabel_W154>Java</span></a><button aria-label="Expand sidebar category 'Java'" aria-expanded=false type=button class="clean-btn menu__caret"></button></div><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="categoryLink_byQd menu__link menu__link--sublist" tabindex=0 href=/docs/guide/python/><span title=Python class=categoryLinkLabel_W154>Python</span></a><button aria-label="Expand sidebar category 'Python'" aria-expanded=false type=button class="clean-btn menu__caret"></button></div><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="categoryLink_byQd menu__link menu__link--sublist" tabindex=0 href=/docs/guide/rust/><span title=Rust class=categoryLinkLabel_W154>Rust</span></a><button aria-label="Expand sidebar category 'Rust'" aria-expanded=false type=button class="clean-btn menu__caret"></button></div><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="categoryLink_byQd menu__link menu__link--sublist" tabindex=0 href=/docs/guide/cpp/><span title=C++ class=categoryLinkLabel_W154>C++</span></a><button aria-label="Expand sidebar category 'C++'" aria-expanded=false type=button class="clean-btn menu__caret"></button></div><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="categoryLink_byQd menu__link menu__link--sublist" tabindex=0 href=/docs/guide/go/><span title=Go class=categoryLinkLabel_W154>Go</span></a><button aria-label="Expand sidebar category 'Go'" aria-expanded=false type=button class="clean-btn menu__caret"></button></div><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="categoryLink_byQd menu__link menu__link--sublist" tabindex=0 href=/docs/guide/javascript/><span title=JavaScript class=categoryLinkLabel_W154>JavaScript</span></a><button aria-label="Expand sidebar category 'JavaScript'" aria-expanded=false type=button class="clean-btn menu__caret"></button></div><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="categoryLink_byQd menu__link menu__link--sublist" tabindex=0 href=/docs/guide/csharp/><span title=C# class=categoryLinkLabel_W154>C#</span></a><button aria-label="Expand sidebar category 'C#'" aria-expanded=false type=button class="clean-btn menu__caret"></button></div><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="categoryLink_byQd menu__link menu__link--sublist" tabindex=0 href=/docs/guide/swift/><span title=Swift class=categoryLinkLabel_W154>Swift</span></a><button aria-label="Expand sidebar category 'Swift'" aria-expanded=false type=button class="clean-btn menu__caret"></button></div><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="categoryLink_byQd menu__link menu__link--sublist" tabindex=0 href=/docs/guide/dart/><span title=Dart class=categoryLinkLabel_W154>Dart</span></a><button aria-label="Expand sidebar category 'Dart'" aria-expanded=false type=button class="clean-btn menu__caret"></button></div><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="categoryLink_byQd menu__link menu__link--sublist" tabindex=0 href=/docs/guide/scala/><span title=Scala class=categoryLinkLabel_W154>Scala</span></a><button aria-label="Expand sidebar category 'Scala'" aria-expanded=false type=button class="clean-btn menu__caret"></button></div><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="categoryLink_byQd menu__link menu__link--sublist" tabindex=0 href=/docs/guide/kotlin/><span title=Kotlin class=categoryLinkLabel_W154>Kotlin</span></a><button aria-label="Expand sidebar category 'Kotlin'" aria-expanded=false type=button class="clean-btn menu__caret"></button></div><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="categoryLink_byQd menu__link menu__link--sublist" tabindex=0 href=/docs/guide/xlang/><span title="Cross Language" class=categoryLinkLabel_W154>Cross Language</span></a><button aria-label="Expand sidebar category 'Cross Language'" aria-expanded=false type=button class="clean-btn menu__caret"></button></div></ul></ul></nav></div></div></aside><main class=docMainContainer_TBSr><div class="container padding-top--md padding-bottom--lg"><div class=row><div class="col docItemCol_VOVn"><div class=docItemContainer_Djhp><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label=Breadcrumbs><ul class=breadcrumbs><li class=breadcrumbs__item><a aria-label="Home page" class=breadcrumbs__link href=/><svg viewBox="0 0 24 24" class=breadcrumbHomeIcon_YNFT><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill=currentColor /></svg></a><li class=breadcrumbs__item><span class=breadcrumbs__link>Introduction</span><li class="breadcrumbs__item breadcrumbs__item--active"><span class=breadcrumbs__link>Features</span></ul></nav><span class="theme-doc-version-badge badge badge--secondary">Version: 1.3.0</span><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_ITEo"><button type=button class="clean-btn tocCollapsibleButton_TO0P">On this page</button></div><div class="theme-doc-markdown markdown"><header><h1>Features</h1></header><h2 class="anchor anchorTargetStickyNavbar_Vzrq" id=core-capabilities>Core Capabilities<a href=#core-capabilities class=hash-link aria-label="Direct link to Core Capabilities" title="Direct link to Core Capabilities" translate=no></a></h2> |
| <h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=high-performance-serialization>High-Performance Serialization<a href=#high-performance-serialization class=hash-link aria-label="Direct link to High-Performance Serialization" title="Direct link to High-Performance Serialization" translate=no></a></h3> |
| <p>Apache Fory™ delivers exceptional performance through advanced optimization techniques:</p> |
| <ul> |
| <li class=""><strong>JIT Compilation</strong>: Runtime code generation for Java eliminates virtual method calls and inlines hot paths</li> |
| <li class=""><strong>Static Code Generation</strong>: Compile-time code generation for Rust, C++, and Go delivers peak performance without runtime overhead</li> |
| <li class=""><strong>Zero-Copy Operations</strong>: Direct memory access without intermediate buffer copies; row format enables random access and partial serialization</li> |
| <li class=""><strong>Intelligent Encoding</strong>: Variable-length compression for integers and strings; SIMD acceleration for arrays (Java 16+)</li> |
| <li class=""><strong>Meta Sharing</strong>: Class metadata packing reduces redundant type information across serializations</li> |
| </ul> |
| <h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=cross-language-serialization>Cross-Language Serialization<a href=#cross-language-serialization class=hash-link aria-label="Direct link to Cross-Language Serialization" title="Direct link to Cross-Language Serialization" translate=no></a></h3> |
| <p>The <strong><a class="" href=/docs/specification/xlang_serialization_spec>xlang serialization format</a></strong> enables seamless data exchange across programming languages:</p> |
| <ul> |
| <li class=""><strong>Automatic Type Mapping</strong>: Intelligent conversion between language-specific types (<a class="" href=/docs/specification/xlang_type_mapping>type mapping</a>)</li> |
| <li class=""><strong>Reference Preservation</strong>: Shared and circular references work correctly across languages</li> |
| <li class=""><strong>Polymorphism</strong>: Objects serialize/deserialize with their actual runtime types</li> |
| <li class=""><strong>Schema Evolution</strong>: Optional forward/backward compatibility for evolving schemas</li> |
| <li class=""><strong>Automatic Serialization</strong>: No IDL or schema definitions required; serialize any object directly without code generation</li> |
| </ul> |
| <h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=row-format>Row Format<a href=#row-format class=hash-link aria-label="Direct link to Row Format" title="Direct link to Row Format" translate=no></a></h3> |
| <p>A cache-friendly <strong><a class="" href=/docs/specification/row_format_spec>row format</a></strong> optimized for analytics workloads:</p> |
| <ul> |
| <li class=""><strong>Zero-Copy Random Access</strong>: Read individual fields without deserializing entire objects</li> |
| <li class=""><strong>Partial Operations</strong>: Selective field serialization and deserialization for efficiency</li> |
| <li class=""><strong>Apache Arrow Integration</strong>: Seamless conversion to columnar format for analytics pipelines</li> |
| <li class=""><strong>Multi-Language</strong>: Available in Java, Python, Rust and C++</li> |
| </ul> |
| <h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=security--production-readiness>Security & Production-Readiness<a href=#security--production-readiness class=hash-link aria-label="Direct link to Security & Production-Readiness" title="Direct link to Security & Production-Readiness" translate=no></a></h3> |
| <p>Enterprise-grade security and compatibility:</p> |
| <ul> |
| <li class=""><strong>Class Registration</strong>: Whitelist-based deserialization control (enabled by default)</li> |
| <li class=""><strong>Depth Limiting</strong>: Protection against recursive object graph attacks</li> |
| <li class=""><strong>Configurable Policies</strong>: Custom class checkers and deserialization policies</li> |
| <li class=""><strong>Platform Support</strong>: Java 8-24, GraalVM native image, multiple OS platforms</li> |
| </ul> |
| <h2 class="anchor anchorTargetStickyNavbar_Vzrq" id=java-features>Java Features<a href=#java-features class=hash-link aria-label="Direct link to Java Features" title="Direct link to Java Features" translate=no></a></h2> |
| <h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=high-performance>High Performance<a href=#high-performance class=hash-link aria-label="Direct link to High Performance" title="Direct link to High Performance" translate=no></a></h3> |
| <ul> |
| <li class=""><strong>JIT Code Generation</strong>: Highly-extensible JIT framework generates serializer code at runtime using async multi-threaded compilation, delivering 20-170x speedup through:<!-- --> |
| <ul> |
| <li class="">Inlining variables to reduce memory access</li> |
| <li class="">Inlining method calls to eliminate virtual dispatch overhead</li> |
| <li class="">Minimizing conditional branching</li> |
| <li class="">Eliminating hash lookups</li> |
| </ul> |
| </li> |
| <li class=""><strong>Zero-Copy</strong>: Direct memory access without intermediate buffer copies; row format supports random access and partial serialization</li> |
| <li class=""><strong>Variable-Length Encoding</strong>: Optimized compression for integers, longs</li> |
| <li class=""><strong>Meta Sharing</strong>: Cached class metadata reduces redundant type information</li> |
| <li class=""><strong>SIMD Acceleration</strong>: Java Vector API support for array operations (Java 16+)</li> |
| </ul> |
| <h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=drop-in-replacement>Drop-in Replacement<a href=#drop-in-replacement class=hash-link aria-label="Direct link to Drop-in Replacement" title="Direct link to Drop-in Replacement" translate=no></a></h3> |
| <ul> |
| <li class=""><strong>100% JDK Serialization Compatible</strong>: Supports <code>writeObject</code>/<code>readObject</code>/<code>writeReplace</code>/<code>readResolve</code>/<code>readObjectNoData</code>/<code>Externalizable</code></li> |
| <li class=""><strong>Java 8-24 Support</strong>: Works across all modern Java versions including Java 17+ records</li> |
| <li class=""><strong>GraalVM Native Image</strong>: AOT compilation support without reflection configuration</li> |
| </ul> |
| <h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=advanced-features>Advanced Features<a href=#advanced-features class=hash-link aria-label="Direct link to Advanced Features" title="Direct link to Advanced Features" translate=no></a></h3> |
| <ul> |
| <li class=""><strong>Reference Tracking</strong>: Automatic handling of shared and circular references</li> |
| <li class=""><strong>Schema Evolution</strong>: Forward/backward compatibility for class schema changes</li> |
| <li class=""><strong>Polymorphism</strong>: Full support for inheritance hierarchies and interfaces</li> |
| <li class=""><strong>Deep Copy</strong>: Efficient deep cloning of complex object graphs with reference preservation</li> |
| <li class=""><strong>Security</strong>: Class registration and configurable deserialization policies</li> |
| </ul> |
| <h2 class="anchor anchorTargetStickyNavbar_Vzrq" id=python-features>Python Features<a href=#python-features class=hash-link aria-label="Direct link to Python Features" title="Direct link to Python Features" translate=no></a></h2> |
| <h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=flexible-serialization-modes><strong>Flexible Serialization Modes</strong><a href=#flexible-serialization-modes class=hash-link aria-label="Direct link to flexible-serialization-modes" title="Direct link to flexible-serialization-modes" translate=no></a></h3> |
| <ul> |
| <li class=""><strong>Python native Mode</strong>: Full Python compatibility, drop-in replacement for pickle/cloudpickle</li> |
| <li class=""><strong>Cross-Language Mode</strong>: Optimized for multi-language data exchange</li> |
| <li class=""><strong>Row Format</strong>: Zero-copy row format for analytics workloads</li> |
| </ul> |
| <h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=versatile-serialization-features>Versatile Serialization Features<a href=#versatile-serialization-features class=hash-link aria-label="Direct link to Versatile Serialization Features" title="Direct link to Versatile Serialization Features" translate=no></a></h3> |
| <ul> |
| <li class=""><strong>Shared/circular reference support</strong> for complex object graphs in both Python-native and cross-language modes</li> |
| <li class=""><strong>Polymorphism support</strong> for customized types with automatic type dispatching</li> |
| <li class=""><strong>Schema evolution</strong> support for backward/forward compatibility when using dataclasses in cross-language mode</li> |
| <li class=""><strong>Out-of-band buffer support</strong> for zero-copy serialization of large data structures like NumPy arrays and Pandas DataFrames, compatible with pickle protocol 5</li> |
| </ul> |
| <h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=blazing-fast-performance><strong>Blazing Fast Performance</strong><a href=#blazing-fast-performance class=hash-link aria-label="Direct link to blazing-fast-performance" title="Direct link to blazing-fast-performance" translate=no></a></h3> |
| <ul> |
| <li class=""><strong>Extremely fast performance</strong> compared to other serialization frameworks</li> |
| <li class=""><strong>Runtime code generation</strong> and <strong>Cython-accelerated</strong> core implementation for optimal performance</li> |
| </ul> |
| <h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=compact-data-size>Compact Data Size<a href=#compact-data-size class=hash-link aria-label="Direct link to Compact Data Size" title="Direct link to Compact Data Size" translate=no></a></h3> |
| <ul> |
| <li class=""><strong>Compact object graph protocol</strong> with minimal space overhead—up to 3× size reduction compared to pickle/cloudpickle</li> |
| <li class=""><strong>Meta packing and sharing</strong> to minimize type forward/backward compatibility space overhead</li> |
| </ul> |
| <h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=security--safety><strong>Security & Safety</strong><a href=#security--safety class=hash-link aria-label="Direct link to security--safety" title="Direct link to security--safety" translate=no></a></h3> |
| <ul> |
| <li class=""><strong>Strict mode</strong> prevents deserialization of untrusted types by type registration and checks.</li> |
| <li class=""><strong>Reference tracking</strong> for handling circular references safely</li> |
| </ul> |
| <h2 class="anchor anchorTargetStickyNavbar_Vzrq" id=rust-features>Rust Features<a href=#rust-features class=hash-link aria-label="Direct link to Rust Features" title="Direct link to Rust Features" translate=no></a></h2> |
| <h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=why-apache-fory-rust>Why Apache Fory™ Rust?<a href=#why-apache-fory-rust class=hash-link aria-label="Direct link to Why Apache Fory™ Rust?" title="Direct link to Why Apache Fory™ Rust?" translate=no></a></h3> |
| <ul> |
| <li class=""><strong>Blazingly Fast</strong>: Zero-copy deserialization and optimized binary protocols</li> |
| <li class=""><strong>Cross-Language</strong>: Seamlessly serialize/deserialize data across Java, Python, C++, Go, JavaScript, and Rust</li> |
| <li class=""><strong>Type-Safe</strong>: Compile-time type checking with derive macros</li> |
| <li class=""><strong>Circular References</strong>: Automatic tracking of shared and circular references with <code>Rc</code>/<code>Arc</code> and weak pointers</li> |
| <li class=""><strong>Polymorphic</strong>: Serialize trait objects with <code>Box<dyn Trait></code>, <code>Rc<dyn Trait></code>, and <code>Arc<dyn Trait></code></li> |
| <li class=""><strong>Schema Evolution</strong>: Compatible mode for independent schema changes</li> |
| <li class=""><strong>Two Modes</strong>: Object graph serialization and zero-copy row-based format</li> |
| </ul> |
| <h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=object-graph-serialization>Object Graph Serialization<a href=#object-graph-serialization class=hash-link aria-label="Direct link to Object Graph Serialization" title="Direct link to Object Graph Serialization" translate=no></a></h3> |
| <p>Automatic serialization of complex object graphs, preserving the structure and relationships between objects. The <code>#[derive(ForyObject)]</code> macro generates efficient serialization code at compile time, eliminating runtime overhead:</p> |
| <ul> |
| <li class="">Nested struct serialization with arbitrary depth</li> |
| <li class="">Collection types (Vec, HashMap, HashSet, BTreeMap)</li> |
| <li class="">Enum type support</li> |
| <li class="">Optional fields with <code>Option<T></code></li> |
| <li class="">Automatic handling of primitive types and strings</li> |
| <li class="">Efficient binary encoding with variable-length integers</li> |
| </ul> |
| <h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=shared-and-circular-references>Shared and Circular References<a href=#shared-and-circular-references class=hash-link aria-label="Direct link to Shared and Circular References" title="Direct link to Shared and Circular References" translate=no></a></h3> |
| <p>Automatically tracks and preserves reference identity for shared objects using <code>Rc<T></code> and <code>Arc<T></code>. When the same object is referenced multiple times, Fory serializes it only once and uses reference IDs for subsequent occurrences. This ensures:</p> |
| <ul> |
| <li class=""><strong>Space efficiency</strong>: No data duplication in serialized output</li> |
| <li class=""><strong>Reference identity preservation</strong>: Deserialized objects maintain the same sharing relationships</li> |
| <li class=""><strong>Circular reference support</strong>: Use <code>RcWeak<T></code> and <code>ArcWeak<T></code> to break cycles</li> |
| </ul> |
| <h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=trait-object-serialization>Trait Object Serialization<a href=#trait-object-serialization class=hash-link aria-label="Direct link to Trait Object Serialization" title="Direct link to Trait Object Serialization" translate=no></a></h3> |
| <p>Polymorphic serialization through trait objects, enabling dynamic dispatch and type flexibility. This is essential for plugin systems, heterogeneous collections, and extensible architectures. Supported trait object types:</p> |
| <ul> |
| <li class=""><code>Box<dyn Trait></code> - Owned trait objects</li> |
| <li class=""><code>Rc<dyn Trait></code> - Reference-counted trait objects</li> |
| <li class=""><code>Arc<dyn Trait></code> - Thread-safe reference-counted trait objects</li> |
| <li class=""><code>Vec<Box<dyn Trait>></code>, <code>HashMap<K, Box<dyn Trait>></code> - Collections of trait objects</li> |
| </ul> |
| <h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=schema-evolution>Schema Evolution<a href=#schema-evolution class=hash-link aria-label="Direct link to Schema Evolution" title="Direct link to Schema Evolution" translate=no></a></h3> |
| <p>Schema evolution in <strong>Compatible mode</strong>, allowing serialization and deserialization peers to have different type definitions. This enables independent evolution of services in distributed systems without breaking compatibility:</p> |
| <ul> |
| <li class="">Add new fields with default values</li> |
| <li class="">Remove obsolete fields (skipped during deserialization)</li> |
| <li class="">Change field nullability (<code>T</code> ↔ <code>Option<T></code>)</li> |
| <li class="">Reorder fields (matched by name, not position)</li> |
| <li class="">Type-safe fallback to default values for missing fields</li> |
| </ul> |
| <h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=custom-serializers>Custom Serializers<a href=#custom-serializers class=hash-link aria-label="Direct link to Custom Serializers" title="Direct link to Custom Serializers" translate=no></a></h3> |
| <p>For types that don't support <code>#[derive(ForyObject)]</code>, implement the <code>Serializer</code> trait manually. This is useful for:</p> |
| <ul> |
| <li class="">External types from other crates</li> |
| <li class="">Types with special serialization requirements</li> |
| <li class="">Legacy data format compatibility</li> |
| <li class="">Performance-critical custom encoding</li> |
| </ul> |
| <h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=row-based-serialization>Row-Based Serialization<a href=#row-based-serialization class=hash-link aria-label="Direct link to Row-Based Serialization" title="Direct link to Row-Based Serialization" translate=no></a></h3> |
| <p>High-performance <strong>row format</strong> for zero-copy deserialization. Unlike traditional object serialization that reconstructs entire objects in memory, row format enables <strong>random access</strong> to fields directly from binary data without full deserialization.</p> |
| <ul> |
| <li class=""><strong>Zero-copy access</strong>: Read fields without allocating or copying data</li> |
| <li class=""><strong>Partial deserialization</strong>: Access only the fields you need</li> |
| <li class=""><strong>Memory-mapped files</strong>: Work with data larger than RAM</li> |
| <li class=""><strong>Cache-friendly</strong>: Sequential memory layout for better CPU cache utilization</li> |
| <li class=""><strong>Lazy evaluation</strong>: Defer expensive operations until field access</li> |
| </ul> |
| <h2 class="anchor anchorTargetStickyNavbar_Vzrq" id=scala-features>Scala Features<a href=#scala-features class=hash-link aria-label="Direct link to Scala Features" title="Direct link to Scala Features" translate=no></a></h2> |
| <h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=supported-types>Supported Types<a href=#supported-types class=hash-link aria-label="Direct link to Supported Types" title="Direct link to Supported Types" translate=no></a></h3> |
| <p>Apache Fory™ supports all scala object serialization:</p> |
| <ul> |
| <li class=""><code>case</code> class serialization supported</li> |
| <li class=""><code>pojo/bean</code> class serialization supported</li> |
| <li class=""><code>object</code> singleton serialization supported</li> |
| <li class=""><code>collection</code> serialization supported</li> |
| <li class="">other types such as <code>tuple/either</code> and basic types are all supported too.</li> |
| </ul> |
| <p>Scala 2 and 3 are both supported.</p> |
| <h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=scala-class-default-values-support>Scala Class Default Values Support<a href=#scala-class-default-values-support class=hash-link aria-label="Direct link to Scala Class Default Values Support" title="Direct link to Scala Class Default Values Support" translate=no></a></h3> |
| <p>Fory supports Scala class default values during deserialization when using compatible mode. This feature enables forward/backward compatibility when case classes or regular Scala classes have default parameters.</p> |
| <p>When a Scala class has default parameters, the Scala compiler generates methods in the companion object (for case classes) or in the class itself (for regular Scala classes) like <code>apply$default$1</code>, <code>apply$default$2</code>, etc. that return the default values. Fory can detect these methods and use them when deserializing objects where certain fields are missing from the serialized data.</p> |
| <h2 class="anchor anchorTargetStickyNavbar_Vzrq" id=kotlin-features>Kotlin Features<a href=#kotlin-features class=hash-link aria-label="Direct link to Kotlin Features" title="Direct link to Kotlin Features" translate=no></a></h2> |
| <p>Kotlin support builds on the default Fory Java implementation and adds handling for Kotlin-specific types and schema evolution.</p> |
| <h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=supported-types-1>Supported Types<a href=#supported-types-1 class=hash-link aria-label="Direct link to Supported Types" title="Direct link to Supported Types" translate=no></a></h3> |
| <ul> |
| <li class="">Primitive types: <code>Byte</code>, <code>Boolean</code>, <code>Int</code>, <code>Short</code>, <code>Long</code>, <code>Char</code>, <code>Float</code>, <code>Double</code></li> |
| <li class="">Unsigned types: <code>UByte</code>, <code>UShort</code>, <code>UInt</code>, <code>ULong</code></li> |
| <li class="">Strings, standard arrays, and standard collections through the default Java implementation</li> |
| <li class="">Kotlin collections and arrays such as <code>ArrayDeque</code>, <code>Array</code>, <code>BooleanArray</code>, <code>ByteArray</code>, <code>IntArray</code>, <code>LongArray</code>, <code>UByteArray</code>, <code>UIntArray</code>, and <code>ULongArray</code></li> |
| <li class="">Common stdlib types including <code>Pair</code>, <code>Triple</code>, <code>Result</code>, <code>Regex</code>, <code>Random</code>, <code>Duration</code>, and <code>Uuid</code></li> |
| <li class="">Kotlin ranges and progressions such as <code>CharRange</code>, <code>IntRange</code>, <code>LongRange</code>, <code>UIntRange</code>, <code>ULongRange</code>, and related progression types</li> |
| <li class="">Empty collections such as <code>emptyList</code>, <code>emptyMap</code>, and <code>emptySet</code></li> |
| </ul> |
| <h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=data-class-default-value-support>Data Class Default Value Support<a href=#data-class-default-value-support class=hash-link aria-label="Direct link to Data Class Default Value Support" title="Direct link to Data Class Default Value Support" translate=no></a></h3> |
| <p>In compatible mode, Fory can detect Kotlin data class default values and apply them during deserialization when fields are missing. This allows schemas to evolve more safely, for example when adding new fields with defaults.</div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="row margin-top--sm theme-doc-footer-edit-meta-row"><div class="col noPrint_WFHX"><a href=https://github.com/apache/fory-site/tree/main/docs/introduction/features.md target=_blank rel="noopener noreferrer" class=theme-edit-this-page><svg fill=currentColor height=20 width=20 viewBox="0 0 40 40" class=iconEdit_Z9Sw aria-hidden=true><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"/></g></svg>Edit this page</a></div><div class="col lastUpdated_JAkA"></div></div></footer></article><nav class="docusaurus-mt-lg pagination-nav" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--prev" href=/docs/introduction/overview><div class=pagination-nav__sublabel>Previous</div><div class=pagination-nav__label>Overview</div></a><a class="pagination-nav__link pagination-nav__link--next" href=/docs/introduction/benchmark><div class=pagination-nav__sublabel>Next</div><div class=pagination-nav__label>Benchmark</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href=#core-capabilities class="table-of-contents__link toc-highlight">Core Capabilities</a><ul><li><a href=#high-performance-serialization class="table-of-contents__link toc-highlight">High-Performance Serialization</a><li><a href=#cross-language-serialization class="table-of-contents__link toc-highlight">Cross-Language Serialization</a><li><a href=#row-format class="table-of-contents__link toc-highlight">Row Format</a><li><a href=#security--production-readiness class="table-of-contents__link toc-highlight">Security & Production-Readiness</a></ul><li><a href=#java-features class="table-of-contents__link toc-highlight">Java Features</a><ul><li><a href=#high-performance class="table-of-contents__link toc-highlight">High Performance</a><li><a href=#drop-in-replacement class="table-of-contents__link toc-highlight">Drop-in Replacement</a><li><a href=#advanced-features class="table-of-contents__link toc-highlight">Advanced Features</a></ul><li><a href=#python-features class="table-of-contents__link toc-highlight">Python Features</a><ul><li><a href=#flexible-serialization-modes class="table-of-contents__link toc-highlight"><strong>Flexible Serialization Modes</strong></a><li><a href=#versatile-serialization-features class="table-of-contents__link toc-highlight">Versatile Serialization Features</a><li><a href=#blazing-fast-performance class="table-of-contents__link toc-highlight"><strong>Blazing Fast Performance</strong></a><li><a href=#compact-data-size class="table-of-contents__link toc-highlight">Compact Data Size</a><li><a href=#security--safety class="table-of-contents__link toc-highlight"><strong>Security & Safety</strong></a></ul><li><a href=#rust-features class="table-of-contents__link toc-highlight">Rust Features</a><ul><li><a href=#why-apache-fory-rust class="table-of-contents__link toc-highlight">Why Apache Fory™ Rust?</a><li><a href=#object-graph-serialization class="table-of-contents__link toc-highlight">Object Graph Serialization</a><li><a href=#shared-and-circular-references class="table-of-contents__link toc-highlight">Shared and Circular References</a><li><a href=#trait-object-serialization class="table-of-contents__link toc-highlight">Trait Object Serialization</a><li><a href=#schema-evolution class="table-of-contents__link toc-highlight">Schema Evolution</a><li><a href=#custom-serializers class="table-of-contents__link toc-highlight">Custom Serializers</a><li><a href=#row-based-serialization class="table-of-contents__link toc-highlight">Row-Based Serialization</a></ul><li><a href=#scala-features class="table-of-contents__link toc-highlight">Scala Features</a><ul><li><a href=#supported-types class="table-of-contents__link toc-highlight">Supported Types</a><li><a href=#scala-class-default-values-support class="table-of-contents__link toc-highlight">Scala Class Default Values Support</a></ul><li><a href=#kotlin-features class="table-of-contents__link toc-highlight">Kotlin Features</a><ul><li><a href=#supported-types-1 class="table-of-contents__link toc-highlight">Supported Types</a><li><a href=#data-class-default-value-support class="table-of-contents__link toc-highlight">Data Class Default Value Support</a></ul></ul></div></div></div></div></main></div></div></div><footer class="theme-layout-footer footer footer--dark"><div class="container container-fluid"><div class="row footer__links"><div class="theme-layout-footer-column col footer__col"><div class=footer__title>Community</div><ul class="footer__items clean-list"><li class=footer__item><a href=https://lists.apache.org/list.html?dev@fory.apache.org target=_blank rel="noopener noreferrer" class=footer__link-item>Mailing list<svg width=13.5 height=13.5 aria-label="(opens in new tab)" class=iconExternalLink_nPIU><use href=#theme-svg-external-link /></svg></a><li class=footer__item><a href=https://join.slack.com/t/fory-project/shared_invite/zt-1u8soj4qc-ieYEu7ciHOqA2mo47llS8A target=_blank rel="noopener noreferrer" class=footer__link-item>Slack<svg width=13.5 height=13.5 aria-label="(opens in new tab)" class=iconExternalLink_nPIU><use href=#theme-svg-external-link /></svg></a><li class=footer__item><a href=https://twitter.com/ApacheFory target=_blank rel="noopener noreferrer" class=footer__link-item>Twitter<svg width=13.5 height=13.5 aria-label="(opens in new tab)" class=iconExternalLink_nPIU><use href=#theme-svg-external-link /></svg></a></ul></div><div class="theme-layout-footer-column col footer__col"><div class=footer__title>Docs</div><ul class="footer__items clean-list"><li class=footer__item><a class=footer__link-item href=/docs/start/install>Install</a><li class=footer__item><a class=footer__link-item href=/docs/start/usage>Usage</a><li class=footer__item><a class=footer__link-item href=/docs/introduction/benchmark>Benchmark</a></ul></div><div class="theme-layout-footer-column col footer__col"><div class=footer__title>Repositories</div><ul class="footer__items clean-list"><li class=footer__item><a href=https://github.com/apache/fory target=_blank rel="noopener noreferrer" class=footer__link-item>Apache Fory™<svg width=13.5 height=13.5 aria-label="(opens in new tab)" class=iconExternalLink_nPIU><use href=#theme-svg-external-link /></svg></a><li class=footer__item><a href=https://github.com/apache/fory-site target=_blank rel="noopener noreferrer" class=footer__link-item>Website<svg width=13.5 height=13.5 aria-label="(opens in new tab)" class=iconExternalLink_nPIU><use href=#theme-svg-external-link /></svg></a></ul></div></div><div class="footer__bottom text--center"><div class=margin-bottom--sm><a href=https://apache.org/ rel="noopener noreferrer" class=footerLogoLink_BH7S><img src=/img/asf_logo.svg alt="ASF Logo" class="footer__logo themedComponent_mlkZ themedComponent--light_NVdE" width=200 /><img src=/img/asf_logo.svg alt="ASF Logo" class="footer__logo themedComponent_mlkZ themedComponent--dark_xIcU" width=200 /></a></div><div class=footer__copyright><div> |
| <p> |
| Copyright © 2026 The Apache Software Foundation, Licensed under the Apache License, Version 2.0. <br/> |
| Apache Fory, Fory, Apache, the Apache Logo and the Apache Fory logo are either registered trademarks or trademarks of the Apache Software Foundation in the United States and/or other countries. |
| </p> |
| </div></div></div></div></footer></div></body> |