| |
| <!doctype html> |
| <html lang="en" class="no-js"> |
| <head> |
| |
| <meta charset="utf-8"> |
| <meta name="viewport" content="width=device-width,initial-scale=1"> |
| |
| |
| |
| <link rel="canonical" href="https://cpp.iceberg.apache.org/"> |
| |
| |
| |
| <link rel="next" href="releases/"> |
| |
| |
| <link rel="icon" href="assert/iceberg-logo-icon.png"> |
| <meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.6.22"> |
| |
| |
| |
| <title>Iceberg C++</title> |
| |
| |
| |
| <link rel="stylesheet" href="assets/stylesheets/main.84d31ad4.min.css"> |
| |
| |
| <link rel="stylesheet" href="assets/stylesheets/palette.06af60db.min.css"> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> |
| <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback"> |
| <style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style> |
| |
| |
| |
| <script>__md_scope=new URL(".",location),__md_hash=e=>[...e].reduce(((e,_)=>(e<<5)-e+_.charCodeAt(0)),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script> |
| |
| |
| |
| |
| |
| |
| </head> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <body dir="ltr" data-md-color-scheme="default" data-md-color-primary="indigo" data-md-color-accent="indigo"> |
| |
| |
| <input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off"> |
| <input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off"> |
| <label class="md-overlay" for="__drawer"></label> |
| <div data-md-component="skip"> |
| |
| |
| <a href="#contributing" class="md-skip"> |
| Skip to content |
| </a> |
| |
| </div> |
| <div data-md-component="announce"> |
| |
| </div> |
| |
| |
| |
| |
| |
| |
| <header class="md-header md-header--shadow md-header--lifted" data-md-component="header"> |
| <nav class="md-header__inner md-grid" aria-label="Header"> |
| <a href="." title="Iceberg C++" class="md-header__button md-logo" aria-label="Iceberg C++" data-md-component="logo"> |
| |
| <img src="assert/iceberg-logo-icon.png" alt="logo"> |
| |
| </a> |
| <label class="md-header__button md-icon" for="__drawer"> |
| |
| <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3zm0 5h18v2H3zm0 5h18v2H3z"/></svg> |
| </label> |
| <div class="md-header__title" data-md-component="header-title"> |
| <div class="md-header__ellipsis"> |
| <div class="md-header__topic"> |
| <span class="md-ellipsis"> |
| Iceberg C++ |
| </span> |
| </div> |
| <div class="md-header__topic" data-md-component="header-topic"> |
| <span class="md-ellipsis"> |
| |
| Contributing |
| |
| </span> |
| </div> |
| </div> |
| </div> |
| |
| |
| <form class="md-header__option" data-md-component="palette"> |
| |
| |
| |
| |
| <input class="md-option" data-md-color-media="" data-md-color-scheme="default" data-md-color-primary="indigo" data-md-color-accent="indigo" aria-label="Switch to dark mode" type="radio" name="__palette" id="__palette_0"> |
| |
| <label class="md-header__button md-icon" title="Switch to dark mode" for="__palette_1" hidden> |
| <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 8a4 4 0 0 0-4 4 4 4 0 0 0 4 4 4 4 0 0 0 4-4 4 4 0 0 0-4-4m0 10a6 6 0 0 1-6-6 6 6 0 0 1 6-6 6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg> |
| </label> |
| |
| |
| |
| |
| |
| <input class="md-option" data-md-color-media="" data-md-color-scheme="slate" data-md-color-primary="indigo" data-md-color-accent="indigo" aria-label="Switch to light mode" type="radio" name="__palette" id="__palette_1"> |
| |
| <label class="md-header__button md-icon" title="Switch to light mode" for="__palette_0" hidden> |
| <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 18c-.89 0-1.74-.2-2.5-.55C11.56 16.5 13 14.42 13 12s-1.44-4.5-3.5-5.45C10.26 6.2 11.11 6 12 6a6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg> |
| </label> |
| |
| |
| </form> |
| |
| |
| |
| <script>var palette=__md_get("__palette");if(palette&&palette.color){if("(prefers-color-scheme)"===palette.color.media){var media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent")}for(var[key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script> |
| |
| |
| |
| |
| |
| <label class="md-header__button md-icon" for="__search"> |
| |
| <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg> |
| </label> |
| <div class="md-search" data-md-component="search" role="dialog"> |
| <label class="md-search__overlay" for="__search"></label> |
| <div class="md-search__inner" role="search"> |
| <form class="md-search__form" name="search"> |
| <input type="text" class="md-search__input" name="query" aria-label="Search" placeholder="Search" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" data-md-component="search-query" required> |
| <label class="md-search__icon md-icon" for="__search"> |
| |
| <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg> |
| |
| <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"/></svg> |
| </label> |
| <nav class="md-search__options" aria-label="Search"> |
| |
| <button type="reset" class="md-search__icon md-icon" title="Clear" aria-label="Clear" tabindex="-1"> |
| |
| <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></svg> |
| </button> |
| </nav> |
| |
| </form> |
| <div class="md-search__output"> |
| <div class="md-search__scrollwrap" tabindex="0" data-md-scrollfix> |
| <div class="md-search-result" data-md-component="search-result"> |
| <div class="md-search-result__meta"> |
| Initializing search |
| </div> |
| <ol class="md-search-result__list" role="presentation"></ol> |
| </div> |
| </div> |
| </div> |
| </div> |
| </div> |
| |
| |
| |
| <div class="md-header__source"> |
| <a href="https://github.com/apache/iceberg-cpp" title="Go to repository" class="md-source" data-md-component="source"> |
| <div class="md-source__icon md-icon"> |
| |
| <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M439.6 236.1 244 40.5c-5.4-5.5-12.8-8.5-20.4-8.5s-15 3-20.4 8.4L162.5 81l51.5 51.5c27.1-9.1 52.7 16.8 43.4 43.7l49.7 49.7c34.2-11.8 61.2 31 35.5 56.7-26.5 26.5-70.2-2.9-56-37.3L240.3 199v121.9c25.3 12.5 22.3 41.8 9.1 55-6.4 6.4-15.2 10.1-24.3 10.1s-17.8-3.6-24.3-10.1c-17.6-17.6-11.1-46.9 11.2-56v-123c-20.8-8.5-24.6-30.7-18.6-45L142.6 101 8.5 235.1C3 240.6 0 247.9 0 255.5s3 15 8.5 20.4l195.6 195.7c5.4 5.4 12.7 8.4 20.4 8.4s15-3 20.4-8.4l194.7-194.7c5.4-5.4 8.4-12.8 8.4-20.4s-3-15-8.4-20.4"/></svg> |
| </div> |
| <div class="md-source__repository"> |
| apache/iceberg-cpp |
| </div> |
| </a> |
| </div> |
| |
| </nav> |
| |
| |
| |
| <nav class="md-tabs" aria-label="Tabs" data-md-component="tabs"> |
| <div class="md-grid"> |
| <ul class="md-tabs__list"> |
| |
| |
| |
| |
| |
| |
| |
| |
| <li class="md-tabs__item md-tabs__item--active"> |
| <a href="." class="md-tabs__link"> |
| |
| |
| |
| |
| |
| Contributing |
| |
| </a> |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| <li class="md-tabs__item"> |
| <a href="releases/" class="md-tabs__link"> |
| |
| |
| |
| |
| |
| Releases |
| |
| </a> |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| <li class="md-tabs__item"> |
| <a href="api/" class="md-tabs__link"> |
| |
| |
| |
| |
| |
| API Documentation |
| |
| </a> |
| </li> |
| |
| |
| |
| </ul> |
| </div> |
| </nav> |
| |
| |
| </header> |
| |
| <div class="md-container" data-md-component="container"> |
| |
| |
| |
| |
| <main class="md-main" data-md-component="main"> |
| <div class="md-main__inner md-grid"> |
| |
| |
| |
| <div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation" > |
| <div class="md-sidebar__scrollwrap"> |
| <div class="md-sidebar__inner"> |
| |
| |
| |
| |
| |
| |
| <nav class="md-nav md-nav--primary md-nav--lifted" aria-label="Navigation" data-md-level="0"> |
| <label class="md-nav__title" for="__drawer"> |
| <a href="." title="Iceberg C++" class="md-nav__button md-logo" aria-label="Iceberg C++" data-md-component="logo"> |
| |
| <img src="assert/iceberg-logo-icon.png" alt="logo"> |
| |
| </a> |
| Iceberg C++ |
| </label> |
| |
| <div class="md-nav__source"> |
| <a href="https://github.com/apache/iceberg-cpp" title="Go to repository" class="md-source" data-md-component="source"> |
| <div class="md-source__icon md-icon"> |
| |
| <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M439.6 236.1 244 40.5c-5.4-5.5-12.8-8.5-20.4-8.5s-15 3-20.4 8.4L162.5 81l51.5 51.5c27.1-9.1 52.7 16.8 43.4 43.7l49.7 49.7c34.2-11.8 61.2 31 35.5 56.7-26.5 26.5-70.2-2.9-56-37.3L240.3 199v121.9c25.3 12.5 22.3 41.8 9.1 55-6.4 6.4-15.2 10.1-24.3 10.1s-17.8-3.6-24.3-10.1c-17.6-17.6-11.1-46.9 11.2-56v-123c-20.8-8.5-24.6-30.7-18.6-45L142.6 101 8.5 235.1C3 240.6 0 247.9 0 255.5s3 15 8.5 20.4l195.6 195.7c5.4 5.4 12.7 8.4 20.4 8.4s15-3 20.4-8.4l194.7-194.7c5.4-5.4 8.4-12.8 8.4-20.4s-3-15-8.4-20.4"/></svg> |
| </div> |
| <div class="md-source__repository"> |
| apache/iceberg-cpp |
| </div> |
| </a> |
| </div> |
| |
| <ul class="md-nav__list" data-md-scrollfix> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li class="md-nav__item md-nav__item--active"> |
| |
| <input class="md-nav__toggle md-toggle" type="checkbox" id="__toc"> |
| |
| |
| |
| |
| |
| <label class="md-nav__link md-nav__link--active" for="__toc"> |
| |
| |
| |
| <span class="md-ellipsis"> |
| Contributing |
| |
| </span> |
| |
| |
| <span class="md-nav__icon md-icon"></span> |
| </label> |
| |
| <a href="." class="md-nav__link md-nav__link--active"> |
| |
| |
| |
| <span class="md-ellipsis"> |
| Contributing |
| |
| </span> |
| |
| |
| </a> |
| |
| |
| |
| <nav class="md-nav md-nav--secondary" aria-label="Table of contents"> |
| |
| |
| |
| |
| |
| |
| <label class="md-nav__title" for="__toc"> |
| <span class="md-nav__icon md-icon"></span> |
| Table of contents |
| </label> |
| <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix> |
| |
| <li class="md-nav__item"> |
| <a href="#contributing-to-iceberg-c" class="md-nav__link"> |
| <span class="md-ellipsis"> |
| Contributing to Iceberg C++ |
| </span> |
| </a> |
| |
| <nav class="md-nav" aria-label="Contributing to Iceberg C++"> |
| <ul class="md-nav__list"> |
| |
| <li class="md-nav__item"> |
| <a href="#development-setup" class="md-nav__link"> |
| <span class="md-ellipsis"> |
| Development Setup |
| </span> |
| </a> |
| |
| <nav class="md-nav" aria-label="Development Setup"> |
| <ul class="md-nav__list"> |
| |
| <li class="md-nav__item"> |
| <a href="#prerequisites" class="md-nav__link"> |
| <span class="md-ellipsis"> |
| Prerequisites |
| </span> |
| </a> |
| |
| </li> |
| |
| <li class="md-nav__item"> |
| <a href="#building-from-source" class="md-nav__link"> |
| <span class="md-ellipsis"> |
| Building from Source |
| </span> |
| </a> |
| |
| </li> |
| |
| </ul> |
| </nav> |
| |
| </li> |
| |
| <li class="md-nav__item"> |
| <a href="#code-standards" class="md-nav__link"> |
| <span class="md-ellipsis"> |
| Code Standards |
| </span> |
| </a> |
| |
| <nav class="md-nav" aria-label="Code Standards"> |
| <ul class="md-nav__list"> |
| |
| <li class="md-nav__item"> |
| <a href="#c-coding-standards" class="md-nav__link"> |
| <span class="md-ellipsis"> |
| C++ Coding Standards |
| </span> |
| </a> |
| |
| </li> |
| |
| <li class="md-nav__item"> |
| <a href="#api-compatibility" class="md-nav__link"> |
| <span class="md-ellipsis"> |
| API Compatibility |
| </span> |
| </a> |
| |
| </li> |
| |
| <li class="md-nav__item"> |
| <a href="#code-formatting" class="md-nav__link"> |
| <span class="md-ellipsis"> |
| Code Formatting |
| </span> |
| </a> |
| |
| </li> |
| |
| </ul> |
| </nav> |
| |
| </li> |
| |
| <li class="md-nav__item"> |
| <a href="#testing" class="md-nav__link"> |
| <span class="md-ellipsis"> |
| Testing |
| </span> |
| </a> |
| |
| <nav class="md-nav" aria-label="Testing"> |
| <ul class="md-nav__list"> |
| |
| <li class="md-nav__item"> |
| <a href="#running-tests" class="md-nav__link"> |
| <span class="md-ellipsis"> |
| Running Tests |
| </span> |
| </a> |
| |
| </li> |
| |
| </ul> |
| </nav> |
| |
| </li> |
| |
| <li class="md-nav__item"> |
| <a href="#linting" class="md-nav__link"> |
| <span class="md-ellipsis"> |
| Linting |
| </span> |
| </a> |
| |
| </li> |
| |
| <li class="md-nav__item"> |
| <a href="#submitting-changes" class="md-nav__link"> |
| <span class="md-ellipsis"> |
| Submitting Changes |
| </span> |
| </a> |
| |
| <nav class="md-nav" aria-label="Submitting Changes"> |
| <ul class="md-nav__list"> |
| |
| <li class="md-nav__item"> |
| <a href="#git-workflow" class="md-nav__link"> |
| <span class="md-ellipsis"> |
| Git Workflow |
| </span> |
| </a> |
| |
| </li> |
| |
| <li class="md-nav__item"> |
| <a href="#commit-message-format" class="md-nav__link"> |
| <span class="md-ellipsis"> |
| Commit Message Format |
| </span> |
| </a> |
| |
| </li> |
| |
| <li class="md-nav__item"> |
| <a href="#pull-request-process" class="md-nav__link"> |
| <span class="md-ellipsis"> |
| Pull Request Process |
| </span> |
| </a> |
| |
| </li> |
| |
| </ul> |
| </nav> |
| |
| </li> |
| |
| <li class="md-nav__item"> |
| <a href="#community" class="md-nav__link"> |
| <span class="md-ellipsis"> |
| Community |
| </span> |
| </a> |
| |
| <nav class="md-nav" aria-label="Community"> |
| <ul class="md-nav__list"> |
| |
| <li class="md-nav__item"> |
| <a href="#getting-help" class="md-nav__link"> |
| <span class="md-ellipsis"> |
| Getting Help |
| </span> |
| </a> |
| |
| </li> |
| |
| <li class="md-nav__item"> |
| <a href="#good-first-issues" class="md-nav__link"> |
| <span class="md-ellipsis"> |
| Good First Issues |
| </span> |
| </a> |
| |
| </li> |
| |
| </ul> |
| </nav> |
| |
| </li> |
| |
| <li class="md-nav__item"> |
| <a href="#release-process" class="md-nav__link"> |
| <span class="md-ellipsis"> |
| Release Process |
| </span> |
| </a> |
| |
| </li> |
| |
| </ul> |
| </nav> |
| |
| </li> |
| |
| <li class="md-nav__item"> |
| <a href="#license" class="md-nav__link"> |
| <span class="md-ellipsis"> |
| License |
| </span> |
| </a> |
| |
| </li> |
| |
| </ul> |
| |
| </nav> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li class="md-nav__item"> |
| <a href="releases/" class="md-nav__link"> |
| |
| |
| |
| <span class="md-ellipsis"> |
| Releases |
| |
| </span> |
| |
| |
| </a> |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li class="md-nav__item"> |
| <a href="api/" class="md-nav__link"> |
| |
| |
| |
| <span class="md-ellipsis"> |
| API Documentation |
| |
| </span> |
| |
| |
| </a> |
| </li> |
| |
| |
| |
| </ul> |
| </nav> |
| </div> |
| </div> |
| </div> |
| |
| |
| |
| <div class="md-sidebar md-sidebar--secondary" data-md-component="sidebar" data-md-type="toc" > |
| <div class="md-sidebar__scrollwrap"> |
| <div class="md-sidebar__inner"> |
| |
| |
| <nav class="md-nav md-nav--secondary" aria-label="Table of contents"> |
| |
| |
| |
| |
| |
| |
| <label class="md-nav__title" for="__toc"> |
| <span class="md-nav__icon md-icon"></span> |
| Table of contents |
| </label> |
| <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix> |
| |
| <li class="md-nav__item"> |
| <a href="#contributing-to-iceberg-c" class="md-nav__link"> |
| <span class="md-ellipsis"> |
| Contributing to Iceberg C++ |
| </span> |
| </a> |
| |
| <nav class="md-nav" aria-label="Contributing to Iceberg C++"> |
| <ul class="md-nav__list"> |
| |
| <li class="md-nav__item"> |
| <a href="#development-setup" class="md-nav__link"> |
| <span class="md-ellipsis"> |
| Development Setup |
| </span> |
| </a> |
| |
| <nav class="md-nav" aria-label="Development Setup"> |
| <ul class="md-nav__list"> |
| |
| <li class="md-nav__item"> |
| <a href="#prerequisites" class="md-nav__link"> |
| <span class="md-ellipsis"> |
| Prerequisites |
| </span> |
| </a> |
| |
| </li> |
| |
| <li class="md-nav__item"> |
| <a href="#building-from-source" class="md-nav__link"> |
| <span class="md-ellipsis"> |
| Building from Source |
| </span> |
| </a> |
| |
| </li> |
| |
| </ul> |
| </nav> |
| |
| </li> |
| |
| <li class="md-nav__item"> |
| <a href="#code-standards" class="md-nav__link"> |
| <span class="md-ellipsis"> |
| Code Standards |
| </span> |
| </a> |
| |
| <nav class="md-nav" aria-label="Code Standards"> |
| <ul class="md-nav__list"> |
| |
| <li class="md-nav__item"> |
| <a href="#c-coding-standards" class="md-nav__link"> |
| <span class="md-ellipsis"> |
| C++ Coding Standards |
| </span> |
| </a> |
| |
| </li> |
| |
| <li class="md-nav__item"> |
| <a href="#api-compatibility" class="md-nav__link"> |
| <span class="md-ellipsis"> |
| API Compatibility |
| </span> |
| </a> |
| |
| </li> |
| |
| <li class="md-nav__item"> |
| <a href="#code-formatting" class="md-nav__link"> |
| <span class="md-ellipsis"> |
| Code Formatting |
| </span> |
| </a> |
| |
| </li> |
| |
| </ul> |
| </nav> |
| |
| </li> |
| |
| <li class="md-nav__item"> |
| <a href="#testing" class="md-nav__link"> |
| <span class="md-ellipsis"> |
| Testing |
| </span> |
| </a> |
| |
| <nav class="md-nav" aria-label="Testing"> |
| <ul class="md-nav__list"> |
| |
| <li class="md-nav__item"> |
| <a href="#running-tests" class="md-nav__link"> |
| <span class="md-ellipsis"> |
| Running Tests |
| </span> |
| </a> |
| |
| </li> |
| |
| </ul> |
| </nav> |
| |
| </li> |
| |
| <li class="md-nav__item"> |
| <a href="#linting" class="md-nav__link"> |
| <span class="md-ellipsis"> |
| Linting |
| </span> |
| </a> |
| |
| </li> |
| |
| <li class="md-nav__item"> |
| <a href="#submitting-changes" class="md-nav__link"> |
| <span class="md-ellipsis"> |
| Submitting Changes |
| </span> |
| </a> |
| |
| <nav class="md-nav" aria-label="Submitting Changes"> |
| <ul class="md-nav__list"> |
| |
| <li class="md-nav__item"> |
| <a href="#git-workflow" class="md-nav__link"> |
| <span class="md-ellipsis"> |
| Git Workflow |
| </span> |
| </a> |
| |
| </li> |
| |
| <li class="md-nav__item"> |
| <a href="#commit-message-format" class="md-nav__link"> |
| <span class="md-ellipsis"> |
| Commit Message Format |
| </span> |
| </a> |
| |
| </li> |
| |
| <li class="md-nav__item"> |
| <a href="#pull-request-process" class="md-nav__link"> |
| <span class="md-ellipsis"> |
| Pull Request Process |
| </span> |
| </a> |
| |
| </li> |
| |
| </ul> |
| </nav> |
| |
| </li> |
| |
| <li class="md-nav__item"> |
| <a href="#community" class="md-nav__link"> |
| <span class="md-ellipsis"> |
| Community |
| </span> |
| </a> |
| |
| <nav class="md-nav" aria-label="Community"> |
| <ul class="md-nav__list"> |
| |
| <li class="md-nav__item"> |
| <a href="#getting-help" class="md-nav__link"> |
| <span class="md-ellipsis"> |
| Getting Help |
| </span> |
| </a> |
| |
| </li> |
| |
| <li class="md-nav__item"> |
| <a href="#good-first-issues" class="md-nav__link"> |
| <span class="md-ellipsis"> |
| Good First Issues |
| </span> |
| </a> |
| |
| </li> |
| |
| </ul> |
| </nav> |
| |
| </li> |
| |
| <li class="md-nav__item"> |
| <a href="#release-process" class="md-nav__link"> |
| <span class="md-ellipsis"> |
| Release Process |
| </span> |
| </a> |
| |
| </li> |
| |
| </ul> |
| </nav> |
| |
| </li> |
| |
| <li class="md-nav__item"> |
| <a href="#license" class="md-nav__link"> |
| <span class="md-ellipsis"> |
| License |
| </span> |
| </a> |
| |
| </li> |
| |
| </ul> |
| |
| </nav> |
| </div> |
| </div> |
| </div> |
| |
| |
| |
| <div class="md-content" data-md-component="content"> |
| <article class="md-content__inner md-typeset"> |
| |
| |
| |
| |
| |
| |
| |
| |
| <!-- |
| ~ Licensed to the Apache Software Foundation (ASF) under one |
| ~ or more contributor license agreements. See the NOTICE file |
| ~ distributed with this work for additional information |
| ~ regarding copyright ownership. The ASF licenses this file |
| ~ to you under the Apache License, Version 2.0 (the |
| ~ "License"); you may not use this file except in compliance |
| ~ with the License. You may obtain a copy of the License at |
| ~ |
| ~ http://www.apache.org/licenses/LICENSE-2.0 |
| ~ |
| ~ Unless required by applicable law or agreed to in writing, |
| ~ software distributed under the License is distributed on an |
| ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| ~ KIND, either express or implied. See the License for the |
| ~ specific language governing permissions and limitations |
| ~ under the License. |
| --> |
| |
| <h1 id="contributing">Contributing<a class="headerlink" href="#contributing" title="Permanent link">¶</a></h1> |
| <p>We welcome contributions to Apache Iceberg! To learn more about contributing to Apache Iceberg, please refer to the official Iceberg contribution guidelines. These guidelines are intended as helpful suggestions to make the contribution process as seamless as possible, and are not strict rules.</p> |
| <p>If you would like to discuss your proposed change before contributing, we encourage you to visit our Community page. There, you will find various ways to connect with the community, including Slack and our mailing lists. Alternatively, you can open a new issue directly in the GitHub repository.</p> |
| <p>For first-time contributors, feel free to check out our good first issues for an easy way to get started.</p> |
| <p>In addition, contributors using AI-assisted tools must follow the documented guidelines for AI-assisted contributions available on the Iceberg website: <a href="https://iceberg.apache.org/contribute/#guidelines-for-ai-assisted-contributions">https://iceberg.apache.org/contribute/#guidelines-for-ai-assisted-contributions</a>.</p> |
| <h2 id="contributing-to-iceberg-c">Contributing to Iceberg C++<a class="headerlink" href="#contributing-to-iceberg-c" title="Permanent link">¶</a></h2> |
| <p>The Iceberg C++ Project is hosted on GitHub at <a href="https://github.com/apache/iceberg-cpp">https://github.com/apache/iceberg-cpp</a>.</p> |
| <h3 id="development-setup">Development Setup<a class="headerlink" href="#development-setup" title="Permanent link">¶</a></h3> |
| <h4 id="prerequisites">Prerequisites<a class="headerlink" href="#prerequisites" title="Permanent link">¶</a></h4> |
| <ul> |
| <li>CMake 3.25 or higher</li> |
| <li>C++23 compliant compiler (GCC 14+, Clang 16+, MSVC 2022+)</li> |
| <li>Git</li> |
| </ul> |
| <h4 id="building-from-source">Building from Source<a class="headerlink" href="#building-from-source" title="Permanent link">¶</a></h4> |
| <p>Clone the repository for local development:</p> |
| <div class="highlight"><pre><span></span><code><a id="__codelineno-0-1" name="__codelineno-0-1" href="#__codelineno-0-1"></a>git<span class="w"> </span>clone<span class="w"> </span>https://github.com/apache/iceberg-cpp.git |
| <a id="__codelineno-0-2" name="__codelineno-0-2" href="#__codelineno-0-2"></a><span class="nb">cd</span><span class="w"> </span>iceberg-cpp |
| </code></pre></div> |
| <p>Build the core libraries:</p> |
| <div class="highlight"><pre><span></span><code><a id="__codelineno-1-1" name="__codelineno-1-1" href="#__codelineno-1-1"></a>cmake<span class="w"> </span>-S<span class="w"> </span>.<span class="w"> </span>-B<span class="w"> </span>build<span class="w"> </span>-G<span class="w"> </span>Ninja<span class="w"> </span>-DCMAKE_INSTALL_PREFIX<span class="o">=</span>/path/to/install<span class="w"> </span>-DICEBERG_BUILD_STATIC<span class="o">=</span>ON<span class="w"> </span>-DICEBERG_BUILD_SHARED<span class="o">=</span>ON |
| <a id="__codelineno-1-2" name="__codelineno-1-2" href="#__codelineno-1-2"></a>cmake<span class="w"> </span>--build<span class="w"> </span>build |
| <a id="__codelineno-1-3" name="__codelineno-1-3" href="#__codelineno-1-3"></a>ctest<span class="w"> </span>--test-dir<span class="w"> </span>build<span class="w"> </span>--output-on-failure |
| <a id="__codelineno-1-4" name="__codelineno-1-4" href="#__codelineno-1-4"></a>cmake<span class="w"> </span>--install<span class="w"> </span>build |
| </code></pre></div> |
| <p>Build with bundled dependencies:</p> |
| <div class="highlight"><pre><span></span><code><a id="__codelineno-2-1" name="__codelineno-2-1" href="#__codelineno-2-1"></a>cmake<span class="w"> </span>-S<span class="w"> </span>.<span class="w"> </span>-B<span class="w"> </span>build<span class="w"> </span>-G<span class="w"> </span>Ninja<span class="w"> </span>-DCMAKE_INSTALL_PREFIX<span class="o">=</span>/path/to/install<span class="w"> </span>-DICEBERG_BUILD_BUNDLE<span class="o">=</span>ON |
| <a id="__codelineno-2-2" name="__codelineno-2-2" href="#__codelineno-2-2"></a>cmake<span class="w"> </span>--build<span class="w"> </span>build |
| <a id="__codelineno-2-3" name="__codelineno-2-3" href="#__codelineno-2-3"></a>ctest<span class="w"> </span>--test-dir<span class="w"> </span>build<span class="w"> </span>--output-on-failure |
| <a id="__codelineno-2-4" name="__codelineno-2-4" href="#__codelineno-2-4"></a>cmake<span class="w"> </span>--install<span class="w"> </span>build |
| </code></pre></div> |
| <h3 id="code-standards">Code Standards<a class="headerlink" href="#code-standards" title="Permanent link">¶</a></h3> |
| <h4 id="c-coding-standards">C++ Coding Standards<a class="headerlink" href="#c-coding-standards" title="Permanent link">¶</a></h4> |
| <p>We follow modern C++ best practices:</p> |
| <ul> |
| <li><strong>C++23 Standard</strong>: Use C++23 features where appropriate</li> |
| <li><strong>Naming Conventions</strong>:</li> |
| <li>Classes: <code>PascalCase</code> (e.g., <code>TableScanBuilder</code>)</li> |
| <li>Functions/Methods: <code>PascalCase</code> (e.g., <code>CreateNamespace</code>, <code>ExtractYear</code>)</li> |
| <li>Trivial getters: <code>snake_case</code> (e.g., <code>name()</code>, <code>type_id()</code>, <code>is_primitive()</code>)</li> |
| <li>Variables: <code>snake_case</code> (e.g., <code>file_io</code>)</li> |
| <li>Constants: <code>k</code> prefix with <code>PascalCase</code> (e.g., <code>kHeaderContentType</code>, <code>kMaxPrecision</code>)</li> |
| <li><strong>Memory Management</strong>: Prefer smart pointers (<code>std::unique_ptr</code>, <code>std::shared_ptr</code>)</li> |
| <li><strong>Error Handling</strong>: Use <code>Result<T></code> types for error propagation</li> |
| <li><strong>Documentation</strong>: Use Doxygen-style comments for public APIs</li> |
| </ul> |
| <h4 id="api-compatibility">API Compatibility<a class="headerlink" href="#api-compatibility" title="Permanent link">¶</a></h4> |
| <p>It is important to keep the C++ public API compatible across versions. Public methods should have no leading underscores and should not be removed without deprecation notice.</p> |
| <p>If you want to remove a method, please add a deprecation notice:</p> |
| <div class="highlight"><pre><span></span><code><a id="__codelineno-3-1" name="__codelineno-3-1" href="#__codelineno-3-1"></a><span class="p">[[</span><span class="n">deprecated</span><span class="p">(</span><span class="s">"This method will be removed in version 2.0.0. Use new_method() instead."</span><span class="p">)]]</span> |
| <a id="__codelineno-3-2" name="__codelineno-3-2" href="#__codelineno-3-2"></a><span class="kt">void</span><span class="w"> </span><span class="n">old_method</span><span class="p">();</span> |
| </code></pre></div> |
| <h4 id="code-formatting">Code Formatting<a class="headerlink" href="#code-formatting" title="Permanent link">¶</a></h4> |
| <p>We use <code>clang-format</code> for code formatting. The configuration is defined in <code>.clang-format</code> file.</p> |
| <p>Format your code before submitting:</p> |
| <div class="highlight"><pre><span></span><code><a id="__codelineno-4-1" name="__codelineno-4-1" href="#__codelineno-4-1"></a>clang-format<span class="w"> </span>-i<span class="w"> </span>src/**/*.<span class="o">{</span>h,cc<span class="o">}</span> |
| </code></pre></div> |
| <h3 id="testing">Testing<a class="headerlink" href="#testing" title="Permanent link">¶</a></h3> |
| <h4 id="running-tests">Running Tests<a class="headerlink" href="#running-tests" title="Permanent link">¶</a></h4> |
| <p>Run all tests:</p> |
| <div class="highlight"><pre><span></span><code><a id="__codelineno-5-1" name="__codelineno-5-1" href="#__codelineno-5-1"></a>ctest<span class="w"> </span>--test-dir<span class="w"> </span>build<span class="w"> </span>--output-on-failure |
| </code></pre></div> |
| <p>Run specific test:</p> |
| <div class="highlight"><pre><span></span><code><a id="__codelineno-6-1" name="__codelineno-6-1" href="#__codelineno-6-1"></a>ctest<span class="w"> </span>--test-dir<span class="w"> </span>build<span class="w"> </span>-R<span class="w"> </span>test_name |
| </code></pre></div> |
| <h3 id="linting">Linting<a class="headerlink" href="#linting" title="Permanent link">¶</a></h3> |
| <p>Install the python package <code>pre-commit</code> and run once <code>pre-commit install</code>:</p> |
| <div class="highlight"><pre><span></span><code><a id="__codelineno-7-1" name="__codelineno-7-1" href="#__codelineno-7-1"></a>pip<span class="w"> </span>install<span class="w"> </span>pre-commit |
| <a id="__codelineno-7-2" name="__codelineno-7-2" href="#__codelineno-7-2"></a>pre-commit<span class="w"> </span>install |
| </code></pre></div> |
| <p>This will setup a git pre-commit-hook that is executed on each commit and will report the linting problems. To run all hooks on all files use <code>pre-commit run -a</code>.</p> |
| <h3 id="submitting-changes">Submitting Changes<a class="headerlink" href="#submitting-changes" title="Permanent link">¶</a></h3> |
| <h4 id="git-workflow">Git Workflow<a class="headerlink" href="#git-workflow" title="Permanent link">¶</a></h4> |
| <ol> |
| <li><strong>Fork the repository</strong> on GitHub</li> |
| <li><strong>Create a feature branch</strong> from <code>main</code>: |
| <div class="highlight"><pre><span></span><code><a id="__codelineno-8-1" name="__codelineno-8-1" href="#__codelineno-8-1"></a>git<span class="w"> </span>checkout<span class="w"> </span>-b<span class="w"> </span>feature/your-feature-name |
| </code></pre></div></li> |
| <li><strong>Make your changes</strong> following the coding standards</li> |
| <li><strong>Add tests</strong> for your changes</li> |
| <li><strong>Run tests</strong> to ensure everything passes</li> |
| <li><strong>Commit your changes</strong> with a clear commit message</li> |
| <li><strong>Push to your fork</strong> and create a Pull Request</li> |
| </ol> |
| <h4 id="commit-message-format">Commit Message Format<a class="headerlink" href="#commit-message-format" title="Permanent link">¶</a></h4> |
| <p>Use clear, descriptive commit messages:</p> |
| <div class="highlight"><pre><span></span><code><a id="__codelineno-9-1" name="__codelineno-9-1" href="#__codelineno-9-1"></a>feat: add support for S3 file system |
| <a id="__codelineno-9-2" name="__codelineno-9-2" href="#__codelineno-9-2"></a>fix: resolve memory leak in table reader |
| <a id="__codelineno-9-3" name="__codelineno-9-3" href="#__codelineno-9-3"></a>docs: update API documentation |
| <a id="__codelineno-9-4" name="__codelineno-9-4" href="#__codelineno-9-4"></a>test: add unit tests for schema validation |
| </code></pre></div> |
| <h4 id="pull-request-process">Pull Request Process<a class="headerlink" href="#pull-request-process" title="Permanent link">¶</a></h4> |
| <ol> |
| <li><strong>Create a Pull Request</strong> with a clear description</li> |
| <li><strong>Link related issues</strong> if applicable</li> |
| <li><strong>Ensure CI passes</strong> - all tests must pass</li> |
| <li><strong>Request review</strong> from maintainers</li> |
| <li><strong>Address feedback</strong> and update the PR as needed</li> |
| <li><strong>Squash commits</strong> if requested by reviewers</li> |
| </ol> |
| <h3 id="community">Community<a class="headerlink" href="#community" title="Permanent link">¶</a></h3> |
| <p>The Apache Iceberg community is built on the principles described in the <a href="https://www.apache.org/theapacheway/index.html">Apache Way</a> and all who engage with the community are expected to be respectful, open, come with the best interests of the community in mind, and abide by the Apache Foundation <a href="https://www.apache.org/foundation/policies/conduct.html">Code of Conduct</a>.</p> |
| <h4 id="getting-help">Getting Help<a class="headerlink" href="#getting-help" title="Permanent link">¶</a></h4> |
| <ul> |
| <li><strong>Submit Issues</strong>: <a href="https://github.com/apache/iceberg-cpp/issues/new">GitHub Issues</a> for bug reports or feature requests</li> |
| <li><strong>Mailing List</strong>: <a href="mailto:dev@iceberg.apache.org">dev@iceberg.apache.org</a> for discussions</li> |
| <li><a href="mailto:dev-subscribe@iceberg.apache.org?subject=(send%20this%20email%20to%20subscribe)">Subscribe</a></li> |
| <li><a href="mailto:dev-unsubscribe@iceberg.apache.org?subject=(send%20this%20email%20to%20unsubscribe)">Unsubscribe</a></li> |
| <li><a href="https://lists.apache.org/list.html?dev@iceberg.apache.org">Archives</a></li> |
| <li><strong>Slack</strong>: <a href="https://join.slack.com/t/apache-iceberg/shared_invite/zt-1zbov3k6e-KtJfoaxp97YfX6dPz1Bk7A">Apache Iceberg Slack #cpp channel</a></li> |
| </ul> |
| <h4 id="good-first-issues">Good First Issues<a class="headerlink" href="#good-first-issues" title="Permanent link">¶</a></h4> |
| <p>New to the project? Check out our <a href="https://github.com/apache/iceberg-cpp/labels/good%20first%20issue">good first issues</a> for an easy way to get started.</p> |
| <h3 id="release-process">Release Process<a class="headerlink" href="#release-process" title="Permanent link">¶</a></h3> |
| <p>Releases are managed by the Apache Iceberg project maintainers. For information about the release process, please refer to the main Iceberg project documentation.</p> |
| <h2 id="license">License<a class="headerlink" href="#license" title="Permanent link">¶</a></h2> |
| <p>Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a></p> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| </article> |
| </div> |
| |
| |
| <script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script> |
| </div> |
| |
| </main> |
| |
| <footer class="md-footer"> |
| |
| <div class="md-footer-meta md-typeset"> |
| <div class="md-footer-meta__inner md-grid"> |
| <div class="md-copyright"> |
| |
| |
| Made with |
| <a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener"> |
| Material for MkDocs |
| </a> |
| |
| </div> |
| |
| |
| <div class="md-social"> |
| |
| |
| |
| |
| |
| |
| |
| |
| <a href="https://github.com/apache/iceberg-cpp" target="_blank" rel="noopener" title="github.com" class="md-social__link"> |
| <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> |
| </a> |
| |
| |
| |
| |
| |
| |
| |
| |
| <a href="https://apache-iceberg.slack.com/" target="_blank" rel="noopener" title="apache-iceberg.slack.com" class="md-social__link"> |
| <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M94.1 315.1c0 25.9-21.2 47.1-47.1 47.1S0 341 0 315.1 21.2 268 47.1 268h47.1v47.1zm23.7 0c0-25.9 21.2-47.1 47.1-47.1s47.1 21.2 47.1 47.1v117.8c0 25.9-21.2 47.1-47.1 47.1s-47.1-21.2-47.1-47.1zm47.1-189c-25.9 0-47.1-21.2-47.1-47.1s21.2-47 47.1-47S212 53.2 212 79.1v47.1h-47.1zm0 23.7c25.9 0 47.1 21.2 47.1 47.1S190.8 244 164.9 244H47.1C21.2 244 0 222.8 0 196.9s21.2-47.1 47.1-47.1zm189 47.1c0-25.9 21.2-47.1 47.1-47.1s47 21.2 47 47.1-21.2 47.1-47.1 47.1h-47.1v-47.1zm-23.7 0c0 25.9-21.2 47.1-47.1 47.1S236 222.8 236 196.9V79.1c0-25.9 21.2-47.1 47.1-47.1s47.1 21.2 47.1 47.1zm-47.1 189c25.9 0 47.1 21.2 47.1 47.1s-21.2 47-47.1 47-47.1-21.2-47.1-47.1v-47.1h47.1zm0-23.7c-25.9 0-47.1-21.2-47.1-47.1s21.2-47.1 47.1-47.1h117.8c25.9 0 47.1 21.2 47.1 47.1s-21.2 47.1-47.1 47.1z"/></svg> |
| </a> |
| |
| </div> |
| |
| </div> |
| </div> |
| </footer> |
| |
| </div> |
| <div class="md-dialog" data-md-component="dialog"> |
| <div class="md-dialog__inner md-typeset"></div> |
| </div> |
| |
| |
| |
| |
| <script id="__config" type="application/json">{"base": ".", "features": ["navigation.expand", "navigation.tabs", "navigation.tabs.sticky", "content.code.copy"], "search": "assets/javascripts/workers/search.973d3a69.min.js", "tags": null, "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}, "version": null}</script> |
| |
| |
| <script src="assets/javascripts/bundle.f55a23d4.min.js"></script> |
| |
| |
| </body> |
| </html> |