PageSourceSearch

https://opensource.google/about

html opensource.google collected 2026-10-01 08:26:48 UTC 58,495 bytes, 2,295 lines download raw bytes

1
2
3
4
5
6
7
8
9
10<!doctype html>
11<html 
12      lang="en"
13      dir="ltr">
14  <head>
15    <meta name="google-signin-client-id" content="157101835696-ooapojlodmuabs2do2vuhhnf90bccmoi.apps.googleusercontent.com"><meta name="google-signin-scope"
16          content="profile email https://www.googleapis.com/auth/developerprofiles https://www.googleapis.com/auth/developerprofiles.award https://www.googleapis.com/auth/devprofiles.full_control.firstparty"><meta property="og:site_name" content="Google Open Source">
17    <meta property="og:type" content="website"><meta name="theme-color" content="#12b5cb"><meta charset="utf-8">
18    <meta content="IE=Edge" http-equiv="X-UA-Compatible">
19    <meta name="viewport" content="width=device-width, initial-scale=1">
20    
21
22    <link rel="manifest" href="/_pwa/opensource/manifest.json"
23          crossorigin="use-credentials">
24    <link rel="preconnect" href="//www.gstatic.com" crossorigin>
25    <link rel="preconnect" href="//fonts.googleapis.com" crossorigin>
26    <link rel="preconnect" href="//www.google-analytics.com" crossorigin><link rel="stylesheet" href="//fonts.googleapis.com/css?family=Google+Sans:400,500,700|Roboto:400,400italic,500,500italic,700,700italic|Roboto+Mono:400,500,700&display=swap">
27      <link rel="stylesheet"
28            href="//fonts.googleapis.com/css2?family=Material+Icons&family=Material+Symbols+Outlined&display=block"><link rel="stylesheet" href="https://www.gstatic.com/devrel-devsite/prod/vfdb441d2e08dbd9d3e48d8cd72b242388a87bcf7626bf5fb9df50c2bdd4a70fd/opensource/css/app.css">
29      <link rel="shortcut icon" href="https://www.gstatic.com/devrel-devsite/prod/vfdb441d2e08dbd9d3e48d8cd72b242388a87bcf7626bf5fb9df50c2bdd4a70fd/opensource/images/favicon.png">
30    <link rel="apple-touch-icon" href="https://www.gstatic.com/devrel-devsite/prod/vfdb441d2e08dbd9d3e48d8cd72b242388a87bcf7626bf5fb9df50c2bdd4a70fd/opensource/images/touchicon-180.png"><link rel="canonical" href="https://opensource.google/about"><link rel="search" type="application/opensearchdescription+xml"
31            title="Google Open Source" href="https://opensource.google/s/opensearch.xml">
32      <link rel="alternate" hreflang="en"
33          href="https://opensource.google/about" /><link rel="alternate" hreflang="x-default" href="https://opensource.google/about" /><link rel="alternate" hreflang="ar"
34          href="https://opensource.google/about?hl=ar" /><link rel="alternate" hreflang="zh-Hans"
35          href="https://opensource.google/about?hl=zh-cn" /><link rel="alternate" hreflang="id"
36          href="https://opensource.google/about?hl=id" /><link rel="alternate" hreflang="it"
37          href="https://opensource.google/about?hl=it" /><link rel="alternate" hreflang="ja"
38          href="https://opensource.google/about?hl=ja" /><link rel="alternate" hreflang="ko"
39          href="https://opensource.google/about?hl=ko" /><link rel="alternate" hreflang="pt-BR"
40          href="https://opensource.google/about?hl=pt-br" /><link rel="alternate" hreflang="pt"
41          href="https://opensource.google/about?hl=pt" /><link rel="alternate" hreflang="es"
42          href="https://opensource.google/about?hl=es" /><link rel="alternate" hreflang="es-419"
43          href="https://opensource.google/about?hl=es-419" /><link rel="alternate" hreflang="tr"
44          href="https://opensource.google/about?hl=tr" /><title>About &nbsp;|&nbsp; Google Open Source</title>
45
46<meta property="og:title" content="About &nbsp;|&nbsp; Google Open Source"><meta property="og:url" content="https://opensource.google/about"><meta property="og:locale" content="en">
46<script type="application/ld+json">
47  {
48    "@context": "https://schema.org",
49    "@type": "Article",
50    
51    "headline": "About"
52  }
53</script>
53
54    </head>
55  <body class="color-scheme--light"
56        template="landing"
57        theme="cyan"
58        type="article"
59        
60        
61        
62        layout="full"
63        
64        
65        
66        
67        
68        
69        pending>
70  
71    <devsite-progress type="indeterminate" id="app-progress"></devsite-progress>
72  
73  
74    <a href="#main-content" class="skip-link button">
75      
76      Skip to main content
77    </a>
78    <section class="devsite-wrapper">
79      <devsite-cookie-notification-bar></devsite-cookie-notification-bar>
80        <devsite-header role="banner">
81  
82    
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104<div class="devsite-header--inner" data-nosnippet>
105  <div class="devsite-top-logo-row-wrapper-wrapper">
106    <div class="devsite-top-logo-row-wrapper">
107      <div class="devsite-top-logo-row">
108        <button type="button" id="devsite-hamburger-menu"
109          class="devsite-header-icon-button button-flat material-icons gc-analytics-event"
110          data-category="Site-Wide Custom Events"
111          data-label="Navigation menu button"
112          visually-hidden
113          aria-label="Open menu">
114        </button>
115        
116<div class="devsite-product-name-wrapper">
117
118  <a href="/" class="devsite-site-logo-link gc-analytics-event"
119   data-category="Site-Wide Custom Events" data-label="Site logo" track-type="globalNav"
120   track-name="googleOpenSource" track-metadata-position="nav"
121   track-metadata-eventDetail="nav">
122  
123  <picture>
124    
125    <img src="https://www.gstatic.com/devrel-devsite/prod/vfdb441d2e08dbd9d3e48d8cd72b242388a87bcf7626bf5fb9df50c2bdd4a70fd/opensource/images/lockup.svg" class="devsite-site-logo" alt="Google Open Source">
126  </picture>
127  
128</a>
129
130
131
132</div>
133        <div class="devsite-top-logo-row-middle">
134          <div class="devsite-header-upper-tabs">
135            
136              
137              
138  <devsite-tabs class="upper-tabs">
139
140    <nav class="devsite-tabs-wrapper" aria-label="Upper tabs">
141      
142        
143          <tab  >
144            
145    <a href="https://opensource.google/events"
146    class="devsite-tabs-content gc-analytics-event "
147      track-metadata-eventdetail="https://opensource.google/events"
148    
149       track-type="nav"
150       track-metadata-position="nav - events"
151       track-metadata-module="primary nav"
152       
153       
154         
155           data-category="Site-Wide Custom Events"
156         
157           data-label="Tab: Events"
158         
159           track-name="events"
160         
161       >
162    Events
163  
164    </a>
165    
166  
167          </tab>
168        
169      
170        
171          <tab  >
172            
173    <a href="https://opensource.google/projects"
174    class="devsite-tabs-content gc-analytics-event "
175      track-metadata-eventdetail="https://opensource.google/projects"
176    
177       track-type="nav"
178       track-metadata-position="nav - projects"
179       track-metadata-module="primary nav"
180       
181       
182         
183           data-category="Site-Wide Custom Events"
184         
185           data-label="Tab: Projects"
186         
187           track-name="projects"
188         
189       >
190    Projects
191  
192    </a>
193    
194  
195          </tab>
196        
197      
198        
199          <tab class="devsite-dropdown
200    
201    
202    
203    ">
204  
205    <a href="https://opensource.google/programs-and-services"
206    class="devsite-tabs-content gc-analytics-event "
207      track-metadata-eventdetail="https://opensource.google/programs-and-services"
208    
209       track-type="nav"
210       track-metadata-position="nav - programs and services"
211       track-metadata-module="primary nav"
212       
213       
214         
215           data-category="Site-Wide Custom Events"
216         
217           data-label="Tab: Programs and services"
218         
219           track-name="programs and services"
220         
221       >
222    Programs and services
223  
224    </a>
225    
226      <button
227         aria-haspopup="menu"
228         aria-expanded="false"
229         aria-label="Dropdown menu for Programs and services"
230         track-type="nav"
231         track-metadata-eventdetail="https://opensource.google/programs-and-services"
232         track-metadata-position="nav - programs and services"
233         track-metadata-module="primary nav"
234         
235          
236            data-category="Site-Wide Custom Events"
237          
238            data-label="Tab: Programs and services"
239          
240            track-name="programs and services"
241          
242        
243         class="devsite-tabs-dropdown-toggle devsite-icon devsite-icon-arrow-drop-down"></button>
244    
245  
246  <div class="devsite-tabs-dropdown" role="menu" aria-label="submenu" hidden>
247    <div class="devsite-tabs-dropdown-content">
248      
249      
250        <div class="devsite-tabs-dropdown-column
251                    ">
252          
253            <ul class="devsite-tabs-dropdown-section
254                       ">
255              
256              
257              
258                <li class="devsite-nav-item">
259                  <a href="https://opensource.google/organizations-we-support"
260                    
261                     track-type="nav"
262                     track-metadata-eventdetail="https://opensource.google/organizations-we-support"
263                     track-metadata-position="nav - programs and services"
264                     track-metadata-module="tertiary nav"
265                     
266                     tooltip
267                  >
268                    
269                    <div class="devsite-nav-item-title">
270                      Organizations we support
271                    </div>
272                    
273                  </a>
274                </li>
275              
276            </ul>
277          
278        </div>
279      
280    </div>
281  </div>
282</tab>
283        
284      
285        
286          <tab  >
287            
288    <a href="https://opensource.google/documentation/reference"
289    class="devsite-tabs-content gc-analytics-event "
290      track-metadata-eventdetail="https://opensource.google/documentation/reference"
291    
292       track-type="nav"
293       track-metadata-position="nav - documentation"
294       track-metadata-module="primary nav"
295       
296       
297         
298           data-category="Site-Wide Custom Events"
299         
300           data-label="Tab: Documentation"
301         
302           track-name="documentation"
303         
304       >
305    Documentation
306  
307    </a>
308    
309  
310          </tab>
311        
312      
313        
314          <tab  class="devsite-active">
315            
316    <a href="https://opensource.google/about"
317    class="devsite-tabs-content gc-analytics-event "
318      track-metadata-eventdetail="https://opensource.google/about"
319    
320       track-type="nav"
321       track-metadata-position="nav - about"
322       track-metadata-module="primary nav"
323       aria-label="About, selected" 
324       
325         
326           data-category="Site-Wide Custom Events"
327         
328           data-label="Tab: About"
329         
330           track-name="about"
331         
332       >
333    About
334  
335    </a>
336    
337  
338          </tab>
339        
340      
341        
342          <tab  >
343            
344    <a href="//opensource.googleblog.com"
345    class="devsite-tabs-content gc-analytics-event "
346      track-metadata-eventdetail="//opensource.googleblog.com"
347    
348       track-type="nav"
349       track-metadata-position="nav - blog"
350       track-metadata-module="primary nav"
351       
352       
353         
354           data-category="Site-Wide Custom Events"
355         
356           data-label="Tab: Blog"
357         
358           track-name="blog"
359         
360       >
361    Blog
362  
363    </a>
364    
365  
366          </tab>
367        
368      
369    </nav>
370
371  </devsite-tabs>
372
373            
374           </div>
375          
376<devsite-search
377    enable-signin
378    enable-search
379    enable-suggestions
380      enable-query-completion
381    
382    enable-search-summaries
383    project-name="Google Open Source"
384    tenant-name="Google Open Source"
385    
386    
387    
388    
389    
390    >
391  <form class="devsite-search-form" action="https://opensource.google/s/results" method="GET">
392    <div class="devsite-search-container">
393      <button type="button"
394              search-open
395              class="devsite-search-button devsite-header-icon-button button-flat material-icons"
396              
397              aria-label="Open search"></button>
398      <div class="devsite-searchbox">
399        <input
400          aria-activedescendant=""
401          aria-autocomplete="list"
402          
403          aria-label="Search"
404          aria-expanded="false"
405          aria-haspopup="listbox"
406          autocomplete="off"
407          class="devsite-search-field devsite-search-query"
408          name="q"
409          
410          placeholder="Search"
411          role="combobox"
412          type="text"
413          value=""
414          >
415          <div class="devsite-search-image material-icons" aria-hidden="true">
416            
417              <svg class="devsite-search-ai-image" width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
418                  <g clip-path="url(#clip0_6641_386)">
419                    <path d="M19.6 21L13.3 14.7C12.8 15.1 12.225 15.4167 11.575 15.65C10.925 15.8833 10.2333 16 9.5 16C7.68333 16 6.14167 15.375 4.875 14.125C3.625 12.8583 3 11.3167 3 9.5C3 7.68333 3.625 6.15 4.875 4.9C6.14167 3.63333 7.68333 3 9.5 3C10.0167 3 10.5167 3.05833 11 3.175C11.4833 3.275 11.9417 3.43333 12.375 3.65L10.825 5.2C10.6083 5.13333 10.3917 5.08333 10.175 5.05C9.95833 5.01667 9.73333 5 9.5 5C8.25 5 7.18333 5.44167 6.3 6.325C5.43333 7.19167 5 8.25 5 9.5C5 10.75 5.43333 11.8167 6.3 12.7C7.18333 13.5667 8.25 14 9.5 14C10.6667 14 11.6667 13.625 12.5 12.875C13.35 12.1083 13.8417 11.15 13.975 10H15.975C15.925 10.6333 15.7833 11.2333 15.55 11.8C15.3333 12.3667 15.05 12.8667 14.7 13.3L21 19.6L19.6 21ZM17.5 12C17.5 10.4667 16.9667 9.16667 15.9 8.1C14.8333 7.03333 13.5333 6.5 12 6.5C13.5333 6.5 14.8333 5.96667 15.9 4.9C16.9667 3.83333 17.5 2.53333 17.5 0.999999C17.5 2.53333 18.0333 3.83333 19.1 4.9C20.1667 5.96667 21.4667 6.5 23 6.5C21.4667 6.5 20.1667 7.03333 19.1 8.1C18.0333 9.16667 17.5 10.4667 17.5 12Z" fill="#5F6368"/>
420                  </g>
421                <defs>
422                <clipPath id="clip0_6641_386">
423                <rect width="24" height="24" fill="white"/>
424                </clipPath>
425                </defs>
426              </svg>
427            
428          </div>
429          <div class="devsite-search-shortcut-icon-container" aria-hidden="true">
430            <kbd class="devsite-search-shortcut-icon">/</kbd>
431          </div>
432      </div>
433    </div>
434  </form>
435  <button type="button"
436          search-close
437          class="devsite-search-button devsite-header-icon-button button-flat material-icons"
438          
439          aria-label="Close search"></button>
440</devsite-search>
441
442        </div>
443
444        
445
446          
447
448          
449
450          
451
452          
453
454          
455<devsite-language-selector>
456  <ul role="presentation">
457    
458    
459    <li role="presentation">
460      <a role="menuitem" lang="en"
461        >English</a>
462    </li>
463    
464    <li role="presentation">
465      <a role="menuitem" lang="es"
466        >Español</a>
467    </li>
468    
469    <li role="presentation">
470      <a role="menuitem" lang="es_419"
471        >Español – América Latina</a>
472    </li>
473    
474    <li role="presentation">
475      <a role="menuitem" lang="id"
476        >Indonesia</a>
477    </li>
478    
479    <li role="presentation">
480      <a role="menuitem" lang="it"
481        >Italiano</a>
482    </li>
483    
484    <li role="presentation">
485      <a role="menuitem" lang="pt"
486        >Português</a>
487    </li>
488    
489    <li role="presentation">
490      <a role="menuitem" lang="pt_br"
491        >Português – Brasil</a>
492    </li>
493    
494    <li role="presentation">
495      <a role="menuitem" lang="tr"
496        >Türkçe</a>
497    </li>
498    
499    <li role="presentation">
500      <a role="menuitem" lang="ar"
501        >العربيّة</a>
502    </li>
503    
504    <li role="presentation">
505      <a role="menuitem" lang="zh_cn"
506        >中文 – 简体</a>
507    </li>
508    
509    <li role="presentation">
510      <a role="menuitem" lang="ja"
511        >日本語</a>
512    </li>
513    
514    <li role="presentation">
515      <a role="menuitem" lang="ko"
516        >한국어</a>
517    </li>
518    
519  </ul>
520</devsite-language-selector>
521
522
523          
524
525        
526
527        
528          <devsite-user 
529                        
530                        
531                          enable-profiles
532                        
533                        
534                        id="devsite-user">
535            
536              
537              <span class="button devsite-top-button" aria-hidden="true" visually-hidden>Sign in</span>
538            
539          </devsite-user>
540        
541        
542        
543      </div>
544    </div>
545  </div>
546
547
548
549  <div class="devsite-collapsible-section
550    
551      devsite-header-no-lower-tabs
552    ">
553    <div class="devsite-header-background">
554      
555      
556    </div>
557  </div>
558
559</div>
560
561
562
563  
564
565  
566</devsite-header>
567        <devsite-book-nav scrollbars hidden>
568          
569            
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591<div class="devsite-book-nav-filter"
592     hidden>
593  <span class="filter-list-icon material-icons" aria-hidden="true"></span>
594  <input type="text"
595         placeholder="Filter"
596         
597         aria-label="Type to filter"
598         role="searchbox">
599  
600  <span class="filter-clear-button hidden"
601        data-title="Clear filter"
602        aria-label="Clear filter"
603        role="button"
604        tabindex="0"></span>
605</div>
606
607<nav class="devsite-book-nav devsite-nav nocontent" data-nosnippet
608     aria-label="Side menu">
609  <div class="devsite-mobile-header">
610    <button type="button"
611            id="devsite-close-nav"
612            class="devsite-header-icon-button button-flat material-icons gc-analytics-event"
613            data-category="Site-Wide Custom Events"
614            data-label="Close navigation"
615            aria-label="Close navigation">
616    </button>
617    <div class="devsite-product-name-wrapper">
618
619  <a href="/" class="devsite-site-logo-link gc-analytics-event"
620   data-category="Site-Wide Custom Events" data-label="Site logo" track-type="globalNav"
621   track-name="googleOpenSource" track-metadata-position="nav"
622   track-metadata-eventDetail="nav">
623  
624  <picture>
625    
626    <img src="https://www.gstatic.com/devrel-devsite/prod/vfdb441d2e08dbd9d3e48d8cd72b242388a87bcf7626bf5fb9df50c2bdd4a70fd/opensource/images/lockup.svg" class="devsite-site-logo" alt="Google Open Source">
627  </picture>
628  
629</a>
630
631
632</div>
633  </div>
634
635  <div class="devsite-book-nav-wrapper">
636    <div class="devsite-mobile-nav-top">
637      
638        <ul class="devsite-nav-list">
639          
640            <li class="devsite-nav-item">
641              
642  
643  <a href="/events"
644    
645       class="devsite-nav-title gc-analytics-event
646              
647              "
648    
649
650    
651      
652        data-category="Site-Wide Custom Events"
653      
654        data-label="Tab: Events"
655      
656        track-name="events"
657      
658    
659     data-category="Site-Wide Custom Events"
660     data-label="Responsive Tab: Events"
661     track-type="globalNav"
662     track-metadata-eventDetail="globalMenu"
663     track-metadata-position="nav">
664  
665    <span class="devsite-nav-text" tooltip >
666      Events
667   </span>
668    
669  
670  </a>
671  
672
673  
674              
675            </li>
676          
677            <li class="devsite-nav-item">
678              
679  
680  <a href="/projects"
681    
682       class="devsite-nav-title gc-analytics-event
683              
684              "
685    
686
687    
688      
689        data-category="Site-Wide Custom Events"
690      
691        data-label="Tab: Projects"
692      
693        track-name="projects"
694      
695    
696     data-category="Site-Wide Custom Events"
697     data-label="Responsive Tab: Projects"
698     track-type="globalNav"
699     track-metadata-eventDetail="globalMenu"
700     track-metadata-position="nav">
701  
702    <span class="devsite-nav-text" tooltip >
703      Projects
704   </span>
705    
706  
707  </a>
708  
709
710  
711              
712            </li>
713          
714            <li class="devsite-nav-item">
715              
716  
717  <a href="/programs-and-services"
718    
719       class="devsite-nav-title gc-analytics-event
720              
721              "
722    
723
724    
725      
726        data-category="Site-Wide Custom Events"
727      
728        data-label="Tab: Programs and services"
729      
730        track-name="programs and services"
731      
732    
733     data-category="Site-Wide Custom Events"
734     data-label="Responsive Tab: Programs and services"
735     track-type="globalNav"
736     track-metadata-eventDetail="globalMenu"
737     track-metadata-position="nav">
738  
739    <span class="devsite-nav-text" tooltip >
740      Programs and services
741   </span>
742    
743  
744  </a>
745  
746
747  
748    <ul class="devsite-nav-responsive-tabs devsite-nav-has-menu
749               ">
750      
751<li class="devsite-nav-item">
752
753  
754  <span
755    
756       class="devsite-nav-title"
757       tooltip
758    
759    
760      
761        data-category="Site-Wide Custom Events"
762      
763        data-label="Tab: Programs and services"
764      
765        track-name="programs and services"
766      
767    >
768  
769    <span class="devsite-nav-text" tooltip menu="Programs and services">
770      More
771   </span>
772    
773    <span class="devsite-nav-icon material-icons" data-icon="forward"
774          menu="Programs and services">
775    </span>
776    
777  
778  </span>
779  
780
781</li>
782
783    </ul>
784  
785              
786            </li>
787          
788            <li class="devsite-nav-item">
789              
790  
791  <a href="/documentation/reference"
792    
793       class="devsite-nav-title gc-analytics-event
794              
795              "
796    
797
798    
799      
800        data-category="Site-Wide Custom Events"
801      
802        data-label="Tab: Documentation"
803      
804        track-name="documentation"
805      
806    
807     data-category="Site-Wide Custom Events"
808     data-label="Responsive Tab: Documentation"
809     track-type="globalNav"
810     track-metadata-eventDetail="globalMenu"
811     track-metadata-position="nav">
812  
813    <span class="devsite-nav-text" tooltip >
814      Documentation
815   </span>
816    
817  
818  </a>
819  
820
821  
822              
823            </li>
824          
825            <li class="devsite-nav-item">
826              
827  
828  <a href="/about"
829    
830       class="devsite-nav-title gc-analytics-event
831              
832              devsite-nav-active"
833    
834
835    
836      
837        data-category="Site-Wide Custom Events"
838      
839        data-label="Tab: About"
840      
841        track-name="about"
842      
843    
844     data-category="Site-Wide Custom Events"
845     data-label="Responsive Tab: About"
846     track-type="globalNav"
847     track-metadata-eventDetail="globalMenu"
848     track-metadata-position="nav">
849  
850    <span class="devsite-nav-text" tooltip >
851      About
852   </span>
853    
854  
855  </a>
856  
857
858  
859              
860            </li>
861          
862            <li class="devsite-nav-item">
863              
864  
865  <a href="//opensource.googleblog.com"
866    
867       class="devsite-nav-title gc-analytics-event
868              
869              "
870    
871
872    
873      
874        data-category="Site-Wide Custom Events"
875      
876        data-label="Tab: Blog"
877      
878        track-name="blog"
879      
880    
881     data-category="Site-Wide Custom Events"
882     data-label="Responsive Tab: Blog"
883     track-type="globalNav"
884     track-metadata-eventDetail="globalMenu"
885     track-metadata-position="nav">
886  
887    <span class="devsite-nav-text" tooltip >
888      Blog
889   </span>
890    
891  
892  </a>
893  
894
895  
896              
897            </li>
898          
899          
900          
901        </ul>
902      
903    </div>
904    
905      <div class="devsite-mobile-nav-bottom">
906        
907        
908          
909    
910  
911    
912  
913    
914      
915      <ul class="devsite-nav-list" menu="Programs and services"
916          aria-label="Side menu" hidden>
917        
918          
919            
920            
921              
922<li class="devsite-nav-item">
923
924  
925  <a href="/organizations-we-support"
926    
927       class="devsite-nav-title gc-analytics-event
928              
929              "
930    
931
932    
933     data-category="Site-Wide Custom Events"
934     data-label="Responsive Tab: Organizations we support"
935     track-type="navMenu"
936     track-metadata-eventDetail="globalMenu"
937     track-metadata-position="nav">
938  
939    <span class="devsite-nav-text" tooltip >
940      Organizations we support
941   </span>
942    
943  
944  </a>
945  
946
947</li>
948
949            
950          
951        
952      </ul>
953    
954  
955    
956  
957    
958  
959    
960  
961        
962        
963          
964    
965  
966        
967      </div>
968    
969  </div>
970</nav>
971          
972        </devsite-book-nav>
973      
974      <section id="gc-wrapper">
975        <main role="main" id="main-content" class="devsite-main-content"
976            
977              
978              
979            >
980          <div class="devsite-sidebar">
981            <div class="devsite-sidebar-content">
982                
983                <devsite-toc class="devsite-nav"
984                            role="navigation"
985                            aria-label="On this page"
986                            depth="2"
987                            scrollbars
988                            data-nosnippet
989                  disabled></devsite-toc>
990                <devsite-recommendations-sidebar class="nocontent devsite-nav" data-nosnippet>
991                </devsite-recommendations-sidebar>
992            </div>
993          </div>
994          <devsite-content>
995            
996              
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007<article class="devsite-article"><style>
1008      /* Styles inlined from /styles/styles.css */
1009.hero .hero-bold {
1010  font-weight: 500;
1011}
1012
1013.benefits-row [class^=devsite-][icon-position=top] > div {
1014  margin: 0 auto;
1015}
1016
1017.projects-description p,
1018.featured-events-description p,
1019.featured-blogs-description p,
1020.os-project-hero p,
1021.os-desc-left p,
1022.os-hero p {
1023  max-width: 708px;
1024}
1025
1026.end-padding-medium {
1027  padding-bottom: 64px;
1028  padding-top: 0;
1029}
1030
1031.os-subheader-46.devsite-landing-row h2 {
1032  font-size: 46px;
1033  line-height: 40px;
1034}
1035
1036.os-project-hero[class^=devsite-] [class^=devsite-] [class^=devsite-] h3 {
1037  font: 400 56px / 68px Google Sans;
1038  margin-bottom: 0;
1039}
1040
1041.os-project-hero [class^=devsite-][size=xlarge],
1042.os-project-hero [class^=devsite-][size=xlarge] img {
1043  height: 60px;
1044  width: 221px;
1045}
1046
1047.os-no-padding-b {
1048  padding-bottom: 0;
1049}
1050
1051.os-project-hero .button {
1052  font: 700 16px / 24px Roboto;
1053}
1054
1055.os-project-hero.no-padding {
1056  padding-bottom: 0;
1057  padding-top: 0
1058}
1059
1060.os-project-columns-top .devsite-landing-row-group {
1061  grid: auto-flow / 3fr 1fr;
1062}
1063
1064
1065.os-project-columns-bottom .devsite-landing-row-group {
1066  grid: auto-flow / repeat(3, 1fr);
1067}
1068
1069.os-project-columns .os-divider h3 {
1070  padding-top: 40px;
1071}
1072
1073.os-project-columns .button {
1074  padding: 0;
1075}
1076
1077.os-project-columns-bottom {
1078  padding: 16px 24px;
1079}
1080
1081.os-divider {
1082  border-top: 1px solid #9aa0a6;
1083}
1084
1085.os-project-source {
1086  border-radius: 8px;
1087}
1088
1089.os-project-source [class^=devsite-] a:first-child {
1090    margin-left: 8px;
1091}
1092
1093.os-project-source .devsite-landing-row-item-list-item-buttons a {
1094  display: block;
1095  text-align: start;
1096}
1097
1098.os-project-source h4 {
1099  border-bottom: 1px solid #9aa0a6;
1100  font: 400 18px / 32px Google Sans;
1101  margin-top: 8px;
1102  padding-top: 8px;
1103}
1104
1105.os-all-projects .os-margin-bottom-zero {
1106  margin-bottom: 0;
1107}
1108
1109.os-margin-top-zero {
1110  margin-top:0;
1111}
1112
1113/* Override core 'row-reverse' to left-align buttons in dynamic content cards. */
1114.os-featured-blogs .devsite-card-buttons {
1115  flex-direction: row;
1116}
1117
1118
1119[dynamic-card-style="card"] ul li, .os-project-card span:not(a) {
1120  border: 1px solid;
1121  border-radius: 5px;
1122  padding: 6px 8px 4px;
1123  background: none;
1124}
1125
1126
1127.os-project-hero.os-android-bg {
1128  margin-bottom: 96px;
1129  padding-bottom: 0;
1130  padding-top: 0;
1131}
1132
1133.os-project-hero.bg-yellow[background] {
1134  background: #fff7dd;
1135}
1136
1137.os-project-hero.bg-green-warm[background] {
1138  background: #dfffea;
1139}
1140
1141.os-project-hero.bg-blue-cool[background]{
1142  background: #e1eaff;
1143}
1144
1145.os-project-hero.bg-red-warm[background]{
1146  background: #ffdfee;
1147}
1148
1149
1150
1151      </style>
1152  
1153  
1154  
1155  
1156  
1157
1158  <div class="devsite-article-meta nocontent" role="navigation" data-nosnippet>
1159    
1160    
1161    <ul class="devsite-breadcrumb-list"
1162  
1163    aria-label="Breadcrumb">
1164  
1165  <li class="devsite-breadcrumb-item
1166             ">
1167    
1168    
1169    
1170      
1171        
1172  <a href="https://opensource.google/"
1173      
1174        class="devsite-breadcrumb-link gc-analytics-event"
1175      
1176        data-category="Site-Wide Custom Events"
1177      
1178        data-label="Breadcrumbs"
1179      
1180        data-value="1"
1181      
1182        track-type="globalNav"
1183      
1184        track-name="breadcrumb"
1185      
1186        track-metadata-position="1"
1187      
1188        track-metadata-eventdetail="Google Open Source"
1189      
1190    >
1191    
1192          Google Open Source
1193        
1194  </a>
1195  
1196      
1197    
1198  </li>
1199  
1200  <li class="devsite-breadcrumb-item
1201             ">
1202    
1203      
1204      <div class="devsite-breadcrumb-guillemet material-icons" aria-hidden="true"></div>
1205    
1206    
1207    
1208      
1209        
1210  <a href="https://opensource.google/about"
1211      
1212        class="devsite-breadcrumb-link gc-analytics-event"
1213      
1214        data-category="Site-Wide Custom Events"
1215      
1216        data-label="Breadcrumbs"
1217      
1218        data-value="2"
1219      
1220        track-type="globalNav"
1221      
1222        track-name="breadcrumb"
1223      
1224        track-metadata-position="2"
1225      
1226        track-metadata-eventdetail=""
1227      
1228    >
1229    
1230          About
1231        
1232  </a>
1233  
1234      
1235    
1236  </li>
1237  
1238</ul>
1239    
1240  </div>
1241  <devsite-actions hidden data-nosnippet><devsite-feature-tooltip
1242      ack-key="AckCollectionsBookmarkTooltipDismiss"
1243      analytics-category="Site-Wide Custom Events"
1244      analytics-action-show="Callout Profile displayed"
1245      analytics-action-close="Callout Profile dismissed"
1246      analytics-label="Create Collection Callout"
1247      class="devsite-page-bookmark-tooltip nocontent"
1248      data-nosnippet
1249      dismiss-button="true"
1250      id="devsite-collections-dropdown"
1251      
1252      dismiss-button-text="Dismiss"
1253
1254      
1255      close-button-text="Got it">
1256
1257    
1258    
1259      <devsite-bookmark></devsite-bookmark>
1260    
1261
1262    <span slot="popout-heading">
1263      
1264      Stay organized with collections
1265    </span>
1266    <span slot="popout-contents">
1267      
1268      Save and categorize content based on your preferences.
1269    </span>
1270  </devsite-feature-tooltip></devsite-actions>
1271  
1272    
1273  
1274
1275  <devsite-toc class="devsite-nav"
1276    depth="2"
1277    devsite-toc-embedded
1278    disabled>
1279  </devsite-toc>
1280  
1281    
1282  <div class="devsite-article-body clearfix
1283  ">
1284
1285  
1286    
1287  <section class="devsite-landing-row devsite-landing-row-1-up devsite-landing-row-67 devsite-landing-row-hero devsite-landing-row-no-image-background devsite-landing-row-padding-large hero os-custom-desc os-hero"
1288           
1289    background="grey"
1290  
1291           
1292           
1293    header-position="top"
1294  >
1295    <div class="devsite-landing-row-inner">
1296
1297    
1298      
1299
1300      
1301      
1302
1303      
1304
1305        <div class="devsite-landing-row-group">
1306        
1307          <div class="devsite-landing-row-item"
1308     
1309     
1310     
1311    description-position="bottom"
1312  >
1313
1314  
1315    
1316<div class="devsite-landing-row-item-media
1317            ">
1318  
1319    <figure class="devsite-landing-row-item-image">
1320  
1321    
1322  
1323  <picture>
1324    
1325    <img alt=""
1326         
1327         src="https://opensource.google/static/images/about/os-anim-about.gif"
1328         srcset="https://opensource.google/static/images/about/os-anim-about.gif"
1329         
1330         
1331         sizes="(max-width: 600px) 100vw, (max-width: 840px) 50vw, 464px"
1332         
1333         
1334         fetchpriority="high">
1335  </picture>
1336  
1337  
1338</figure>
1339  
1340</div>
1341
1342
1343    
1344    <div class="devsite-landing-row-item-description"
1345         >
1346
1347      
1348
1349      <div class="devsite-landing-row-item-body">
1350        
1351
1352        
1353    <h3 id="about-google-open-source"
1354        data-text="About Google Open Source"
1355        class="hide-from-toc no-link"
1356        tabindex="0">
1357      
1358    
1359        About Google Open Source
1360      
1361  
1362    </h3>
1363  
1364
1365        
1366          <div class="devsite-landing-row-item-description-content">
1367            Open source is at the heart of Google—it’s what we’re built on and at the core of everything we do.
1368          </div>
1369        
1370
1371        
1372
1373        
1374      </div>
1375    </div>
1376    
1377  
1378
1379</div>
1380        
1381        </div>
1382      
1383
1384    
1385    </div>
1386  </section>
1387
1388  <section class="devsite-landing-row devsite-landing-row-1-up devsite-landing-row-50 os-about-history os-custom-desc"
1389           
1390           
1391           
1392    header-position="top"
1393  >
1394    <div class="devsite-landing-row-inner">
1395
1396    
1397      
1398
1399      
1400      
1401
1402      
1403
1404        <div class="devsite-landing-row-group">
1405        
1406          <div class="devsite-landing-row-item"
1407     
1408     
1409     
1410    description-position="bottom"
1411  >
1412
1413  
1414    
1415<div class="devsite-landing-row-item-media
1416            
1417    devsite-landing-row-item-media-left
1418  ">
1419  
1420    <figure class="devsite-landing-row-item-image">
1421  
1422    
1423  
1424  <picture>
1425    
1426    <img alt=""
1427         
1428         src="https://opensource.google/static/images/about/OSPO-
1428about.png"
1429         srcset="https://opensource.google/static/images/about/OSPO-about_36.png 36w,https://opensource.google/static/images/about/OSPO-about_48.png 48w,https://opensource.google/static/images/about/OSPO-about_72.png 72w,https://opensource.google/static/images/about/OSPO-about_96.png 96w,https://opensource.google/static/images/about/OSPO-about_480.png 480w,https://opensource.google/static/images/about/OSPO-about_720.png 720w,https://opensource.google/static/images/about/OSPO-about_856.png 856w,https://opensource.google/static/images/about/OSPO-about_960.png 960w,https://opensource.google/static/images/about/OSPO-about_1440.png 1440w,https://opensource.google/static/images/about/OSPO-about_1920.png 1920w,https://opensource.google/static/images/about/OSPO-about_2880.png 2880w"
1430         
1431         
1432         sizes="(max-width: 600px) 100vw, (max-width: 840px) 50vw, 708px"
1433         
1434         loading="lazy"
1435         >
1436  </picture>
1437  
1438  
1439</figure>
1440  
1441</div>
1442
1443
1444    
1445    <div class="devsite-landing-row-item-description"
1446         >
1447
1448      
1449
1450      <div class="devsite-landing-row-item-body">
1451        
1452
1453        
1454    <h3 id="history-of-ospo"
1455        data-text="History of OSPO"
1456        class="hide-from-toc no-link"
1457        tabindex="0">
1458      
1459    
1460        History of OSPO
1461      
1462  
1463    </h3>
1464  
1465
1466        
1467          <div class="devsite-landing-row-item-description-content">
1468            The Google Open Source Programs Office dates back to 2004, making it one of the first OSPOs in the industry.
1469          </div>
1470        
1471
1472        
1473          <ul class="devsite-landing-row-item-list">
1474            
1475              <li class="devsite-landing-row-item-list-item">
1476  
1477
1478  <div class="devsite-landing-row-item-list-item-content"
1479       
1480    icon-position="left"
1481  >
1482
1483    
1484  
1485    
1486  <div class="devsite-landing-row-item-list-item-icon-container"
1487       
1488       
1489       
1490    size="small"
1491  >
1492  
1493    <picture>
1494      
1495      <img class="devsite-landing-row-item-list-item-icon"
1496           alt=""
1497           src="https://opensource.google/static/images/about/os-about-circle.svg"
1498           srcset="https://opensource.google/static/images/about/os-about-circle.svg"
1499           sizes="48px"
1500           loading="lazy"
1501           >
1502    </picture>
1503  
1504  </div>
1505  
1506  
1507
1508
1509    <div class="devsite-landing-row-item-list-item-description">
1510      
1511    <h4 id="making-open-source-more-open"
1512        data-text="Making open source more open"
1513        class=" no-link"
1514        tabindex="0">
1515      
1516    
1517        Making open source more open
1518      
1519  
1520    </h4>
1521  
1522
1523      
1524        <div class="devsite-landing-row-item-list-item-description-content">
1525          At first, OSPO focused on enabling Google to build on open source technologies and share Google-developed technology under open licenses. With the launch of Google Summer of Code in 2005, OSPO expanded to support open source mentorship and reduce barriers to open source participation. Today, OSPO runs multiple programs dedicated to improving the open source ecosystem as a whole, including the <a href="https://developers.google.com/season-of-docs">Season of Docs</a> program, multiple efforts dedicated to improving <a href="https://github.com/google/oss-fuzz#readme">open source security</a>, <a href="https://opensource.googleblog.com/2020/11/googles-initiative-for-more-inclusive.html">respectful language guidance</a>, code of conduct enforcement training, and more.
1526        </div>
1527      
1528
1529      
1530    </div>
1531  </div>
1532
1533  
1534</li>
1535            
1536              <li class="devsite-landing-row-item-list-item">
1537  
1538
1539  <div class="devsite-landing-row-item-list-item-content"
1540       
1541    icon-position="left"
1542  >
1543
1544    
1545  
1546    
1547  <div class="devsite-landing-row-item-list-item-icon-container"
1548       
1549       
1550       
1551    size="small"
1552  >
1553  
1554    <picture>
1555      
1556      <img class="devsite-landing-row-item-list-item-icon"
1557           alt=""
1558           src="https://opensource.google/static/images/about/os-about-triangle.svg"
1559           srcset="https://opensource.google/static/images/about/os-about-triangle.svg"
1560           sizes="48px"
1561           loading="lazy"
1562           >
1563    </picture>
1564  
1565  </div>
1566  
1567  
1568
1569
1570    <div class="devsite-landing-row-item-list-item-description">
1571      
1572    <h4 id="sharing-with-the-world"
1573        data-text="Sharing with the world"
1574        class=" no-link"
1575        tabindex="0">
1576      
1577    
1578        Sharing with the world
1579      
1580  
1581    </h4>
1582  
1583
1584      
1585        <div class="devsite-landing-row-item-list-item-description-content">
1586          A key part of OSPO's mission is helping Google-led projects thrive and grow. Some of Google’s most notable open source projects were released in 2008, including <a href="/projects/android">Android</a>—providing an operating system for phones internationally, Chromium—which our Chrome browser runs on, and Go—an efficie
1586nt programming language which <a href="https://opensource.googleblog.com/2021/04/actuating-google-production-how-googles-sre-team-uses-go.html">we build on internally</a>. Google <a href="https://www.cncf.io/blog/2018/11/05/beginners-guide-cncf-landscape/">partnered with the Linux Foundation</a> to create the Cloud Native Computing Foundation in 2018, which now hosts major projects such as Kubernetes. In 2022, Google donated IstioMesh to the CNCF and applied for Kubeflow to become an incubating project as well.
1587        </div>
1588      
1589
1590      
1591    </div>
1592  </div>
1593
1594  
1595</li>
1596            
1597              <li class="devsite-landing-row-item-list-item">
1598  
1599
1600  <div class="devsite-landing-row-item-list-item-content"
1601       
1602    icon-position="left"
1603  >
1604
1605    
1606  
1607    
1608  <div class="devsite-landing-row-item-list-item-icon-container"
1609       
1610       
1611       
1612    size="small"
1613  >
1614  
1615    <picture>
1616      
1617      <img class="devsite-landing-row-item-list-item-icon"
1618           alt=""
1619           src="https://opensource.google/static/images/about/os-about-square.svg"
1620           srcset="https://opensource.google/static/images/about/os-about-square.svg"
1621           sizes="48px"
1622           loading="lazy"
1623           >
1624    </picture>
1625  
1626  </div>
1627  
1628  
1629
1630
1631    <div class="devsite-landing-row-item-list-item-description">
1632      
1633    <h4 id="changing-as-open-source-changes"
1634        data-text="Changing as open source changes"
1635        class=" no-link"
1636        tabindex="0">
1637      
1638    
1639        Changing as open source changes
1640      
1641  
1642    </h4>
1643  
1644
1645      
1646        <div class="devsite-landing-row-item-list-item-description-content">
1647          Many things have changed in open source since Google’s OSPO began in 2004—but one thing that remains the same is Google’s commitment to supporting open source projects, communities, and maintainers across the entire open source ecosystem.
1648        </div>
1649      
1650
1651      
1652    </div>
1653  </div>
1654
1655  
1656</li>
1657            
1658          </ul>
1659        
1660
1661        
1662      </div>
1663    </div>
1664    
1665  
1666
1667</div>
1668        
1669        </div>
1670      
1671
1672    
1673    </div>
1674  </section>
1675
1676  <section class="devsite-landing-row devsite-landing-row-1-up devsite-landing-row-header-centered"
1677           
1678    background="grey"
1679  
1680           
1681           
1682    header-position="top"
1683  >
1684    <div class="devsite-landing-row-inner">
1685
1686    
1687      
1688      <header class="devsite-landing-row-header"
1689              >
1690
1691        
1692
1693        
1694        <div class="devsite-landing-row-header-text">
1695
1696          
1697    <h2 id="ospo-by-the-numbers"
1698        data-text="OSPO by the numbers"
1699        
1700        tabindex="0">
1701      
1702    
1703        OSPO by the numbers
1704      
1705  
1706    </h2>
1707  
1708
1709          
1710        </div>
1711        
1712
1713        
1714      </header>
1715      
1716
1717      
1718      
1719
1720      
1721
1722    
1723    </div>
1724  </section>
1725
1726  <section class="devsite-landing-row devsite-landing-row-1-up devsite-landing-row-100 devsite-landing-row-no-image-background"
1727           
1728           
1729           
1730    header-position="top"
1731  >
1732    <div class="devsite-landing-row-inner">
1733
1734    
1735      
1736
1737      
1738      
1739
1740      
1741
1742        <div class="devsite-landing-row-group">
1743        
1744          <div class="devsite-landing-row-item devsite-landing-row-item-no-description"
1745     
1746     
1747     
1748    description-position="bottom"
1749  >
1750
1751  
1752    
1753<div class="devsite-landing-row-item-media
1754            ">
1755  
1756    <figure class="devsite-landing-row-item-image">
1757  
1758    
1759  
1760  <picture>
1761    
1762    <img alt=""
1763         
1764         src="https://opensource.google/static/images/about/os-about-vis-1.svg"
1765         srcset="https://opensource.google/static/images/about/os-about-vis-1.svg"
1766         
1767         
1768         sizes="(max-width: 840px) 100vw, 1440px"
1769         
1770         loading="lazy"
1771         >
1772  </picture>
1773  
1774  
1775</figure>
1776  
1777</div>
1778
1779
1780    
1781  
1782
1783</div>
1784        
1785        </div>
1786      
1787
1788    
1789    </div>
1790  </section>
1791
1792  <section class="devsite-landing-row devsite-landing-row-1-up devsite-landing-row-100 devsite-landing-row-no-image-background"
1793           
1794           
1795           
1796    header-position="top"
1797  >
1798    <div class="devsite-landing-row-inner">
1799
1800    
1801      
1802
1803      
1804      
1805
1806      
1807
1808        <div class="devsite-landing-row-group">
1809        
1810          <div class="devsite-landing-row-item devsite-landing-row-item-no-description"
1811     
1812     
1813     
1814    description-position="bottom"
1815  >
1816
1817  
1818    
1819<div class="devsite-landing-row-item-media
1820            ">
1821  
1822    <figure class="devsite-landing-row-item-image">
1823  
1824    
1825  
1826  <picture>
1827    
1828    <img alt=""
1829         
1830         src="https://opensource.google/static/images/about/os-about-vis-3.svg"
1831         srcset="https://opensource.google/static/images/about/os-about-vis-3.svg"
1832         
1833         
1834         sizes="(max-width: 840px) 100vw, 1440px"
1835         
1836         loading="lazy"
1837         >
1838  </picture>
1839  
1840  
1841</figure>
1842  
1843</div>
1844
1845
1846    
1847  
1848
1849</div>
1850        
1851        </div>
1852      
1853
1854    
1855    </div>
1856  </section>
1857
1858  <section class="devsite-landing-row devsite-landing-row-1-up devsite-landing-row-100 devsite-landing-row-no-image-background"
1859           
1860           
1861           
1862    header-position="top"
1863  >
1864    <div class="devsite-landing-row-inner">
1865
1866    
1867      
1868
1869      
1870      
1871
1872      
1873
1874        <div class="devsite-landing-row-group">
1875        
1876          <div class="devsite-landing-row-item devsite-landing-row-item-no-description"
1877     
1878     
1879     
1880    description-position="bottom"
1881  >
1882
1883  
1884    
1885<div class="devsite-landing-row-item-media
1886            ">
1887  
1888    <figure class="devsite-landing-row-item-image">
1889  
1890    
1891  
1892  <picture>
1893    
1894    <img alt=""
1895         
1896         src="https://opensource.google/static/images/about/os-about-vis-4.svg"
1897         srcset="https://opensource.google/static/images/about/os-about-vis-4.svg"
1898         
1899         
1900         sizes="(max-width: 840px) 100vw, 1440px"
1901         
1902         loading="lazy"
1903         >
1904  </picture>
1905  
1906  
1907</figure>
1908  
1909</div>
1910
1911
1912    
1913  
1914
1915</div>
1916        
1917        </div>
1918      
1919
1920    
1921    </div>
1922  </section>
1923
1924  <section class="devsite-landing-row devsite-landing-row-1-up devsite-landing-row-padding-medium"
1925           
1926           
1927           
1928    header-position="top"
1929  >
1930    <div class="devsite-landing-row-inner">
1931
1932    
1933      
1934
1935      
1936      
1937
1938      
1939
1940    
1941    </div>
1942  </section>
1943
1944  <section class="devsite-landing-row devsite-landing-row-1-up devsite-landing-row-cta"
1945           
1946    background="google-green"
1947  
1948           
1949           
1950    header-position="top"
1951  >
1952    <div class="devsite-landing-row-inner">
1953
1954    
1955      
1956
1957      
1958      
1959
1960      
1961
1962        <div class="devsite-landing-row-group">
1963        
1964          <div class="devsite-landing-row-item devsite-landing-row-item-no-media"
1965     
1966     
1967     
1968    description-position="bottom"
1969  >
1970
1971  
1972    
1973
1974    
1975    <div class="devsite-landing-row-item-description"
1976         >
1977
1978      
1979
1980      <div class="devsite-landing-row-item-body">
1981        
1982
1983        
1984    <h3 id="interested-in-ossospo-roles"
1985        data-text="Interested in OSS/OSPO roles?"
1986        class="hide-from-toc no-link"
1987        tabindex="0">
1988      
1989  <a href="https://careers.google.com/jobs/results/?q=open%20source">
1990    
1991        Interested in OSS/OSPO roles?
1992      
1993  </a>
1994  
1995    </h3>
1996  
1997
1998        
1999
2000        
2001
2002        
2003          <div class="devsite-landing-row-item-buttons">
2004  
2005
2006  
2007  <a href="https://careers.google.com/jobs/results/?q=open%20source"
2008  
2009    class="button button-primary
2010      "
2011    
2012    
2013    >View careers</a>
2014
2015</div>
2016        
2017      </div>
2018    </div>
2019    
2020  
2021
2022</div>
2023        
2024        </div>
2025      
2026
2027    
2028    </div>
2029  </section>
2030
2031  
2032
2033  
2034</div>
2035
2036  
2037
2038  <div class="devsite-floating-action-buttons"></div></article>
2039
2040
2041
2042<devsite-notification
2043>
2044</devsite-notification>
2045
2046
2047  
2048<div class="devsite-content-data">
2049  
2050  
2051    <template class="devsite-content-data-template">
2052      [[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],[],[],[]]
2053    </template>
2054  
2055</div>
2056            
2057          </devsite-content>
2058        </main>
2059        <devsite-footer-promos class="devsite-footer">
2060          
2061            
2062          
2063        </devsite-footer-promos>
2064        <devsite-footer-linkboxes class="devsite-footer">
2065          
2066            
2067<nav class="devsite-footer-linkboxes nocontent"
2068     aria-label="Footer links"
2069     data-nosnippet>
2070  
2071</nav>
2072          
2073        </devsite-footer-linkboxes>
2074        <devsite-footer-utility class="devsite-footer">
2075          
2076            
2077
2078<div class="devsite-footer-utility nocontent" data-nosnippet>
2079  
2080  
2081  <nav class="devsite-footer-sites" aria-label="Other Google Developers websites">
2082    <a href="https://developers.google.com/"
2083       class="devsite-footer-sites-logo-link gc-analytics-event"
2084       data-category="Site-Wide Custom Events"
2085       data-label="Footer Google Developers Link">
2086      <picture>
2087        
2088        <img class="devsite-footer-sites-logo"
2089             src="https://www.gstatic.com/devrel-devsite/prod/vfdb441d2e08dbd9d3e48d8cd72b242388a87bcf7626bf5fb9df50c2bdd4a70fd/opensource/images/lockup-google-for-developers.svg"
2090             loading="lazy"
2091             alt="Google Developers">
2092      </picture>
2093    </a>
2094    <ul class="devsite-footer-sites-list">
2095      
2096      <li class="devsite-footer-sites-item">
2097        <a href="//www.youtube.com/googleopensource"
2098           class="devsite-footer-sites-link
2099                  gc-analytics-event"
2100           data-category="Site-Wide Custom Events"
2101         
2102           data-label="Footer YouTube Link"
2103         
2104         >
2105          YouTube
2106        </a>
2107      </li>
2108      
2109      <li class="devsite-footer-sites-item">
2110        <a href="//x.com/GoogleOSS"
2111           class="devsite-footer-sites-link
2112                  gc-analytics-event"
2113           data-category="Site-Wide Custom Events"
2114         
2115           data-label="Footer X Link"
2116         
2117         >
2118          X
2119        </a>
2120      </li>
2121      
2122      <li class="devsite-footer-sites-item">
2123        <a href="https://www.linkedin.com/showcase/googledevelopers/"
2124           class="devsite-footer-sites-link
2125                  gc-analytics-event"
2126           data-category="Site-Wide Custom Events"
2127         
2128           data-label="Footer LinkedIn Link"
2129         
2130         >
2131          LinkedIn
2132        </a>
2133      </li>
2134      
2135    </ul>
2136  </nav>
2137  
2138
2139  
2140  <nav class="devsite-footer-utility-links" aria-label="Utility links">
2141    
2142    <ul class="devsite-footer-utility-list">
2143      
2144      <li class="devsite-footer-utility-item
2145                 ">
2146        
2147        
2148        <a class="devsite-footer-utility-link gc-analytics-event"
2149           href="//policies.google.com/terms"
2150           data-category="Site-Wide Custom Events"
2151           data-label="Footer Terms link"
2152         >
2153          Terms
2154        </a>
2155        
2156      </li>
2157      
2158      <li class="devsite-footer-utility-item
2159                 ">
2160        
2161        
2162        <a class="devsite-footer-utility-link gc-analytics-event"
2163           href="//policies.google.com/privacy"
2164           data-category="Site-Wide Custom Events"
2165           data-label="Footer Privacy link"
2166         >
2167          Privacy
2168        </a>
2169        
2170      </li>
2171      
2172      <li class="devsite-footer-utility-item
2173                 glue-cookie-notification-bar-control">
2174        
2175        
2176        <a class="devsite-footer-utility-link gc-analytics-event"
2177           href="#"
2178           data-category="Site-Wide Custom Events"
2179           data-label="Footer Manage cookies link"
2180         
2181           aria-hidden="true"
2182         >
2183          Manage cookies
2184        </a>
2185        
2186      </li>
2187      
2188    </ul>
2189    
2190    
2191<devsite-language-selector>
2192  <ul role="presentation">
2193    
2194    
2195    <li role="presentation">
2196      <a role="menuitem" lang="en"
2197        >English</a>
2198    </li>
2199    
2200    <li role="presentation">
2201      <a role="menuitem" lang="es"
2202        >Español</a>
2203    </li>
2204    
2205    <li role="presentation">
2206      <a role="menuitem" lang="es_419"
2207        >Español – América Latina</a>
2208    </li>
2209    
2210    <li role="presentation">
2211      <a role="menuitem" lang="id"
2212        >Indonesia</a>
2213    </li>
2214    
2215    <li role="presentation">
2216      <a role="menuitem" lang="it"
2217        >Italiano</a>
2218    </li>
2219    
2220    <li role="presentation">
2221      <a role="menuitem" lang="pt"
2222        >Português</a>
2223    </li>
2224    
2225    <li role="presentation">
2226      <a role="menuitem" lang="pt_br"
2227        >Português – Brasil</a>
2228    </li>
2229    
2230    <li role="presentation">
2231      <a role="menuitem" lang="tr"
2232        >Türkçe</a>
2233    </li>
2234    
2235    <li role="presentation">
2236      <a role="menuitem" lang="ar"
2237        >العربيّة</a>
2238    </li>
2239    
2240    <li role="presentation">
2241      <a role="menuitem" lang="zh_cn"
2242        >中文 – 简体</a>
2243    </li>
2244    
2245    <li role="presentation">
2246      <a role="menuitem" lang="ja"
2247        >日本語</a>
2248    </li>
2249    
2250    <li role="presentation">
2251      <a role="menuitem" lang="ko"
2252        >한국어</a>
2253    </li>
2254    
2255  </ul>
2256</devsite-language-selector>
2257
2258  </nav>
2259</div>
2260          
2261        </devsite-footer-utility>
2262        <devsite-panel>
2263          
2264        </devsite-panel>
2265        
2266      </section>
2267      </section>
2268    <devsite-sitemask></devsite-sitemask>
2269    <devsite-snackbar></devsite-snackbar>
2270    <devsite-tooltip ></devsite-tooltip>
2271    <devsite-heading-link></devsite-heading-link>
2272    <devsite-analytics>
2273      
2274        
2274<script type="application/json" analytics>[{&#34;dimensions&#34;: {&#34;dimension5&#34;: false, &#34;dimension4&#34;: &#34;en&#34;, &#34;dimension3&#34;: &#34;en&#34;, &#34;dimension2&#34;: false, &#34;dimension1&#34;: &#34;Signed out&#34;}, &#34;gaid&#34;: &#34;UA-53341410-8&#34;, &#34;metrics&#34;: {}, &#34;purpose&#34;: 0}]</script>
vendor: 1 bytes, line 2274
2274
2275<script type="application/json" tag-management>{&#34;at&#34;: &#34;True&#34;, &#34;ga4&#34;: [{&#34;id&#34;: &#34;G-Q7VJ8CW5GK&#34;, &#34;purpose&#34;: 0}], &#34;ga4p&#34;: [{&#34;id&#34;: &#34;G-Q7VJ8CW5GK&#34;, &#34;purpose&#34;: 0}], &#34;gtm&#34;: [], &#34;parameters&#34;: {&#34;internalUser&#34;: &#34;False&#34;, &#34;language&#34;: {&#34;machineTranslated&#34;: &#34;False&#34;, &#34;requested&#34;: &#34;en&#34;, &#34;served&#34;: &#34;en&#34;}, &#34;pageType&#34;: &#34;article&#34;, &#34;projectName&#34;: &#34;Google Open Source&#34;, &#34;signedIn&#34;: &#34;False&#34;, &#34;tenant&#34;: &#34;opensource&#34;, &#34;recommendations&#34;: {&#34;sourcePage&#34;: &#34;&#34;, &#34;sourceType&#34;: 0, &#34;sourceRank&#34;: 0, &#34;sourceIdenticalDescriptions&#34;: 0, &#34;sourceTitleWords&#34;: 0, &#34;sourceDescriptionWords&#34;: 0, &#34;experiment&#34;: &#34;&#34;}, &#34;experiment&#34;: {&#34;ids&#34;: &#34;&#34;}}}</script>
2275
2276      
2277    </devsite-analytics>
2278    
2279      <devsite-badger></devsite-badger>
2280    
2281    
2282    
2283    
2284<script nonce="3P006dKlF/g1pe4qSL4xGbgobh9ExO">
2285  
2286  (function(d,e,v,s,i,t,E){d['GoogleDevelopersObject']=i;
2287    t=e.createElement(v);t.async=1;t.src=s;E=e.getElementsByTagName(v)[0];
2288    E.parentNode.insertBefore(t,E);})(window, document, 'script',
2289    'https://www.gstatic.com/devrel-devsite/prod/vfdb441d2e08dbd9d3e48d8cd72b242388a87bcf7626bf5fb9df50c2bdd4a70fd/opensource/js/app_loader.js', '[42,"en",null,"/js/devsite_app_module.js","https://www.gstatic.com/devrel-devsite/prod/vfdb441d2e08dbd9d3e48d8cd72b242388a87bcf7626bf5fb9df50c2bdd4a70fd","https://www.gstatic.com/devrel-devsite/prod/vfdb441d2e08dbd9d3e48d8cd72b242388a87bcf7626bf5fb9df50c2bdd4a70fd/opensource","https://opensource-dot-devsite-v2-prod-3p.appspot.com",1,null,["/_pwa/opensource/manifest.json","https://www.gstatic.com/devrel-devsite/prod/vfdb441d2e08dbd9d3e48d8cd72b242388a87bcf7626bf5fb9df50c2bdd4a70fd/images/video-placeholder.svg","https://www.gstatic.com/devrel-devsite/prod/vfdb441d2e08dbd9d3e48d8cd72b242388a87bcf7626bf5fb9df50c2bdd4a70fd/opensource/images/favicon.png","https://www.gstatic.com/devrel-devsite/prod/vfdb441d2e08dbd9d3e48d8cd72b242388a87bcf7626bf5fb9df50c2bdd4a70fd/opensource/images/lockup.svg","https://fonts.googleapis.com/css?family=Google+Sans:400,500,700|Roboto:400,400italic,500,500italic,700,700italic|Roboto+Mono:400,500,700&display=swap"],1,null,[1,6,8,12,14,17,21,25,50,52,63,70,75,76,80,87,91,92,93,97,98,100,101,102,103,104,105,107,108,109,110,112,113,116,117,118,120,122,124,125,126,127,129,130,131,132,133,134,135,136,138,140,141,147,148,149,151,152,156,157,158,159,161,163,164,168,169,170,179,180,182,183,186,191,193,196],"AIzaSyCNm9YxQumEXwGJgTDjxoxXK6m1F-9720Q","AIzaSyCc76DZePGtoyUjqKrLdsMGk_ry7sljLbY","opensource.google","AIzaSyB9bqgQ2t11WJsOX8qNsCQ6U-w91mmqF-I","AIzaSyAdYnStPdzjcJJtQ0mvIaeaMKj7_t6J_Fg",null,null,null,["Search__enable_dynamic_content_confidential_banner","Cloud__enable_cloudx_experiment_ids","DevPro__enable_embed_profile_creation","Profiles__enable_purchase_prompts","MiscFeatureFlags__developers_footer_dark_image","EngEduTelemetry__enable_engedu_telemetry","DevPro__enable_developer_subscriptions","BookNav__enable_tenant_cache_key","SignIn__enable_l1_signup_flow","DevPro__enable_google_one_card","Profiles__enable_playlist_community_acl","DevPro__enable_credits_banner","CloudShell__cloud_code_overflow_menu","MiscFeatureFlags__enable_project_variables","Search__enable_suggestions_from_borg","DevPro__enable_code_assist","Profiles__enable_dashboard_curated_recommendations","MiscFeatureFlags__remove_cross_domain_tracking_params","Profiles__require_profile_eligibility_for_signin","Profiles__enable_page_saving","DevPro__enable_free_benefits","MiscFeatureFlags__enable_firebase_utm","AIStudioInteractionsToggle__interactions_are_default","MiscFeatureFlags__enable_variable_operator_index_yaml","MiscFeatureFlags__enable_variable_operator","Search__enable_page_map","Profiles__enable_completecodelab_endpoint","Concierge__enable_pushui","MiscFeatureFlags__developers_footer_image","Profiles__enable_stripe_subscription_management","Profiles__enable_developer_profiles_callout","Profiles__enable_release_notes_notifications","MiscFeatureFlags__enable_explain_this_code","MiscFeatureFlags__enable_explicit_template_dependencies","Search__enable_ai_search_summaries_for_all","DevPro__enable_enterprise","MiscFeatureFlags__enable_view_transitions","Cloud__enable_free_trial_server_call","Profiles__enable_user_type","MiscFeatureFlags__enable_framebox_badge_methods","CloudShell__cloud_shell_button","DevPro__remove_eu_tax_intake_form","Cloud__enable_cloud_dlp_service","Profiles__enable_public_developer_profiles","OnSwitch__enable","DevPro__enable_nvidia_credits_card","Cloud__enable_legacy_calculator_redirect","Profiles__enable_developer_profile_benefits_ui_redesign","Search__enable_ai_eligibility_checks","Cloud__cache_serialized_dynamic_content","Experiments__reqs_query_experiments","DevPro__enable_g1_ineligible_redirect","Profiles__enable_developer_profile_pages_as_content","DevPro__enable_firebase_workspaces_card","MiscFeatureFlags__enable_appearance_cookies","DevPro__enable_google_payments_buyflow","Profiles__enable_complete_playlist_endpoint","DevPro__enable_devpro_offers","DevPro__enable_cloud_innovators_plus","MiscFeatureFlags__gdp_dashboard_reskin_enabled","Concierge__enable_remove_info_panel_tags","TpcFeatures__proxy_prod_host","Profiles__enable_recognition_badges","Cloud__enable_cloud_shell","DevPro__enable_vertex_credit_card","DevPro__enable_devsite_c
2289aptcha","Profiles__enable_targeted_hero","Profiles__enable_join_program_group_endpoint","DevPro__enable_g1_integration","Analytics__enable_clearcut_logging","Profiles__enable_profile_collections","Profiles__enable_completequiz_endpoint","Profiles__enable_awarding_url","MiscFeatureFlags__fix_lower_breadcrumbs","Profiles__enable_callout_notifications","TpcFeatures__enable_unmirrored_page_left_nav","Analytics__enable_devpro_interaction_logging","Cloud__enable_cloud_shell_fte_user_flow","Cloud__fast_free_trial","Profiles__enable_auto_apply_credits","Concierge__enable_actions_menu"],null,null,"AIzaSyA58TaKli1DculwmAmbpzLVGuWc8eCQgQc","https://developerscontentserving-pa.googleapis.com","AIzaSyDWBU60w0P9hEkr29kkksYs8Z7gvZ8u_wc","https://developerscontentsearch-pa.googleapis.com",2,4,null,"https://developerprofiles-pa.googleapis.com",[42,"opensource","Google Open Source","opensource.google",null,"opensource-dot-devsite-v2-prod-3p.appspot.com",null,null,[null,1,null,null,null,null,null,null,null,null,null,[1],null,null,null,null,null,null,[1],null,null,null,null,[1,null,1],null,null,null,null,null,null,[1]],null,[58,null,null,null,null,null,"/images/lockup.svg",null,null,null,null,1,null,null,null,null,null,null,null,null,null,1,null,null,null,"/images/lockup-dark-theme.svg",[]],[],null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,[[],[1,1]],[[["UA-53341410-8"],["UA-53341410-20"],null,null,["UA-53341410-19"],null,null,[["G-Q7VJ8CW5GK"],null,null,[["G-Q7VJ8CW5GK",1]]],[["UA-53341410-8",1]],null,[["UA-53341410-19",1]],null,1],[[1,1],[2,2],[3,4],[4,5],[5,8]]],null,4],null,null,1,null,"https://developerscontentinsights-pa.googleapis.com","AIzaSyC11xEGtFhkmSh_iF6l_itbxnFz2GrIBOg","AIzaSyAXJ10nRF73mmdSDINgkCNX5bbd2KPcWm8","https://developers.googleapis.com",null,null,"AIzaSyCjP0KOnHfv8mwe38sfzZJMOnqE3HvrD4A",null,null,"https://developers.googleapis.com"]')
2290  
2291</script>
2291
2292
2293    <devsite-a11y-announce></devsite-a11y-announce>
2294  </body>
2295</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.