PageSourceSearch

https://flatbuffers.dev/

html flatbuffers.dev collected 2026-10-01 10:43:02 UTC 35,634 bytes, 1,618 lines download raw bytes

1
2<!doctype html>
3<html lang="en" class="no-js">
4  <head>
5    
6      <meta charset="utf-8">
7      <meta name="viewport" content="width=device-width,initial-scale=1">
8      
9      
10      
11        <link rel="canonical" href="https://flatbuffers.dev/">
12      
13      
14      
15        <link rel="next" href="quick_start/">
16      
17      
18        
19      
20      
21      <link rel="icon" href="assets/images/favicon.png">
22      <meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.7.6">
23    
24    
25      
26        <title>FlatBuffers Docs</title>
27      
28    
29    
30      <link rel="stylesheet" href="assets/stylesheets/main.484c7ddc.min.css">
31      
32        
33        <link rel="stylesheet" href="assets/stylesheets/palette.ab4e12ef.min.css">
34      
35      
36
37
38    
39    
40      
41    
42    
43      
44        
45        
46        <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
47        <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">
48        <style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style>
49      
50    
51    
52    
52<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>
52
53    
54      
55
56    
57    
58  </head>
59  
60  
61    
62    
63      
64    
65    
66    
67    
68    <body dir="ltr" data-md-color-scheme="default" data-md-color-primary="indigo" data-md-color-accent="indigo">
69  
70    
71    <input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off">
72    <input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
73    <label class="md-overlay" for="__drawer"></label>
74    <div data-md-component="skip">
75      
76        
77        <a href="#overview" class="md-skip">
78          Skip to content
79        </a>
80      
81    </div>
82    <div data-md-component="announce">
83      
84    </div>
85    
86    
87      
88
89  
90
91<header class="md-header md-header--shadow" data-md-component="header">
92  <nav class="md-header__inner md-grid" aria-label="Header">
93    <a href="." title="FlatBuffers Docs" class="md-header__button md-logo" aria-label="FlatBuffers Docs" data-md-component="logo">
94      
95  <img src="assets/flatbuffers_logo.svg" alt="logo">
96
97    </a>
98    <label class="md-header__button md-icon" for="__drawer">
99      
100      <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3zm0 5h18v2H3zm0 5h18v2H3z"/></svg>
101    </label>
102    <div class="md-header__title" data-md-component="header-title">
103      <div class="md-header__ellipsis">
104        <div class="md-header__topic">
105          <span class="md-ellipsis">
106            FlatBuffers Docs
107          </span>
108        </div>
109        <div class="md-header__topic" data-md-component="header-topic">
110          <span class="md-ellipsis">
111            
112              Overview
113            
114          </span>
115        </div>
116      </div>
117    </div>
118    
119      
120        <form class="md-header__option" data-md-component="palette">
121  
122    
123    
124    
125    <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">
126    
127      <label class="md-header__button md-icon" title="Switch to dark mode" for="__palette_1" hidden>
128        <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>
129      </label>
130    
131  
132    
133    
134    
135    <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">
136    
137      <label class="md-header__button md-icon" title="Switch to light mode" for="__palette_0" hidden>
138        <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>
139      </label>
140    
141  
142</form>
143      
144    
145    
146      
146<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>
146
147    
148    
149    
150    
151      <div class="md-header__source">
152        <a href="https://github.com/google/flatbuffers" title="Go to repository" class="md-source" data-md-component="source">
153  <div class="md-source__icon md-icon">
154    
155    <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>
156  </div>
157  <div class="md-source__repository">
158    google/FlatBuffers
159  </div>
160</a>
161      </div>
162    
163  </nav>
164  
165</header>
166    
167    <div class="md-container" data-md-component="container">
168      
169      
170        
171          
172        
173      
174      <main class="md-main" data-md-component="main">
175        <div class="md-main__inner md-grid">
176          
177            
178              
179              <div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation" >
180                <div class="md-sidebar__scrollwrap">
181                  <div class="md-sidebar__inner">
182                    
183
184
185
186<nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0">
187  <label class="md-nav__title" for="__drawer">
188    <a href="." title="FlatBuffers Docs" class="md-nav__button md-logo" aria-label="FlatBuffers Docs" data-md-component="logo">
189      
190  <img src="assets/flatbuffers_logo.svg" alt="logo">
191
192    </a>
193    FlatBuffers Docs
194  </label>
195  
196    <div class="md-nav__source">
197      <a href="https://github.com/google/flatbuffers" title="Go to repository" class="md-source" data-md-component="source">
198  <div class="md-source__icon md-icon">
199    
200    <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>
201  </div>
202  <div class="md-source__repository">
203    google/FlatBuffers
204  </div>
205</a>
206    </div>
207  
208  <ul class="md-nav__list" data-md-scrollfix>
209    
210      
211      
212  
213  
214    
215  
216  
217  
218    <li class="md-nav__item md-nav__item--active">
219      
220      <input class="md-nav__toggle md-toggle" type="checkbox" id="__toc">
221      
222      
223        
224      
225      
226        <label class="md-nav__link md-nav__link--active" for="__toc">
227          
228  
229  
230  <span class="md-ellipsis">
231    
232  
233    Overview
234  
235
236    
237  </span>
238  
239  
240
241          <span class="md-nav__icon md-icon"></span>
242        </label>
243      
244      <a href="." class="md-nav__link md-nav__link--active">
245        
246  
247  
248  <span class="md-ellipsis">
249    
250  
251    Overview
252  
253
254    
255  </span>
256  
257  
258
259      </a>
260      
261        
262
263<nav class="md-nav md-nav--secondary" aria-label="Table of contents">
264  
265  
266  
267    
268  
269  
270    <label class="md-nav__title" for="__toc">
271      <span class="md-nav__icon md-icon"></span>
272      Table of contents
273    </label>
274    <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
275      
276        <li class="md-nav__item">
277  <a href="#why-use-flatbuffers" class="md-nav__link">
278    <span class="md-ellipsis">
279      
280        Why Use FlatBuffers?
281      
282    </span>
283  </a>
284  
285</li>
286      
287        <li class="md-nav__item">
288  <a href="#why-not-use" class="md-nav__link">
289    <span class="md-ellipsis">
290      
291        Why not use...
292      
293    </span>
294  </a>
295  
296</li>
297      
298    </ul>
299  
300</nav>
301      
302    </li>
303  
304
305    
306      
307      
308  
309  
310  
311  
312    <li class="md-nav__item">
313      <a href="quick_start/" class="md-nav__link">
314        
315  
316  
317  <span class="md-ellipsis">
318    
319  
320    Quick Start
321  
322
323    
324  </span>
325  
326  
327
328      </a>
329    </li>
330  
331
332    
333      
334      
335  
336  
337  
338  
339    <li class="md-nav__item">
340      <a href="tutorial/" class="md-nav__link">
341        
342  
343  
344  <span class="md-ellipsis">
345    
346  
347    Tutorial
348  
349
350    
351  </span>
352  
353  
354
355      </a>
356    </li>
357  
358
359    
360      
361      
362  
363  
364  
365  
366    
367    
368    
369    
370    
371    <li class="md-nav__item md-nav__item--nested">
372      
373        
374        
375          
376        
377        <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_4" >
378        
379          
380          <label class="md-nav__link" for="__nav_4" id="__nav_4_label" tabindex="0">
381            
382  
383  
384  <span class="md-ellipsis">
385    
386  
387    Compiler (flatc)
388  
389
390    
391  </span>
392  
393  
394
395            <span class="md-nav__icon md-icon"></span>
396          </label>
397        
398        <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_4_label" aria-expanded="false">
399          <label class="md-nav__title" for="__nav_4">
400            <span class="md-nav__icon md-icon"></span>
401            
402  
403    Compiler (flatc)
404  
405
406          </label>
407          <ul class="md-nav__list" data-md-scrollfix>
408            
409              
410                
411  
412  
413  
414  
415    <li class="md-nav__item">
416      <a href="building/" class="md-nav__link">
417        
418  
419  
420  <span class="md-ellipsis">
421    
422  
423    Building
424  
425
426    
427  </span>
428  
429  
430
431      </a>
432    </li>
433  
434
435              
436            
437              
438                
439  
440  
441  
442  
443    <li class="md-nav__item">
444      <a href="flatc/" class="md-nav__link">
445        
446  
447  
448  <span class="md-ellipsis">
449    
450  
451    Using
452  
453
454    
455  </span>
456  
457  
458
459      </a>
460    </li>
461  
462
463              
464            
465          </ul>
466        </nav>
467      
468    </li>
469  
470
471    
472      
473      
474  
475  
476  
477  
478    
479    
480    
481    
482    
483    <li class="md-nav__item md-nav__item--nested">
484      
485        
486        
487          
488        
489        <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_5" >
490        
491          
492          <label class="md-nav__link" for="__nav_5" id="__nav_5_label" tabindex="0">
493            
494  
495  
496  <span class="md-ellipsis">
497    
498  
499    Schema (.fbs)
500  
501
502    
503  </span>
504  
505  
506
507            <span class="md-nav__icon md-icon"></span>
508          </label>
509        
510        <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_5_label" aria-expanded="false">
511          <label class="md-nav__title" for="__nav_5">
512            <span class="md-nav__icon md-icon"></span>
513            
514  
515    Schema (.fbs)
516  
517
518          </label>
519          <ul class="md-nav__list" data-md-scrollfix>
520            
521              
522                
523  
524  
525  
526  
527    <li class="md-nav__item">
528      <a href="schema/" class="md-nav__link">
529        
530  
531  
532  <span class="md-ellipsis">
533    
534  
535    Overview
536  
537
538    
539  </span>
540  
541  
542
543      </a>
544    </li>
545  
546
547              
548            
549              
550                
551  
552  
553  
554  
555    <li class="md-nav__item">
556      <a href="evolution/" class="md-nav__link">
557        
558  
559  
560  <span class="md-ellipsis">
561    
562  
563    Evolution
564  
565
566    
567  </span>
568  
569  
570
571      </a>
572    </li>
573  
574
575              
576            
577              
578                
579  
580  
581  
582  
583    <li class="md-nav__item">
584      <a href="grammar/" class="md-nav__link">
585        
586  
587  
588  <span class="md-ellipsis">
589    
590  
591    Grammar
592  
593
594    
595  </span>
596  
597  
598
599      </a>
600    </li>
601  
602
603              
604            
605          </ul>
606        </nav>
607      
608    </li>
609  
610
611    
612      
613      
614  
615  
616  
617  
618    
619    
620    
621    
622    
623    <li class="md-nav__item md-nav__item--nested">
624      
625        
626        
627          
628        
629        <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_6" >
630        
631          
632          <label class="md-nav__link" for="__nav_6" id="__nav_6_label" tabindex="0">
633            
634  
635  
636  <span class="md-ellipsis">
637    
638  
639    Language Guides
640  
641
642    
643  </span>
644  
645  
646
647            <span class="md-nav__icon md-icon"></span>
648          </label>
649        
650        <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_6_label" aria-expanded="false">
651          <label class="md-nav__title" for="__nav_6">
652            <span class="md-nav__icon md-icon"></span>
653            
654  
655    Language Guides
656  
657
658          </label>
659          <ul class="md-nav__list" data-md-scrollfix>
660            
661              
662                
663  
664  
665  
666  
667    <li class="md-nav__item">
668      <a href="languages/c/" class="md-nav__link">
669        
670  
671  
672  <span class="md-ellipsis">
673    
674  
675    C
676  
677
678    
679  </span>
680  
681  
682
683      </a>
684    </li>
685  
686
687              
688            
689              
690                
691  
692  
693  
694  
695    <li class="md-nav__item">
696      <a href="languages/cpp/" class="md-nav__link">
697        
698  
699  
700  <span class="md-ellipsis">
701    
702  
703    C++
704  
705
706    
707  </span>
708  
709  
710
711      </a>
712    </li>
713  
714
715              
716            
717              
718                
719  
720  
721  
722  
723    <li class="md-nav__item">
724      <a href="languages/c_sharp/" class="md-nav__link">
725        
726  
727  
728  <span class="md-ellipsis">
729    
730  
731    C#
732  
733
734    
735  </span>
736  
737  
738
739      </a>
740    </li>
741  
742
743              
744            
745              
746                
747  
748  
749  
750  
751    <li class="md-nav__item">
752      <a href="languages/dart/" class="md-nav__link">
753        
754  
755  
756  <span class="md-ellipsis">
757    
758  
759    Dart
760  
761
762    
763  </span>
764  
765  
766
767      </a>
768    </li>
769  
770
771              
772            
773              
774                
775  
776  
777  
778  
779    <li class="md-nav__item">
780      <a href="languages/go/" class="md-nav__link">
781        
782  
783  
784  <span class="md-ellipsis">
785    
786  
787    Go
788  
789
790    
791  </span>
792  
793  
794
795      </a>
796    </li>
797  
798
799              
800            
801              
802                
803  
804  
805  
806  
807    <li class="md-nav__item">
808      <a href="languages/java/" class="md-nav__link">
809        
810  
811  
812  <span class="md-ellipsis">
813    
814  
815    Java
816  
817
818    
819  </span>
820  
821  
822
823      </a>
824    </li>
825  
826
827              
828            
829              
830                
831  
832  
833  
834  
835    <li class="md-nav__item">
836      <a href="languages/javascript/" class="md-nav__link">
837        
838  
839  
840  <span class="md-ellipsis">
841    
842  
843    JavaScript
844  
845
846    
847  </span>
848  
849  
850
851      </a>
852    </li>
853  
854
855              
856            
857              
858                
859  
860  
861  
862  
863    <li class="md-nav__item">
864      <a href="languages/kotlin/" class="md-nav__link">
865        
866  
867  
868  <span class="md-ellipsis">
869    
870  
871    Kotlin
872  
873
874    
875  </span>
876  
877  
878
879      </a>
880    </li>
881  
882
883              
884            
885              
886                
887  
888  
889  
890  
891    <li class="md-nav__item">
892      <a href="languages/lobster/" class="md-nav__link">
893        
894  
895  
896  <span class="md-ellipsis">
897    
898  
899    Lobster
900  
901
902    
903  </span>
904  
905  
906
907      </a>
908    </li>
909  
910
911              
912            
913              
914                
915  
916  
917  
918  
919    <li class="md-nav__item">
920      <a href="languages/lua/" class="md-nav__link">
921        
922  
923  
924  <span class="md-ellipsis">
925    
926  
927    Lua
928  
929
930    
931  </span>
932  
933  
934
935      </a>
936    </li>
937  
938
939              
940            
941              
942                
943  
944  
945  
946  
947    <li class="md-nav__item">
948      <a href="languages/php/" class="md-nav__link">
949        
950  
951  
952  <span class="md-ellipsis">
953    
954  
955    PHP
956  
957
958    
959  </span>
960  
961  
962
963      </a>
964    </li>
965  
966
967              
968            
969              
970                
971  
972  
973  
974  
975    <li class="md-nav__item">
976      <a href="languages/python/" class="md-nav__link">
977        
978  
979  
980  <span class="md-ellipsis">
981    
982  
983    Python
984  
985
986    
987  </span>
988  
989  
990
991      </a>
992    </li>
993  
994
995              
996            
997              
998                
999  
1000  
1001  
1002  
1003    <li class="md-nav__item">
1004      <a href="languages/rust/" class="md-nav__link">
1005        
1006  
1007  
1008  <span class="md-ellipsis">
1009    
1010  
1011    Rust
1012  
1013
1014    
1015  </span>
1016  
1017  
1018
1019      </a>
1020    </li>
1021  
1022
1023              
1024            
1025              
1026                
1027  
1028  
1029  
1030  
1031    <li class="md-nav__item">
1032      <a href="languages/swift/" class="md-nav__link">
1033        
1034  
1035  
1036  <span class="md-ellipsis">
1037    
1038  
1039    Swift
1040  
1041
1042    
1043  </span>
1044  
1045  
1046
1047      </a>
1048    </li>
1049  
1050
1051              
1052            
1053              
1054                
1055  
1056  
1057  
1058  
1059    <li class="md-nav__item">
1060      <a href="languages/typescript/" class="md-nav__link">
1061        
1062  
1063  
1064  <span class="md-ellipsis">
1065    
1066  
1067    TypeScript
1068  
1069
1070    
1071  </span>
1072  
1073  
1074
1075      </a>
1076    </li>
1077  
1078
1079              
1080            
1081          </ul>
1082        </nav>
1083      
1084    </li>
1085  
1086
1087    
1088      
1089      
1090  
1091  
1092  
1093  
1094    <li class="md-nav__item">
1095      <a href="support/" class="md-nav__link">
1096        
1097  
1098  
1099  <span class="md-ellipsis">
1100    
1101  
1102    Supported Configurations
1103  
1104
1105    
1106  </span>
1107  
1108  
1109
1110      </a>
1111    </li>
1112  
1113
1114    
1115      
1116      
1117  
1118  
1119  
1120  
1121    <li class="md-nav__item">
1122      <a href="white_paper/" class="md-nav__link">
1123        
1124  
1125  
1126  <span class="md-ellipsis">
1127    
1128  
1129    White Paper
1130  
1131
1132    
1133  </span>
1134  
1135  
1136
1137      </a>
1138    </li>
1139  
1140
1141    
1142      
1143      
1144  
1145  
1146  
1147  
1148    
1149    
1150    
1151    
1152    
1153    <li class="md-nav__item md-nav__item--nested">
1154      
1155        
1156        
1157          
1158        
1159        <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_9" >
1160        
1161          
1162          <label class="md-nav__link" for="__nav_9" id="__nav_9_label" tabindex="0">
1163            
1164  
1165  
1166  <span class="md-ellipsis">
1167    
1168  
1169    Advanced
1170  
1171
1172    
1173  </span>
1174  
1175  
1176
1177            <span class="md-nav__icon md-icon"></span>
1178          </label>
1179        
1180        <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_9_label" aria-expanded="false">
1181          <label class="md-nav__title" for="__nav_9">
1182            <span class="md-nav__icon md-icon"></span>
1183            
1184  
1185    Advanced
1186  
1187
1188          </label>
1189          <ul class="md-nav__list" data-md-scrollfix>
1190            
1191              
1192                
1193  
1194  
1195  
1196  
1197    <li class="md-nav__item">
1198      <a href="internals/" class="md-nav__link">
1199        
1200  
1201  
1202  <span class="md-ellipsis">
1203    
1204  
1205    FlatBuffers Internals
1206  
1207
1208    
1209  </span>
1210  
1211  
1212
1213      </a>
1214    </li>
1215  
1216
1217              
1218            
1219              
1220                
1221  
1222  
1223  
1224  
1225    <li class="md-nav__item">
1226      <a href="intermediate_representation/" class="md-nav__link">
1227        
1228  
1229  
1230  <span class="md-ellipsis">
1231    
1232  
1233    Intermediate Representation
1234  
1235
1236    
1237  </span>
1238  
1239  
1240
1241      </a>
1242    </li>
1243  
1244
1245              
1246            
1247              
1248                
1249  
1250  
1251  
1252  
1253    <li class="md-nav__item">
1254      <a href="annotation/" class="md-nav__link">
1255        
1256  
1257  
1258  <span class="md-ellipsis">
1259    
1260  
1261    Annotating Buffers (.afb)
1262  
1263
1264    
1265  </span>
1266  
1267  
1268
1269      </a>
1270    </li>
1271  
1272
1273              
1274            
1275              
1276                
1277  
1278  
1279  
1280  
1281    <li class="md-nav__item">
1282      <a href="benchmarks/" class="md-nav__link">
1283        
1284  
1285  
1286  <span class="md-ellipsis">
1287    
1288  
1289    Benchmarks
1290  
1291
1292    
1293  </span>
1294  
1295  
1296
1297      </a>
1298    </li>
1299  
1300
1301              
1302            
1303          </ul>
1304        </nav>
1305      
1306    </li>
1307  
1308
1309    
1310      
1311      
1312  
1313  
1314  
1315  
1316    <li class="md-nav__item">
1317      <a href="flexbuffers/" class="md-nav__link">
1318        
1319  
1320  
1321  <span class="md-ellipsis">
1322    
1323  
1324    FlexBuffers (Schema-less version)
1325  
1326
1327    
1328  </span>
1329  
1330  
1331
1332      </a>
1333    </li>
1334  
1335
1336    
1337      
1338      
1339  
1340  
1341  
1342  
1343    <li class="md-nav__item">
1344      <a href="contributing/" class="md-nav__link">
1345        
1346  
1347  
1348  <span class="md-ellipsis">
1349    
1350  
1351    Contributing
1352  
1353
1354    
1355  </span>
1356  
1357  
1358
1359      </a>
1360    </li>
1361  
1362
1363    
1364  </ul>
1365</nav>
1366                  </div>
1367                </div>
1368              </div>
1369            
1370            
1371              
1372              <div class="md-sidebar md-sidebar--secondary" data-md-component="sidebar" data-md-type="toc" >
1373                <div class="md-sidebar__scrollwrap">
1374                  <div class="md-sidebar__inner">
1375                    
1376
1377<nav class="md-nav md-nav--secondary" aria-label="Table of contents">
1378  
1379  
1380  
1381    
1382  
1383  
1384    <label class="md-nav__title" for="__toc">
1385      <span class="md-nav__icon md-icon"></span>
1386      Table of contents
1387    </label>
1388    <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
1389      
1390        <li class="md-nav__item">
1391  <a href="#why-use-flatbuffers" class="md-nav__link">
1392    <span class="md-ellipsis">
1393      
1394        Why Use FlatBuffers?
1395      
1396    </span>
1397  </a>
1398  
1399</li>
1400      
1401        <li class="md-nav__item">
1402  <a href="#why-not-use" class="md-nav__link">
1403    <span class="md-ellipsis">
1404      
1405        Why not use...
1406      
1407    </span>
1408  </a>
1409  
1410</li>
1411      
1412    </ul>
1413  
1414</nav>
1415                  </div>
1416                </div>
1417              </div>
1418            
1419          
1420          
1421            <div class="md-content" data-md-component="content">
1422              
1423              <article class="md-content__inner md-typeset">
1424                
1425                  
1426
1427
1428  
1429    <a href="https://github.com/google/flatbuffers/edit/master/docs/source/index.md" title="Edit this page" class="md-content__button md-icon" rel="edit">
1430      
1431      <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M10 20H6V4h7v5h5v3.1l2-2V8l-6-6H6c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h4zm10.2-7c.1 0 .3.1.4.2l1.3 1.3c.2.2.2.6 0 .8l-1 1-2.1-2.1 1-1c.1-.1.2-.2.4-.2m0 3.9L14.1 23H12v-2.1l6.1-6.1z"/></svg>
1432    </a>
1433  
1434  
1435
1436
1437<h1 id="overview">Overview</h1>
1438<p>FlatBuffers is an efficient cross platform serialization library for C++, C#, C,
1439Go, Java, Kotlin, JavaScript, Lobster, Lua, TypeScript, PHP, Python, Rust and
1440Swift. It was originally created at Google for game development and other
1441performance-critical applications.</p>
1442<p>It is available as Open Source on
1443<a href="https://github.com/google/flatbuffers">GitHub</a> under the Apache license v2.0.</p>
1444<h2 id="why-use-flatbuffers">Why Use FlatBuffers?</h2>
1445<div class="grid cards">
1446<ul>
1447<li>
1448<p><span class="twemoji lg middle"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
1448<path d="M15 4a8 8 0 0 1 8 8 8 8 0 0 1-8 8 8 8 0 0 1-8-8 8 8 0 0 1 8-8m0 2a6 6 0 0 0-6 6 6 6 0 0 0 6 6 6 6 0 0 0 6-6 6 6 0 0 0-6-6m-1 2h1.5v3.78l2.33 2.33-1.06 1.06L14 12.4zM2 18a1 1 0 0 1-1-1 1 1 0 0 1 1-1h3.83c.31.71.71 1.38 1.17 2zm1-5a1 1 0 0 1-1-1 1 1 0 0 1 1-1h2.05L5 12l.05 1zm1-5a1 1 0 0 1-1-1 1 1 0 0 1 1-1h3c-.46.62-.86 1.29-1.17 2z"/></svg></span> <strong>Access to serialized data without
1449  parsing/unpacking</strong></p>
1450<hr />
1451<p>Access the data directly without unpacking or parsing.</p>
1452</li>
1453<li>
1454<p><span class="twemoji lg middle"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M17 17H7V7h10m4 4V9h-2V7a2 2 0 0 0-2-2h-2V3h-2v2h-2V3H9v2H7c-1.11 0-2 .89-2 2v2H3v2h2v2H3v2h2v2a2 2 0 0 0 2 2h2v2h2v-2h2v2h2v-2h2a2 2 0 0 0 2-2v-2h2v-2h-2v-2m-6 2h-2v-2h2m2-2H9v6h6z"/></svg></span> <strong>Memory Efficiency and Speed</strong></p>
1455<hr />
1456<p>The only memory needed to access your data is that of the buffer.
1457  No heap is required.</p>
1458</li>
1459<li>
1460<p><span class="twemoji lg middle"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9 14H2v2h7v3l4-4-4-4zm6-1v-3h7V8h-7V5l-4 4z"/></svg></span> <strong>Backwards and Forwards
1461  Compatibility</strong></p>
1462<hr />
1463<p>FlatBuffers enables the schema to evolve over time while still maintaining
1464  forwards and backwards compatibility with old flatbuffers.</p>
1465</li>
1466<li>
1467<p><span class="twemoji lg middle"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="m22.11 21.46-1.27 1.27L19.11 21H18v-1.11L12.11 14H11v-1.11l-.69-.69a7.9 7.9 0 0 0-3.22 1.48l1.37 1.38-1.41 1.41-1.37-1.37A7.94 7.94 0 0 0 4.06 19H6v2H2v-1a10 10 0 0 1 6.68-9.43L3.85 5.74 2 5V3.89L1.11 3l1.28-1.27m19.52 16.98A10 10 0 0 0 14 10.2v-2L22 5V3H6.2M12 18a1.84 1.84 0 0 0-.88.21L7.27 20l3.85 1.79A1.84 1.84 0 0 0 12 22a2 2 0 0 0 0-4"/></svg></span> <strong>Small Footprint</strong></p>
1468<hr />
1469<p>Minimal dependencies and small code footprint.</p>
1470</li>
1471</ul>
1472</div>
1473<h2 id="why-not-use">Why not use...</h2>
1474<div class="tabbed-set tabbed-alternate" data-tabs="1:2"><input checked="checked" id="protocol-buffers" name="__tabbed_1" type="radio" /><input id="json" name="__tabbed_1" type="radio" /><div class="tabbed-labels"><label for="protocol-buffers">Protocol Buffers</label><label for="json">JSON</label></div>
1475<div class="tabbed-content">
1476<div class="tabbed-block">
1477<p>Protocol Buffers is indeed relatively similar to FlatBuffers, with the primary
1478difference being that FlatBuffers does not need a parsing/unpacking step to a
1479secondary representation before you can access data, often coupled with
1480per-object memory allocation. The code is an order of magnitude bigger, too.</p>
1481</div>
1482<div class="tabbed-block">
1483<p>JSON is very readable (which is why we use it as our optional text format) and
1484very convenient when used together with dynamically typed languages (such as
1485JavaScript). When serializing data from statically typed languages, however,
1486JSON not only has the obvious drawback of runtime inefficiency, but also forces
1487you to write more code to access data (counterintuitively) due to its
1488dynamic-typing serialization system. In this context, it is only a better choice
1489for systems that have very little to no information ahead of time about what
1490data needs to be stored.</p>
1491</div>
1492</div>
1493</div>
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506                
1507              </article>
1508            </div>
1509          
1510          
1511  
1511<script>var tabs=__md_get("__tabs");if(Array.isArray(tabs))e:for(var set of document.querySelectorAll(".tabbed-set")){var labels=set.querySelector(".tabbed-labels");for(var tab of tabs)for(var label of labels.getElementsByTagName("label"))if(label.innerText.trim()===tab){var input=document.getElementById(label.htmlFor);input.checked=!0;continue e}}</script>
1511
1512
1513<script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script>
1513
1514        </div>
1515        
1516      </main>
1517      
1518        <footer class="md-footer">
1519  
1520    
1521      
1522      <nav class="md-footer__inner md-grid" aria-label="Footer" >
1523        
1524        
1525          
1526          <a href="quick_start/" class="md-footer__link md-footer__link--next" aria-label="Next: Quick Start">
1527            <div class="md-footer__title">
1528              <span class="md-footer__direction">
1529                Next
1530              </span>
1531              <div class="md-ellipsis">
1532                Quick Start
1533              </div>
1534            </div>
1535            <div class="md-footer__button md-icon">
1536              
1537              <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M4 11v2h12l-5.5 5.5 1.42 1.42L19.84 12l-7.92-7.92L10.5 5.5 16 11z"/></svg>
1538            </div>
1539          </a>
1540        
1541      </nav>
1542    
1543  
1544  <div class="md-footer-meta md-typeset">
1545    <div class="md-footer-meta__inner md-grid">
1546      <div class="md-copyright">
1547  
1548    <div class="md-copyright__highlight">
1549      Copyright &copy; 2025 Google
1550    </div>
1551  
1552  
1553    Made with
1554    <a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener">
1555      Material for MkDocs
1556    </a>
1557  
1558</div>
1559      
1560        
1561<div class="md-social">
1562  
1563    
1564    
1565    
1566    
1567      
1568      
1569    
1570    <a href="https://github.com/google/flatbuffers" target="_blank" rel="noopener" title="github.com" class="md-social__link">
1571      <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>
1572    </a>
1573  
1574    
1575    
1576    
1577    
1578      
1579      
1580    
1581    <a href="https:///discord.gg/6qgKs3R" target="_blank" rel="noopener" title="" class="md-social__link">
1582      <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 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="M492.5 69.8c-.2-.3-.4-.6-.8-.7-38.1-17.5-78.4-30-119.7-37.1-.4-.1-.8 0-1.1.1s-.6.4-.8.8c-5.5 9.9-10.5 20.2-14.9 30.6-44.6-6.8-89.9-6.8-134.4 0-4.5-10.5-9.5-20.7-15.1-30.6-.2-.3-.5-.6-.8-.8s-.7-.2-1.1-.2C162.5 39 122.2 51.5 84.1 69c-.3.1-.6.4-.8.7C7.1 183.5-13.8 294.6-3.6 404.2c0 .3.1.5.2.8s.3.4.5.6c44.4 32.9 94 58 146.8 74.2.4.1.8.1 1.1 0s.7-.4.9-.7c11.3-15.4 21.4-31.8 30-48.8.1-.2.2-.5.2-.8s0-.5-.1-.8-.2-.5-.4-.6-.4-.3-.7-.4c-15.8-6.1-31.2-13.4-45.9-21.9-.3-.2-.5-.4-.7-.6s-.3-.6-.3-.9 0-.6.2-.9.3-.5.6-.7c3.1-2.3 6.2-4.7 9.1-7.1.3-.2.6-.4.9-.4s.7 0 1 .1c96.2 43.9 200.4 43.9 295.5 0 .3-.1.7-.2 1-.2s.7.2.9.4c2.9 2.4 6 4.9 9.1 7.2.2.2.4.4.6.7s.2.6.2.9-.1.6-.3.9-.4.5-.6.6c-14.7 8.6-30 15.9-45.9 21.8-.2.1-.5.2-.7.4s-.3.4-.4.7-.1.5-.1.8.1.5.2.8c8.8 17 18.8 33.3 30 48.8.2.3.6.6.9.7s.8.1 1.1 0c52.9-16.2 102.6-41.3 147.1-74.2.2-.2.4-.4.5-.6s.2-.5.2-.8c12.3-126.8-20.5-236.9-86.9-334.5zm-302 267.7c-29 0-52.8-26.6-52.8-59.2s23.4-59.2 52.8-59.2c29.7 0 53.3 26.8 52.8 59.2 0 32.7-23.4 59.2-52.8 59.2m195.4 0c-29 0-52.8-26.6-52.8-59.2s23.4-59.2 52.8-59.2c29.7 0 53.3 26.8 52.8 59.2 0 32.7-23.2 59.2-52.8 59.2"/></svg>
1583    </a>
1584  
1585    
1586    
1587    
1588    
1589      
1590      
1591    
1592    <a href="https://twitter.com/dbaileychess" target="_blank" rel="noopener" title="twitter.com" class="md-social__link">
1593      <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="M357.2 48h70.6L273.6 224.2 455 464H313L201.7 318.6 74.5 464H3.8l164.9-188.5L-5.2 48h145.6l100.5 132.9zm-24.8 373.8h39.1L119.1 88h-42z"/></svg>
1594    </a>
1595  
1596</div>
1597      
1598    </div>
1599  </div>
1600</footer>
1601      
1602    </div>
1603    <div class="md-dialog" data-md-component="dialog">
1604      <div class="md-dialog__inner md-typeset"></div>
1605    </div>
1606    
1607    
1608    
1609      
1610      
1611      
1611<script id="__config" type="application/json">{"annotate": null, "base": ".", "features": ["content.code.annotate", "content.tabs.link", "navigation.expand", "navigation.footer", "header.autohide", "content.action.edit"], "search": "assets/javascripts/workers/search.2c215733.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>
1611
1612    
1613    
1614      
1614<script src="assets/javascripts/bundle.79ae519e.min.js"></script>
1614
1615      
1616    
1617  </body>
1618</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.