PageSourceSearch

https://cookbook.chromadb.dev/core/clients/

html chromadb.dev collected 2026-10-03 22:10:00 UTC 125,711 bytes, 4,220 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        <meta name="description" content="Recipes and operational guides for building with Chroma.">
10      
11      
12      
13        <link rel="canonical" href="https://cookbook.chromadb.dev/core/clients/">
14      
15      
16        <link rel="prev" href="../api/">
17      
18      
19        <link rel="next" href="../collections/">
20      
21      
22        
23      
24      
25      <link rel="icon" href="../../favicon.ico">
26      <meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.7.6">
27    
28    
29      
30        <title>Chroma Clients - Chroma Cookbook</title>
31      
32    
33    
34      <link rel="stylesheet" href="../../assets/stylesheets/main.484c7ddc.min.css">
35      
36        
37        <link rel="stylesheet" href="../../assets/stylesheets/palette.ab4e12ef.min.css">
38      
39      
40
41
42    
43    
44      
45    
46    
47      
48        
49        
50        <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
51        <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CJetBrains+Mono:400,400i,700,700i&display=fallback">
52        <style>:root{--md-text-font:"Roboto";--md-code-font:"JetBrains Mono"}</style>
53      
54    
55    
56      <link rel="stylesheet" href="../../stylesheets/ethicalads.css">
57    
58      <link rel="stylesheet" href="../../stylesheets/concepts-flow.css">
59    
60      <link rel="stylesheet" href="../../stylesheets/custom.css">
61    
62      <link rel="stylesheet" href="../../stylesheets/filter-builder.css">
63    
64    
64<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>
64
65    
66      
67  
68
69
70  
71  
72
73<script id="__analytics">function __md_analytics(){function e(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],e("js",new Date),e("config","G-FZFKK5FLEY"),document.addEventListener("DOMContentLoaded",(function(){document.forms.search&&document.forms.search.query.addEventListener("blur",(function(){this.value&&e("event","search",{search_term:this.value})}));document$.subscribe((function(){var t=document.forms.feedback;if(void 0!==t)for(var a of t.querySelectorAll("[type=submit]"))a.addEventListener("click",(function(a){a.preventDefault();var n=document.location.pathname,d=this.getAttribute("data-md-value");e("event","feedback",{page:n,data:d}),t.firstElementChild.disabled=!0;var r=t.querySelector(".md-feedback__note [data-md-value='"+d+"']");r&&(r.hidden=!1)})),t.hidden=!1})),location$.subscribe((function(t){e("config","G-FZFKK5FLEY",{page_path:t.pathname})}))}));var t=document.createElement("script");t.async=!0,t.src="https://www.googletagmanager.com/gtag/js?id=G-FZFKK5FLEY",document.getElementById("__analytics").insertAdjacentElement("afterEnd",t)}</script>
73
74  
75    
75<script>if("undefined"!=typeof __md_analytics){var consent=__md_get("__consent");consent&&consent.analytics&&__md_analytics()}</script>
75
76  
77
78    
79    
80  
81  
81<script async src="https://media.ethicalads.io/media/client/ethicalads.min.js"></script>
81
82
83  </head>
84  
85  
86    
87    
88      
89    
90    
91    
92    
93    <body dir="ltr" data-md-color-scheme="default" data-md-color-primary="indigo" data-md-color-accent="indigo">
94  
95    
96    <input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off">
97    <input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
98    <label class="md-overlay" for="__drawer"></label>
99    <div data-md-component="skip">
100      
101        
102        <a href="#chroma-clients" class="md-skip">
103          Skip to content
104        </a>
105      
106    </div>
107    <div data-md-component="announce">
108      
109    </div>
110    
111    
112      
113
114  
115
116<header class="md-header md-header--shadow" data-md-component="header">
117  <nav class="md-header__inner md-grid" aria-label="Header">
118    <a href="/" title="Chroma Cookbook" class="md-header__button md-logo" aria-label="Chroma Cookbook" data-md-component="logo">
119      
120  <img src="../../assets/images/logo.png" alt="logo">
121
122    </a>
123    <label class="md-header__button md-icon" for="__drawer">
124      
125      <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3zm0 5h18v2H3zm0 5h18v2H3z"/></svg>
126    </label>
127    <div class="md-header__title" data-md-component="header-title">
128      <div class="md-header__ellipsis">
129        <div class="md-header__topic">
130          <span class="md-ellipsis">
131            Chroma Cookbook
132          </span>
133        </div>
134        <div class="md-header__topic" data-md-component="header-topic">
135          <span class="md-ellipsis">
136            
137              Chroma Clients
138            
139          </span>
140        </div>
141      </div>
142    </div>
143    
144      
145        <form class="md-header__option" data-md-component="palette">
146  
147    
148    
149    
150    <input class="md-option" data-md-color-media="(prefers-color-scheme)" data-md-color-scheme="default" data-md-color-primary="indigo" data-md-color-accent="indigo"  aria-label="Switch to light mode"  type="radio" name="__palette" id="__palette_0">
151    
152      <label class="md-header__button md-icon" title="Switch to light mode" for="__palette_1" hidden>
153        <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="m14.3 16-.7-2h-3.2l-.7 2H7.8L11 7h2l3.2 9zM20 8.69V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12zm-9.15 3.96h2.3L12 9z"/></svg>
154      </label>
155    
156  
157    
158    
159    
160    <input class="md-option" data-md-color-media="(prefers-color-scheme: light)" data-md-color-scheme="default" data-md-color-primary="black" data-md-color-accent="indigo"  aria-label="Switch to dark mode"  type="radio" name="__palette" id="__palette_1">
161    
162      <label class="md-header__button md-icon" title="Switch to dark mode" for="__palette_2" hidden>
163        <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 7a5 5 0 0 1 5 5 5 5 0 0 1-5 5 5 5 0 0 1-5-5 5 5 0 0 1 5-5m0 2a3 3 0 0 0-3 3 3 3 0 0 0 3 3 3 3 0 0 0 3-3 3 3 0 0 0-3-3m0-7 2.39 3.42C13.65 5.15 12.84 5 12 5s-1.65.15-2.39.42zM3.34 7l4.16-.35A7.2 7.2 0 0 0 5.94 8.5c-.44.74-.69 1.5-.83 2.29zm.02 10 1.76-3.77a7.131 7.131 0 0 0 2.38 4.14zM20.65 7l-1.77 3.79a7.02 7.02 0 0 0-2.38-4.15zm-.01 10-4.14.36c.59-.51 1.12-1.14 1.54-1.86.42-.73.69-1.5.83-2.29zM12 22l-2.41-3.44c.74.27 1.55.44 2.41.44.82 0 1.63-.17 2.37-.44z"/></svg>
164      </label>
165    
166  
167    
168    
169    
170    <input class="md-option" data-md-color-media="(prefers-color-scheme: dark)" data-md-color-scheme="slate" data-md-color-primary="black" data-md-color-accent="indigo"  aria-label="Switch to system preference"  type="radio" name="__palette" id="__palette_2">
171    
172      <label class="md-header__button md-icon" title="Switch to system preference" for="__palette_0" hidden>
173        <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="m17.75 4.09-2.53 1.94.91 3.06-2.63-1.81-2.63 1.81.91-3.06-2.53-1.94L12.44 4l1.06-3 1.06 3zm3.5 6.91-1.64 1.25.59 1.98-1.7-1.17-1.7 1.17.59-1.98L15.75 11l2.06-.05L18.5 9l.69 1.95zm-2.28 4.95c.83-.08 1.72 1.1 1.19 1.85-.32.45-.66.87-1.08 1.27C15.17 23 8.84 23 4.94 19.07c-3.91-3.9-3.91-10.24 0-14.14.4-.4.82-.76 1.27-1.08.75-.53 1.93.3
1736 1.85 1.19-.27 2.86.69 5.83 2.89 8.02a9.96 9.96 0 0 0 8.02 2.89m-1.64 2.02a12.08 12.08 0 0 1-7.8-3.47c-2.17-2.19-3.33-5-3.49-7.82-2.81 3.14-2.7 7.96.31 10.98 3.02 3.01 7.84 3.12 10.98.31"/></svg>
174      </label>
175    
176  
177</form>
178      
179    
180    
181      
181<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>
181
182    
183    
184    
185      
186      
187        <label class="md-header__button md-icon" for="__search">
188          
189          <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg>
190        </label>
191        <div class="md-search" data-md-component="search" role="dialog">
192  <label class="md-search__overlay" for="__search"></label>
193  <div class="md-search__inner" role="search">
194    <form class="md-search__form" name="search">
195      <input type="text" class="md-search__input" name="query" aria-label="Search" placeholder="Search" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" data-md-component="search-query" required>
196      <label class="md-search__icon md-icon" for="__search">
197        
198        <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg>
199        
200        <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"/></svg>
201      </label>
202      <nav class="md-search__options" aria-label="Search">
203        
204        <button type="reset" class="md-search__icon md-icon" title="Clear" aria-label="Clear" tabindex="-1">
205          
206          <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></svg>
207        </button>
208      </nav>
209      
210    </form>
211    <div class="md-search__output">
212      <div class="md-search__scrollwrap" tabindex="0" data-md-scrollfix>
213        <div class="md-search-result" data-md-component="search-result">
214          <div class="md-search-result__meta">
215            Initializing search
216          </div>
217          <ol class="md-search-result__list" role="presentation"></ol>
218        </div>
219      </div>
220    </div>
221  </div>
222</div>
223      
224    
225    
226      <div class="md-header__source">
227        <a href="https://github.com/amikos-tech/chroma-cookbook" title="Go to repository" class="md-source" data-md-component="source">
228  <div class="md-source__icon md-icon">
229    
230    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M439.6 236.1 244 40.5c-5.4-5.5-12.8-8.5-20.4-8.5s-15 3-20.4 8.4L162.5 81l51.5 51.5c27.1-9.1 52.7 16.8 43.4 43.7l49.7 49.7c34.2-11.8 61.2 31 35.5 56.7-26.5 26.5-70.2-2.9-56-37.3L240.3 199v121.9c25.3 12.5 22.3 41.8 9.1 55-6.4 6.4-15.2 10.1-24.3 10.1s-17.8-3.6-24.3-10.1c-17.6-17.6-11.1-46.9 11.2-56v-123c-20.8-8.5-24.6-30.7-18.6-45L142.6 101 8.5 235.1C3 240.6 0 247.9 0 255.5s3 15 8.5 20.4l195.6 195.7c5.4 5.4 12.7 8.4 20.4 8.4s15-3 20.4-8.4l194.7-194.7c5.4-5.4 8.4-12.8 8.4-20.4s-3-15-8.4-20.4"/></svg>
231  </div>
232  <div class="md-source__repository">
233    GitHub
234  </div>
235</a>
236      </div>
237    
238  </nav>
239  
240</header>
241    
242    <div class="md-container" data-md-component="container">
243      
244  
245  <div class="md-grid mdx-ethicalads-container">
246    <div
247      id="cookbook-stickybox"
248      class="raised"
249      data-ea-publisher="chromadbdev"
250      data-ea-type="image"
251      data-ea-style="stickybox"
252      data-ea-placement-bottom="56px"
253    ></div>
254  </div>
255
256      
257        
258          
259        
260      
261      <main class="md-main" data-md-component="main">
262        <div class="md-main__inner md-grid">
263          
264            
265              
266              <div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation" >
267                <div class="md-sidebar__scrollwrap">
268                  <div class="md-sidebar__inner">
269                    
270
271
272
273<nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0">
274  <label class="md-nav__title" for="__drawer">
275    <a href="/" title="Chroma Cookbook" class="md-nav__button md-logo" aria-label="Chroma Cookbook" data-md-component="logo">
276      
277  <img src="../../assets/images/logo.png" alt="logo">
278
279    </a>
280    Chroma Cookbook
281  </label>
282  
283    <div class="md-nav__source">
284      <a href="https://github.com/amikos-tech/chroma-cookbook" title="Go to repository" class="md-source" data-md-component="source">
285  <div class="md-source__icon md-icon">
286    
287    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M439.6 236.1 244 40.5c-5.4-5.5-12.8-8.5-20.4-8.5s-15 3-20.4 8.4L162.5 81l51.5 51.5c27.1-9.1 52.7 16.8 43.4 43.7l49.7 49.7c34.2-11.8 61.2 31 35.5 56.7-26.5 26.5-70.2-2.9-56-37.3L240.3 199v121.9c25.3 12.5 22.3 41.8 9.1 55-6.4 6.4-15.2 10.1-24.3 10.1s-17.8-3.6-24.3-10.1c-17.6-17.6-11.1-46.9 11.2-56v-123c-20.8-8.5-24.6-30.7-18.6-45L142.6 101 8.5 235.1C3 240.6 0 247.9 0 255.5s3 15 8.5 20.4l195.6 195.7c5.4 5.4 12.7 8.4 20.4 8.4s15-3 20.4-8.4l194.7-194.7c5.4-5.4 8.4-12.8 8.4-20.4s-3-15-8.4-20.4"/></svg>
288  </div>
289  <div class="md-source__repository">
290    GitHub
291  </div>
292</a>
293    </div>
294  
295  <ul class="md-nav__list" data-md-scrollfix>
296    
297      
298      
299  
300  
301  
302  
303    <li class="md-nav__item">
304      <a href="../.." class="md-nav__link">
305        
306  
307  
308  <span class="md-ellipsis">
309    
310  
311    Home
312  
313
314    
315  </span>
316  
317  
318
319      </a>
320    </li>
321  
322
323    
324      
325      
326  
327  
328    
329  
330  
331  
332    
333    
334      
335        
336          
337        
338      
339        
340      
341        
342      
343        
344      
345        
346      
347        
348      
349        
350      
351        
352      
353        
354      
355        
356      
357        
358      
359        
360      
361        
362      
363        
364      
365    
366    
367    
368    
369    <li class="md-nav__item md-nav__item--active md-nav__item--nested">
370      
371        
372        
373        <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2" checked>
374        
375          
376          <div class="md-nav__link md-nav__container">
377            <a href="../" class="md-nav__link ">
378              
379  
380  
381  <span class="md-ellipsis">
382    
383  
384    Core
385  
386
387    
388  </span>
389  
390  
391
392            </a>
393            
394              
395              <label class="md-nav__link " for="__nav_2" id="__nav_2_label" tabindex="0">
396                <span class="md-nav__icon md-icon"></span>
397              </label>
398            
399          </div>
400        
401        <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_2_label" aria-expanded="true">
402          <label class="md-nav__title" for="__nav_2">
403            <span class="md-nav__icon md-icon"></span>
404            
405  
406    Core
407  
408
409          </label>
410          <ul class="md-nav__list" data-md-scrollfix>
411            
412              
413            
414              
415                
416  
417  
418  
419  
420    <li class="md-nav__item">
421      <a href="../api/" class="md-nav__link">
422        
423  
424  
425  <span class="md-ellipsis">
426    
427  
428    Chroma API
429  
430
431    
432  </span>
433  
434  
435
436      </a>
437    </li>
438  
439
440              
441            
442              
443                
444  
445  
446    
447  
448  
449  
450    <li class="md-nav__item md-nav__item--active">
451      
452      <input class="md-nav__toggle md-toggle" type="checkbox" id="__toc">
453      
454      
455        
456      
457      
458        <label class="md-nav__link md-nav__link--active" for="__toc">
459          
460  
461  
462  <span class="md-ellipsis">
463    
464  
465    Chroma Clients
466  
467
468    
469  </span>
470  
471  
472
473          <span class="md-nav__icon md-icon"></span>
474        </label>
475      
476      <a href="./" class="md-nav__link md-nav__link--active">
477        
478  
479  
480  <span class="md-ellipsis">
481    
482  
483    Chroma Clients
484  
485
486    
487  </span>
488  
489  
490
491      </a>
492      
493        
494
495  
496
497<nav class="md-nav md-nav--secondary" aria-label="On this page">
498  
499  
500  
501    
502  
503  
504    <label class="md-nav__title" for="__toc">
505      <span class="md-nav__icon md-icon"></span>
506      On this page
507    </label>
508    <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
509      
510        <li class="md-nav__item">
511  <a href="#client-implementations-and-source-repos" class="md-nav__link">
512    <span class="md-ellipsis">
513      
514        Client implementations and source repos
515      
516    </span>
517  </a>
518  
519</li>
520      
521        <li class="md-nav__item">
522  <a href="#persistent-client" class="md-nav__link">
523    <span class="md-ellipsis">
524      
525        Persistent Client
526      
527    </span>
528  </a>
529  
530    <nav class="md-nav" aria-label="Persistent Client">
531      <ul class="md-nav__list">
532        
533          <li class="md-nav__item">
534  <a href="#uses-of-persistent-client" class="md-nav__link">
535    <span class="md-ellipsis">
536      
537        Uses of Persistent Client
538      
539    </span>
540  </a>
541  
542</li>
543        
544      </ul>
545    </nav>
546  
547</li>
548      
549        <li class="md-nav__item">
550  <a href="#http-client" class="md-nav__link">
551    <span class="md-ellipsis">
552      
553        HTTP Client
554      
555    </span>
556  </a>
557  
558    <nav class="md-nav" aria-label="HTTP Client">
559      <ul class="md-nav__list">
560        
561          <li class="md-nav__item">
562  <a href="#uses-of-http-client" class="md-nav__link">
563    <span class="md-ellipsis">
564      
565        Uses of HTTP Client
566      
567    </span>
568  </a>
569  
570</li>
571        
572          <li class="md-nav__item">
573  <a href="#host-parameter-special-cases-python-only" class="md-nav__link">
574    <span class="md-ellipsis">
575      
576        Host parameter special cases (Python-only)
577      
578    </span>
579  </a>
580  
581</li>
582        
583      </ul>
584    </nav>
585  
586</li>
587      
588        <li class="md-nav__item">
589  <a href="#cloud-client" class="md-nav__link">
590    <span class="md-ellipsis">
591      
592        Cloud Client
593      
594    </span>
595  </a>
596  
597</li>
598      
599        <li class="md-nav__item">
600  <a href="#ephemeral-client" class="md-nav__link">
601    <span class="md-ellipsis">
602      
603        Ephemeral Client
604      
605    </span>
606  </a>
607  
608</li>
609      
610        <li class="md-nav__item">
611  <a href="#environment-variable-configured-client" class="md-nav__link">
612    <span class="md-ellipsis">
613      
614        Environment Variable Configured Client
615      
616    </span>
617  </a>
618  
619</li>
620      
621    </ul>
622  
623</nav>
624      
625    </li>
626  
627
628              
629            
630              
631                
632  
633  
634  
635  
636    <li class="md-nav__item">
637      <a href="../collections/" class="md-nav__link">
638        
639  
640  
641  <span class="md-ellipsis">
642    
643  
644    Collections
645  
646
647    
648  </span>
649  
650  
651
652      </a>
653    </li>
654  
655
656              
657            
658              
659                
660  
661  
662  
663  
664    <li class="md-nav__item">
665      <a href="../concepts/" class="md-nav__link">
666        
667  
668  
669  <span class="md-ellipsis">
670    
671  
672    Concepts
673  
674
675    
676  </span>
677  
678  
679
680      </a>
681    </li>
682  
683
684              
685            
686              
687                
688  
689  
690  
691  
692    <li class="md-nav__item">
693      <a href="../configuration/" class="md-nav__link">
694        
695  
696  
697  <span class="md-ellipsis">
698    
699  
700    Configuration
701  
702
703    
704  </span>
705  
706  
707
708      </a>
709    </li>
710  
711
712              
713            
714              
715                
716  
717  
718  
719  
720    <li class="md-nav__item">
721      <a href="../document-ids/" class="md-nav__link">
722        
723  
724  
725  <span class="md-ellipsis">
726    
727  
728    Document IDs
729  
730
731    
732  </span>
733  
734  
735
736      </a>
737    </li>
738  
739
740              
741            
742              
743                
744  
745  
746  
747  
748    <li class="md-nav__item">
749      <a href="../filters/" class="md-nav__link">
750        
751  
752  
753  <span class="md-ellipsis">
754    
755  
756    Filters
757  
758
759    
760  </span>
761  
762  
763
764      </a>
765    </li>
766  
767
768              
769            
770              
771                
772  
773  
774  
775  
776    <li class="md-nav__item">
777      <a href="../install/" class="md-nav__link">
778        
779  
780  
781  <span class="md-ellipsis">
782    
783  
784    Installation
785  
786
787    
788  </span>
789  
790  
791
792      </a>
793    </li>
794  
795
796              
797            
798              
799                
800  
801  
802  
803  
804    <li class="md-nav__item">
805      <a href="../resources/" class="md-nav__link">
806        
807  
808  
809  <span class="md-ellipsis">
810    
811  
812    Resource Requirements
813  
814
815    
816  </span>
817  
818  
819
820      </a>
821    </li>
822  
823
824              
825            
826              
827                
828  
829  
830  
831  
832    <li class="md-nav__item">
833      <a href="../storage-layout/" class="md-nav__link">
834        
835  
836  
837  <span class="md-ellipsis">
838    
839  
840    Storage Layout
841  
842
843    
844  </span>
845  
846  
847
848      </a>
849    </li>
850  
851
852              
853            
854              
855                
856  
857  
858  
859  
860    <li class="md-nav__item">
861      <a href="../system_constraints/" class="md-nav__link">
862        
863  
864  
865  <span class="md-ellipsis">
866    
867  
868    Chroma System Constraints
869  
870
871    
872  </span>
873  
874  
875
876      </a>
877    </li>
878  
879
880              
881            
882              
883                
884  
885  
886  
887  
888    <li class="md-nav__item">
889      <a href="../tenants-and-databases/" class="md-nav__link">
890        
891  
892  
893  <span class="md-ellipsis">
894    
895  
896    Tenants and Databases
897  
898
899    
900  </span>
901  
902  
903
904      </a>
905    </li>
906  
907
908              
909            
910              
911                
912  
913  
914  
915  
916    
917    
918      
919        
920      
921        
922      
923        
924      
925    
926    
927    
928    
929    <li class="md-nav__item md-nav__item--nested">
930      
931        
932        
933        <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_14" >
934        
935          
936          <label class="md-nav__link" for="__nav_2_14" id="__nav_2_14_label" tabindex="0">
937            
938  
939  
940  <span class="md-ellipsis">
941    
942  
943    Advanced
944  
945
946    
947  </span>
948  
949  
950
951            <span class="md-nav__icon md-icon"></span>
952          </label>
953        
954        <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_2_14_label" aria-expanded="false">
955          <label class="md-nav__title" for="__nav_2_14">
956            <span class="md-nav__icon md-icon"></span>
957            
958  
959    Advanced
960  
961
962          </label>
963          <ul class="md-nav__list" data-md-scrollfix>
964            
965              
966                
967  
968  
969  
970  
971    <li class="md-nav__item">
972      <a href="../advanced/queries/" class="md-nav__link">
973        
974  
975  
976  <span class="md-ellipsis">
977    
978  
979    Chroma Queries
980  
981
982    
983  </span>
984  
985  
986
987      </a>
988    </li>
989  
990
991              
992            
993              
994                
995  
996  
997  
998  
999    <li class="md-nav__item">
1000      <a href="../advanced/wal-pruning/" class="md-nav__link">
1001        
1002  
1003  
1004  <span class="md-ellipsis">
1005    
1006  
1007    Write-ahead Log (WAL) Pruning
1008  
1009
1010    
1011  </span>
1012  
1013  
1014
1015      </a>
1016    </li>
1017  
1018
1019              
1020            
1021              
1022                
1023  
1024  
1025  
1026  
1027    <li class="md-nav__item">
1028      <a href="../advanced/wal/" class="md-nav__link">
1029        
1030  
1031  
1032  <span class="md-ellipsis">
1033    
1034  
1035    Write-ahead Log (WAL)
1036  
1037
1038    
1039  </span>
1040  
1041  
1042
1043      </a>
1044    </li>
1045  
1046
1047              
1048            
1049          </ul>
1050        </nav>
1051      
1052    </li>
1053  
1054
1055              
1056            
1057          </ul>
1058        </nav>
1059      
1060    </li>
1061  
1062
1063    
1064      
1065      
1066  
1067  
1068  
1069  
1070    
1071    
1072      
1073        
1074      
1075        
1076      
1077        
1078      
1079        
1080      
1081        
1082      
1083        
1084      
1085        
1086      
1087    
1088    
1089    
1090    
1091    <li class="md-nav__item md-nav__item--nested">
1092      
1093        
1094        
1095        <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3" >
1096        
1097          
1098          <label class="md-nav__link" for="__nav_3" id="__nav_3_label" tabindex="0">
1099            
1100  
1101  
1102  <span class="md-ellipsis">
1103    
1104  
1105    Running
1106  
1107
1108    
1109  </span>
1110  
1111  
1112
1113            <span class="md-nav__icon md-icon"></span>
1114          </label>
1115        
1116        <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_3_label" aria-expanded="false">
1117          <label class="md-nav__title" for="__nav_3">
1118            <span class="md-nav__icon md-icon"></span>
1119            
1120  
1121    Running
1122  
1123
1124          </label>
1125          <ul class="md-nav__list" data-md-scrollfix>
1126            
1127              
1128                
1129  
1130  
1131  
1132  
1133    <li class="md-nav__item">
1134      <a href="../../running/running-chroma/" class="md-nav__link">
1135        
1136  
1137  
1138  <span class="md-ellipsis">
1139    
1140  
1141    Running Chroma
1142  
1143
1144    
1145  </span>
1146  
1147  
1148
1149      </a>
1150    </li>
1151  
1152
1153              
1154            
1155              
1156                
1157  
1158  
1159  
1160  
1161    <li class="md-nav__item">
1162      <a href="../../running/deployment-patterns/" class="md-nav__link">
1163        
1164  
1165  
1166  <span class="md-ellipsis">
1167    
1168  
1169    Deployment Patterns
1170  
1171
1172    
1173  </span>
1174  
1175  
1176
1177      </a>
1178    </li>
1179  
1180
1181              
1182            
1183              
1184                
1185  
1186  
1187  
1188  
1189    <li class="md-nav__item">
1190      <a href="../../running/road-to-prod/" class="md-nav__link">
1191        
1192  
1193  
1194  <span class="md-ellipsis">
1195    
1196  
1197    Road To Production
1198  
1199
1200    
1201  </span>
1202  
1203  
1204
1205      </a>
1206    </li>
1207  
1208
1209              
1210            
1211              
1212                
1213  
1214  
1215  
1216  
1217    <li class="md-nav__item">
1218      <a href="../../running/health-checks/" class="md-nav__link">
1219        
1220  
1221  
1222  <span class="md-ellipsis">
1223    
1224  
1225    Health Checks
1226  
1227
1228    
1229  </span>
1230  
1231  
1232
1233      </a>
1234    </li>
1235  
1236
1237              
1238            
1239              
1240                
1241  
1242  
1243  
1244  
1245    <li class="md-nav__item">
1246      <a href="../../running/performance-tips/" class="md-nav__link">
1247        
1248  
1249  
1250  <span class="md-ellipsis">
1251    
1252  
1253    Performance Tips
1254  
1255
1256    
1257  </span>
1258  
1259  
1260
1261      </a>
1262    </li>
1263  
1264
1265              
1266            
1267              
1268                
1269  
1270  
1271  
1272  
1273    <li class="md-nav__item">
1274      <a href="../../running/maintenance/" class="md-nav__link">
1275        
1276  
1277  
1278  <span class="md-ellipsis">
1279    
1280  
1281    Maintenance
1282  
1283
1284    
1285  </span>
1286  
1287  
1288
1289      </a>
1290    </li>
1291  
1292
1293              
1294            
1295              
1296                
1297  
1298  
1299  
1300  
1301    <li class="md-nav__item">
1302      <a href="../../running/systemd-service/" class="md-nav__link">
1303        
1304  
1305  
1306  <span class="md-ellipsis">
1307    
1308  
1309    Systemd service
1310  
1311
1312    
1313  </span>
1314  
1315  
1316
1317      </a>
1318    </li>
1319  
1320
1321              
1322            
1323          </ul>
1324        </nav>
1325      
1326    </li>
1327  
1328
1329    
1330      
1331      
1332  
1333  
1334  
1335  
1336    
1337    
1338      
1339        
1340      
1341        
1342      
1343        
1344      
1345        
1346      
1347    
1348    
1349    
1350    
1351    <li class="md-nav__item md-nav__item--nested">
1352      
1353        
1354        
1355        <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4" >
1356        
1357          
1358          <label class="md-nav__link" for="__nav_4" id="__nav_4_label" tabindex="0">
1359            
1360  
1361  
1362  <span class="md-ellipsis">
1363    
1364  
1365    Embedding
1366  
1367
1368    
1369  </span>
1370  
1371  
1372
1373            <span class="md-nav__icon md-icon"></span>
1374          </label>
1375        
1376        <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_4_label" aria-expanded="false">
1377          <label class="md-nav__title" for="__nav_4">
1378            <span class="md-nav__icon md-icon"></span>
1379            
1380  
1381    Embedding
1382  
1383
1384          </label>
1385          <ul class="md-nav__list" data-md-scrollfix>
1386            
1387              
1388                
1389  
1390  
1391  
1392  
1393    <li class="md-nav__item">
1394      <a href="../../embeddings/bring-your-own-embeddings/" class="md-nav__link">
1395        
1396  
1397  
1398  <span class="md-ellipsis">
1399    
1400  
1401    Creating your own embedding function
1402  
1403
1404    
1405  </span>
1406  
1407  
1408
1409      </a>
1410    </li>
1411  
1412
1413              
1414            
1415              
1416                
1417  
1418  
1419  
1420  
1421    <li class="md-nav__item">
1422      <a href="../../embeddings/cross-encoders/" class="md-nav__link">
1423        
1424  
1425  
1426  <span class="md-ellipsis">
1427    
1428  
1429    Cross-Encoders Reranking
1430  
1431
1432    
1433  </span>
1434  
1435  
1436
1437      </a>
1438    </li>
1439  
1440
1441              
1442            
1443              
1444                
1445  
1446  
1447  
1448  
1449    <li class="md-nav__item">
1450      <a href="../../embeddings/embedding-models/" class="md-nav__link">
1451        
1452  
1453  
1454  <span class="md-ellipsis">
1455    
1456  
1457    Embedding Models
1458  
1459
1460    
1461  </span>
1462  
1463  
1464
1465      </a>
1466    </li>
1467  
1468
1469              
1470            
1471              
1472                
1473  
1474  
1475  
1476  
1477    <li class="md-nav__item">
1478      <a href="../../embeddings/gpu-support/" class="md-nav__link">
1479        
1480  
1481  
1482  <span class="md-ellipsis">
1483    
1484  
1485    Embedding Functions GPU Support
1486  
1487
1488    
1489  </span>
1490  
1491  
1492
1493      </a>
1494    </li>
1495  
1496
1497              
1498            
1499          </ul>
1500        </nav>
1501      
1502    </li>
1503  
1504
1505    
1506      
1507      
1508  
1509  
1510  
1511  
1512    
1513    
1514      
1515        
1516      
1517        
1518      
1519        
1520      
1521    
1522    
1523    
1524    
1525    <li class="md-nav__item md-nav__item--nested">
1526      
1527        
1528        
1529        <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_5" >
1530        
1531          
1532          <label class="md-nav__link" for="__nav_5" id="__nav_5_label" tabindex="0">
1533            
1534  
1535  
1536  <span class="md-ellipsis">
1537    
1538  
1539    Integrations
1540  
1541
1542    
1543  </span>
1544  
1545  
1546
1547            <span class="md-nav__icon md-icon"></span>
1548          </label>
1549        
1550        <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_5_label" aria-expanded="false">
1551          <label class="md-nav__title" for="__nav_5">
1552            <span class="md-nav__icon md-icon"></span>
1553            
1554  
1555    Integrations
1556  
1557
1558          </label>
1559          <ul class="md-nav__list" data-md-scrollfix>
1560            
1561              
1562                
1563  
1564  
1565  
1566  
1567    
1568    
1569      
1570        
1571          
1572        
1573      
1574        
1575      
1576        
1577      
1578    
1579    
1580    
1581    
1582    <li class="md-nav__item md-nav__item--nested">
1583      
1584        
1585        
1586        <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_5_1" >
1587        
1588          
1589          <div class="md-nav__link md-nav__container">
1590            <a href="../../integrations/langchain/" class="md-nav__link ">
1591              
1592  
1593  
1594  <span class="md-ellipsis">
1595    
1596  
1597    Langchain
1598  
1599
1600    
1601  </span>
1602  
1603  
1604
1605            </a>
1606            
1607              
1608              <label class="md-nav__link " for="__nav_5_1" id="__nav_5_1_label" tabindex="0">
1609                <span class="md-nav__icon md-icon"></span>
1610              </label>
1611            
1612          </div>
1613        
1614        <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_5_1_label" aria-expanded="false">
1615          <label class="md-nav__title" for="__nav_5_1">
1616            <span class="md-nav__icon md-icon"></span>
1617            
1618  
1619    Langchain
1620  
1621
1622          </label>
1623          <ul class="md-nav__list" data-md-scrollfix>
1624            
1625              
1626            
1627              
1628                
1629  
1630  
1631  
1632  
1633    <li class="md-nav__item">
1634      <a href="../../integrations/langchain/embeddings/" class="md-nav__link">
1635        
1636  
1637  
1638  <span class="md-ellipsis">
1639    
1640  
1641    LangChain Embeddings
1642  
1643
1644    
1645  </span>
1646  
1647  
1648
1649      </a>
1650    </li>
1651  
1652
1653              
1654            
1655              
1656                
1657  
1658  
1659  
1660  
1661    <li class="md-nav__item">
1662      <a href="../../integrations/langchain/retrievers/" class="md-nav__link">
1663        
1664  
1665  
1666  <span class="md-ellipsis">
1667    
1668  
1669    🦜⛓️ Langchain Retriever
1670  
1671
1672    
1673  </span>
1674  
1675  
1676
1677      </a>
1678    </li>
1679  
1680
1681              
1682            
1683          </ul>
1684        </nav>
1685      
1686    </li>
1687  
1688
1689              
1690            
1691              
1692                
1693  
1694  
1695  
1696  
1697    
1698    
1699      
1700        
1701          
1702        
1703      
1704        
1705      
1706    
1707    
1708    
1709    
1710    <li class="md-nav__item md-nav__item--nested">
1711      
1712        
1713        
1714        <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_5_2" >
1715        
1716          
1717          <div class="md-nav__link md-nav__container">
1718            <a href="../../integrations/llamaindex/" class="md-nav__link ">
1719              
1720  
1721  
1722  <span class="md-ellipsis">
1723    
1724  
1725    Llamaindex
1726  
1727
1728    
1729  </span>
1730  
1731  
1732
1733            </a>
1734            
1735              
1736              <label class="md-nav__link " for="__nav_5_2" id="__nav_5_2_label" tabindex="0">
1737                <span class="md-nav__icon md-icon"></span>
1738              </label>
1739            
1740          </div>
1741        
1742        <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_5_2_label" aria-expanded="false">
1743          <label class="md-nav__title" for="__nav_5_2">
1744            <span class="md-nav__icon md-icon"></span>
1745            
1746  
1747    Llamaindex
1748  
1749
1750          </label>
1751          <ul class="md-nav__list" data-md-scrollfix>
1752            
1753              
1754            
1755              
1756                
1757  
1758  
1759  
1760  
1761    <li class="md-nav__item">
1762      <a href="../../integrations/llamaindex/embeddings/" class="md-nav__link">
1763        
1764  
1765  
1766  <span class="md-ellipsis">
1767    
1768  
1769    LlamaIndex Embeddings
1770  
1771
1772    
1773  </span>
1774  
1775  
1776
1777      </a>
1778    </li>
1779  
1780
1781              
1782            
1783          </ul>
1784        </nav>
1785      
1786    </li>
1787  
1788
1789              
1790            
1791              
1792                
1793  
1794  
1795  
1796  
1797    
1798    
1799      
1800        
1801          
1802        
1803      
1804        
1805      
1806    
1807    
1808    
1809    
1810    <li class="md-nav__item md-nav__item--nested">
1811      
1812        
1813        
1814        <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_5_3" >
1815        
1816          
1817          <div class="md-nav__link md-nav__container">
1818            <a href="../../integrations/ollama/" class="md-nav__link ">
1819              
1820  
1821  
1822  <span class="md-ellipsis">
1823    
1824  
1825    Ollama
1826  
1827
1828    
1829  </span>
1830  
1831  
1832
1833            </a>
1834            
1835              
1836              <label class="md-nav__link " for="__nav_5_3" id="__nav_5_3_label" tabindex="0">
1837                <span class="md-nav__icon md-icon"></span>
1838              </label>
1839            
1840          </div>
1841        
1842        <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_5_3_label" aria-expanded="false">
1843          <label class="md-nav__title" for="__nav_5_3">
1844            <span class="md-nav__icon md-icon"></span>
1845            
1846  
1847    Ollama
1848  
1849
1850          </label>
1851          <ul class="md-nav__list" data-md-scrollfix>
1852            
1853              
1854            
1855              
1856                
1857  
1858  
1859  
1860  
1861    <li class="md-nav__item">
1862      <a href="../../integrations/ollama/embeddings/" class="md-nav__link">
1863        
1864  
1865  
1866  <span class="md-ellipsis">
1867    
1868  
1869    Ollama
1870  
1871
1872    
1873  </span>
1874  
1875  
1876
1877      </a>
1878    </li>
1879  
1880
1881              
1882            
1883          </ul>
1884        </nav>
1885      
1886    </li>
1887  
1888
1889              
1890            
1891          </ul>
1892        </nav>
1893      
1894    </li>
1895  
1896
1897    
1898      
1899      
1900  
1901  
1902  
1903  
1904    
1905    
1906      
1907        
1908      
1909        
1910      
1911        
1912      
1913        
1914      
1915        
1916      
1917        
1918      
1919        
1920      
1921        
1922      
1923        
1924      
1925        
1926      
1927        
1928      
1929        
1930      
1931        
1932      
1933    
1934    
1935    
1936    
1937    <li class="md-nav__item md-nav__item--nested">
1938      
1939        
1940        
1941        <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_6" >
1942        
1943          
1944          <label class="md-nav__link" for="__nav_6" id="__nav_6_label" tabindex="0">
1945            
1946  
1947  
1948  <span class="md-ellipsis">
1949    
1950  
1951    Strategies
1952  
1953
1954    
1955  </span>
1956  
1957  
1958
1959            <span class="md-nav__icon md-icon"></span>
1960          </label>
1961        
1962        <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_6_label" aria-expanded="false">
1963          <label class="md-nav__title" for="__nav_6">
1964            <span class="md-nav__icon md-icon"></span>
1965            
1966  
1967    Strategies
1968  
1969
1970          </label>
1971          <ul class="md-nav__list" data-md-scrollfix>
1972            
1973              
1974                
1975  
1976  
1977  
1978  
1979    <li class="md-nav__item">
1980      <a href="../../strategies/backup/" class="md-nav__link">
1981        
1982  
1983  
1984  <span class="md-ellipsis">
1985    
1986  
1987    ChromaDB Backups
1988  
1989
1990    
1991  </span>
1992  
1993  
1994
1995      </a>
1996    </li>
1997  
1998
1999              
2000            
2001              
2002                
2003  
2004  
2005  
2006  
2007    <li class="md-nav__item">
2008      <a href="../../strategies/batching/" class="md-nav__link">
2009        
2010  
2011  
2012  <span class="md-ellipsis">
2013    
2014  
2015    Batching
2016  
2017
2018    
2019  </span>
2020  
2021  
2022
2023      </a>
2024    </li>
2025  
2026
2027              
2028            
2029              
2030                
2031  
2032  
2033  
2034  
2035    <li class="md-nav__item">
2036      <a href="../../strategies/cors/" class="md-nav__link">
2037        
2038  
2039  
2040  <span class="md-ellipsis">
2041    
2042  
2043    CORS Configuration for Browser-Based Access
2044  
2045
2046    
2047  </span>
2048  
2049  
2050
2051      </a>
2052    </li>
2053  
2054
2055              
2056            
2057              
2058                
2059  
2060  
2061  
2062  
2063    <li class="md-nav__item">
2064      <a href="../../strategies/go-local-markdown-cli/" class="md-nav__link">
2065        
2066  
2067  
2068  <span class="md-ellipsis">
2069    
2070  
2071    Go Local Markdown CLI with PersistentClient
2072  
2073
2074    
2075  </span>
2076  
2077  
2078
2079      </a>
2080    </li>
2081  
2082
2083              
2084            
2085              
2086                
2087  
2088  
2089  
2090  
2091    <li class="md-nav__item">
2092      <a href="../../strategies/image-search/" class="md-nav__link">
2093        
2094  
2095  
2096  <span class="md-ellipsis">
2097    
2098  
2099    Image Search (Multimodal Retrieval)
2100  
2101
2102    
2103  </span>
2104  
2105  
2106
2107      </a>
2108    </li>
2109  
2110
2111              
2112            
2113              
2114                
2115  
2116  
2117  
2118  
2119    <li class="md-nav__item">
2120      <a href="../../strategies/keyword-search/" class="md-nav__link">
2121        
2122  
2123  
2124  <span class="md-ellipsis">
2125    
2126  
2127    Keyword Search
2128  
2129
2130    
2131  </span>
2132  
2133  
2134
2135      </a>
2136    </li>
2137  
2138
2139              
2140            
2141              
2142                
2143  
2144  
2145  
2146  
2147    <li class="md-nav__item">
2148      <a href="../../strategies/metadata-schema-validation/" class="md-nav__link">
2149        
2150  
2151  
2152  <span class="md-ellipsis">
2153    
2154  
2155    Metadata Schema Validation (Application Layer)
2156  
2157
2158    
2159  </span>
2160  
2161  
2162
2163      </a>
2164    </li>
2165  
2166
2167              
2168            
2169              
2170                
2171  
2172  
2173  
2174  
2175    <li class="md-nav__item">
2176      <a href="../../strategies/memory-management/" class="md-nav__link">
2177        
2178  
2179  
2180  <span class="md-ellipsis">
2181    
2182  
2183    Memory Management
2184  
2185
2186    
2187  </span>
2188  
2189  
2190
2191      </a>
2192    </li>
2193  
2194
2195              
2196            
2197              
2198                
2199  
2200  
2201  
2202  
2203    <li class="md-nav__item">
2204      <a href="../../strategies/multi-category-filters/" class="md-nav__link">
2205        
2206  
2207  
2208  <span class="md-ellipsis">
2209    
2210  
2211    Multi-Category/Tag Filters
2212  
2213
2214    
2215  </span>
2216  
2217  
2218
2219      </a>
2220    </li>
2221  
2222
2223              
2224            
2225              
2226                
2227  
2228  
2229  
2230  
2231    <li class="md-nav__item">
2232      <a href="../../strategies/privacy/" class="md-nav__link">
2233        
2234  
2235  
2236  <span class="md-ellipsis">
2237    
2238  
2239    Privacy Strategies
2240  
2241
2242    
2243  </span>
2244  
2245  
2246
2247      </a>
2248    </li>
2249  
2250
2251              
2252            
2253              
2254                
2255  
2256  
2257  
2258  
2259    <li class="md-nav__item">
2260      <a href="../../strategies/rebuilding/" class="md-nav__link">
2261        
2262  
2263  
2264  <span class="md-ellipsis">
2265    
2266  
2267    Rebuilding Chroma DB
2268  
2269
2270    
2271  </span>
2272  
2273  
2274
2275      </a>
2276    </li>
2277  
2278
2279              
2280            
2281              
2282                
2283  
2284  
2285  
2286  
2287    <li class="md-nav__item">
2288      <a href="../../strategies/time-based-queries/" class="md-nav__link">
2289        
2290  
2291  
2292  <span class="md-ellipsis">
2293    
2294  
2295    Time-based Queries
2296  
2297
2298    
2299  </span>
2300  
2301  
2302
2303      </a>
2304    </li>
2305  
2306
2307              
2308            
2309              
2310                
2311  
2312  
2313  
2314  
2315    
2316    
2317      
2318        
2319          
2320        
2321      
2322        
2323      
2324        
2325      
2326        
2327      
2328        
2329      
2330    
2331    
2332    
2333    
2334    <li class="md-nav__item md-nav__item--nested">
2335      
2336        
2337        
2338        <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_6_13" >
2339        
2340          
2341          <div class="md-nav__link md-nav__container">
2342            <a href="../../strategies/multi-tenancy/" class="md-nav__link ">
2343              
2344  
2345  
2346  <span class="md-ellipsis">
2347    
2348  
2349    Multi-Tenancy
2350  
2351
2352    
2353  </span>
2354  
2355  
2356
2357            </a>
2358            
2359              
2360              <label class="md-nav__link " for="__nav_6_13" id="__nav_6_13_label" tabindex="0">
2361                <span class="md-nav__icon md-icon"></span>
2362              </label>
2363            
2364          </div>
2365        
2366        <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_6_13_label" aria-expanded="false">
2367          <label class="md-nav__title" for="__nav_6_13">
2368            <span class="md-nav__icon md-icon"></span>
2369            
2370  
2371    Multi-Tenancy
2372  
2373
2374          </label>
2375          <ul class="md-nav__list" data-md-scrollfix>
2376            
2377              
2378            
2379              
2380                
2381  
2382  
2383  
2384  
2385    <li class="md-nav__item">
2386      <a href="../../strategies/multi-tenancy/authorization-model-impl-with-openfga/" class="md-nav__link">
2387        
2388  
2389  
2390  <span class="md-ellipsis">
2391    
2392  
2393    Implementing OpenFGA Authorization Model In Chroma
2394  
2395
2396    
2397  </span>
2398  
2399  
2400
2401      </a>
2402    </li>
2403  
2404
2405              
2406            
2407              
2408                
2409  
2410  
2411  
2412  
2413    <li class="md-nav__item">
2414      <a href="../../strategies/multi-tenancy/authorization-model-with-openfga/" class="md-nav__link">
2415        
2416  
2417  
2418  <span class="md-ellipsis">
2419    
2420  
2421    Chroma Authorization Model with OpenFGA
2422  
2423
2424    
2425  </span>
2426  
2427  
2428
2429      </a>
2430    </li>
2431  
2432
2433              
2434            
2435              
2436                
2437  
2438  
2439  
2440  
2441    <li class="md-nav__item">
2442      <a href="../../strategies/multi-tenancy/multi-user-basic-auth/" class="md-nav__link">
2443        
2444  
2445  
2446  <span class="md-ellipsis">
2447    
2448  
2449    Multi-User Basic Auth
2450  
2451
2452    
2453  </span>
2454  
2455  
2456
2457      </a>
2458    </li>
2459  
2460
2461              
2462            
2463              
2464                
2465  
2466  
2467  
2468  
2469    <li class="md-nav__item">
2470      <a href="../../strategies/multi-tenancy/naive-multi-tenancy/" class="md-nav__link">
2471        
2472  
2473  
2474  <span class="md-ellipsis">
2475    
2476  
2477    Naive Multi-tenancy Strategies
2478  
2479
2480    
2481  </span>
2482  
2483  
2484
2485      </a>
2486    </li>
2487  
2488
2489              
2490            
2491          </ul>
2492        </nav>
2493      
2494    </li>
2495  
2496
2497              
2498            
2499          </ul>
2500        </nav>
2501      
2502    </li>
2503  
2504
2505    
2506      
2507      
2508  
2509  
2510  
2511  
2512    
2513    
2514      
2515        
2516          
2517        
2518      
2519        
2520      
2521        
2522      
2523        
2524      
2525        
2526      
2527    
2528    
2529    
2530    
2531    <li class="md-nav__item md-nav__item--nested">
2532      
2533        
2534        
2535        <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_7" >
2536        
2537          
2538          <div class="md-nav__link md-nav__container">
2539            <a href="../../security/" class="md-nav__link ">
2540              
2541  
2542  
2543  <span class="md-ellipsis">
2544    
2545  
2546    Security
2547  
2548
2549    
2550  </span>
2551  
2552  
2553
2554            </a>
2555            
2556              
2557              <label class="md-nav__link " for="__nav_7" id="__nav_7_label" tabindex="0">
2558                <span class="md-nav__icon md-icon"></span>
2559              </label>
2560            
2561          </div>
2562        
2563        <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_7_label" aria-expanded="false">
2564          <label class="md-nav__title" for="__nav_7">
2565            <span class="md-nav__icon md-icon"></span>
2566            
2567  
2568    Security
2569  
2570
2571          </label>
2572          <ul class="md-nav__list" data-md-scrollfix>
2573            
2574              
2575            
2576              
2577                
2578  
2579  
2580  
2581  
2582    <li class="md-nav__item">
2583      <a href="../../security/auth-1.0.x/" class="md-nav__link">
2584        
2585  
2586  
2587  <span class="md-ellipsis">
2588    
2589  
2590    Authentication in Chroma v1.0.x
2591  
2592
2593    
2594  </span>
2595  
2596  
2597
2598      </a>
2599    </li>
2600  
2601
2602              
2603            
2604              
2605                
2606  
2607  
2608  
2609  
2610    <li class="md-nav__item">
2611      <a href="../../security/chroma-ssl-cert/" class="md-nav__link">
2612        
2613  
2614  
2615  <span class="md-ellipsis">
2616    
2617  
2618    SSL/TLS Certificates in Chroma
2619  
2620
2621    
2622  </span>
2623  
2624  
2625
2626      </a>
2627    </li>
2628  
2629
2630              
2631            
2632              
2633                
2634  
2635  
2636  
2637  
2638    <li class="md-nav__item">
2639      <a href="../../security/legacy-auth/" class="md-nav__link">
2640        
2641  
2642  
2643  <span class="md-ellipsis">
2644    
2645  
2646    Chroma-native Auth (Legacy)
2647  
2648
2649    
2650  </span>
2651  
2652  
2653
2654      </a>
2655    </li>
2656  
2657
2658              
2659            
2660              
2661                
2662  
2663  
2664  
2665  
2666    <li class="md-nav__item">
2667      <a href="../../security/ssl-proxies/" class="md-nav__link">
2668        
2669  
2670  
2671  <span class="md-ellipsis">
2672    
2673  
2674    SSL/TLS Proxy
2675  
2676
2677    
2678  </span>
2679  
2680  
2681
2682      </a>
2683    </li>
2684  
2685
2686              
2687            
2688          </ul>
2689        </nav>
2690      
2691    </li>
2692  
2693
2694    
2695      
2696      
2697  
2698  
2699  
2700  
2701    
2702    
2703      
2704        
2705      
2706    
2707    
2708    
2709    
2710    <li class="md-nav__item md-nav__item--nested">
2711      
2712        
2713        
2714        <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_8" >
2715        
2716          
2717          <label class="md-nav__link" for="__nav_8" id="__nav_8_label" tabindex="0">
2718            
2719  
2720  
2721  <span class="md-ellipsis">
2722    
2723  
2724    Ecosystem
2725  
2726
2727    
2728  </span>
2729  
2730  
2731
2732            <span class="md-nav__icon md-icon"></span>
2733          </label>
2734        
2735        <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_8_label" aria-expanded="false">
2736          <label class="md-nav__title" for="__nav_8">
2737            <span class="md-nav__icon md-icon"></span>
2738            
2739  
2740    Ecosystem
2741  
2742
2743          </label>
2744          <ul class="md-nav__list" data-md-scrollfix>
2745            
2746              
2747                
2748  
2749  
2750  
2751  
2752    <li class="md-nav__item">
2753      <a href="../../ecosystem/clients/" class="md-nav__link">
2754        
2755  
2756  
2757  <span class="md-ellipsis">
2758    
2759  
2760    Chroma Ecosystem Clients
2761  
2762
2763    
2764  </span>
2765  
2766  
2767
2768      </a>
2769    </li>
2770  
2771
2772              
2773            
2774          </ul>
2775        </nav>
2776      
2777    </li>
2778  
2779
2780    
2781      
2782      
2783  
2784  
2785  
2786  
2787    
2788    
2789      
2790        
2791      
2792        
2793      
2794    
2795    
2796    
2797    
2798    <li class="md-nav__item md-nav__item--nested">
2799      
2800        
2801        
2802        <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_9" >
2803        
2804          
2805          <label class="md-nav__link" for="__nav_9" id="__nav_9_label" tabindex="0">
2806            
2807  
2808  
2809  <span class="md-ellipsis">
2810    
2811  
2812    Contributing
2813  
2814
2815    
2816  </span>
2817  
2818  
2819
2820            <span class="md-nav__icon md-icon"></span>
2821          </label>
2822        
2823        <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_9_label" aria-expanded="false">
2824          <label class="md-nav__title" for="__nav_9">
2825            <span class="md-nav__icon md-icon"></span>
2826            
2827  
2828    Contributing
2829  
2830
2831          </label>
2832          <ul class="md-nav__list" data-md-scrollfix>
2833            
2834              
2835                
2836  
2837  
2838  
2839  
2840    <li class="md-nav__item">
2841      <a href="../../contributing/getting-started/" class="md-nav__link">
2842        
2843  
2844  
2845  <span class="md-ellipsis">
2846    
2847  
2848    Getting Started with Contributing to Chroma
2849  
2850
2851    
2852  </span>
2853  
2854  
2855
2856      </a>
2857    </li>
2858  
2859
2860              
2861            
2862              
2863                
2864  
2865  
2866  
2867  
2868    <li class="md-nav__item">
2869      <a href="../../contributing/useful-shortcuts/" class="md-nav__link">
2870        
2871  
2872  
2873  <span class="md-ellipsis">
2874    
2875  
2876    Useful Shortcuts for Contributors
2877  
2878
2879    
2880  </span>
2881  
2882  
2883
2884      </a>
2885    </li>
2886  
2887
2888              
2889            
2890          </ul>
2891        </nav>
2892      
2893    </li>
2894  
2895
2896    
2897      
2898      
2899  
2900  
2901  
2902  
2903    
2904    
2905      
2906        
2907          
2908        
2909      
2910    
2911    
2912    
2913    
2914    <li class="md-nav__item md-nav__item--nested">
2915      
2916        
2917        
2918        <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_10" >
2919        
2920          
2921          <div class="md-nav__link md-nav__container">
2922            <a href="../../faq/" class="md-nav__link ">
2923              
2924  
2925  
2926  <span class="md-ellipsis">
2927    
2928  
2929    FAQ
2930  
2931
2932    
2933  </span>
2934  
2935  
2936
2937            </a>
2938            
2939          </div>
2940        
2941        <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_10_label" aria-expanded="false">
2942          <label class="md-nav__title" for="__nav_10">
2943            <span class="md-nav__icon md-icon"></span>
2944            
2945  
2946    FAQ
2947  
2948
2949          </label>
2950          <ul class="md-nav__list" data-md-scrollfix>
2951            
2952              
2953            
2954          </ul>
2955        </nav>
2956      
2957    </li>
2958  
2959
2960    
2961  </ul>
2962</nav>
2963                  </div>
2964                </div>
2965              </div>
2966            
2967            
2968              
2969              <div class="md-sidebar md-sidebar--secondary" data-md-component="sidebar" data-md-type="toc" >
2970                <div class="md-sidebar__scrollwrap">
2971                  <div class="md-sidebar__inner">
2972                    
2973
2974  
2975
2976<nav class="md-nav md-nav--secondary" aria-label="On this page">
2977  
2978  
2979  
2980    
2981  
2982  
2983    <label class="md-nav__title" for="__toc">
2984      <span class="md-nav__icon md-icon"></span>
2985      On this page
2986    </label>
2987    <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
2988      
2989        <li class="md-nav__item">
2990  <a href="#client-implementations-and-source-repos" class="md-nav__link">
2991    <span class="md-ellipsis">
2992      
2993        Client implementations and source repos
2994      
2995    </span>
2996  </a>
2997  
2998</li>
2999      
3000        <li class="md-nav__item">
3001  <a href="#persistent-client" class="md-nav__link">
3002    <span class="md-ellipsis">
3003      
3004        Persistent Client
3005      
3006    </span>
3007  </a>
3008  
3009    <nav class="md-nav" aria-label="Persistent Client">
3010      <ul class="md-nav__list">
3011        
3012          <li class="md-nav__item">
3013  <a href="#uses-of-persistent-client" class="md-nav__link">
3014    <span class="md-ellipsis">
3015      
3016        Uses of Persistent Client
3017      
3018    </span>
3019  </a>
3020  
3021</li>
3022        
3023      </ul>
3024    </nav>
3025  
3026</li>
3027      
3028        <li class="md-nav__item">
3029  <a href="#http-client" class="md-nav__link">
3030    <span class="md-ellipsis">
3031      
3032        HTTP Client
3033      
3034    </span>
3035  </a>
3036  
3037    <nav class="md-nav" aria-label="HTTP Client">
3038      <ul class="md-nav__list">
3039        
3040          <li class="md-nav__item">
3041  <a href="#uses-of-http-client" class="md-nav__link">
3042    <span class="md-ellipsis">
3043      
3044        Uses of HTTP Client
3045      
3046    </span>
3047  </a>
3048  
3049</li>
3050        
3051          <li class="md-nav__item">
3052  <a href="#host-parameter-special-cases-python-only" class="md-nav__link">
3053    <span class="md-ellipsis">
3054      
3055        Host parameter special cases (Python-only)
3056      
3057    </span>
3058  </a>
3059  
3060</li>
3061        
3062      </ul>
3063    </nav>
3064  
3065</li>
3066      
3067        <li class="md-nav__item">
3068  <a href="#cloud-client" class="md-nav__link">
3069    <span class="md-ellipsis">
3070      
3071        Cloud Client
3072      
3073    </span>
3074  </a>
3075  
3076</li>
3077      
3078        <li class="md-nav__item">
3079  <a href="#ephemeral-client" class="md-nav__link">
3080    <span class="md-ellipsis">
3081      
3082        Ephemeral Client
3083      
3084    </span>
3085  </a>
3086  
3087</li>
3088      
3089        <li class="md-nav__item">
3090  <a href="#environment-variable-configured-client" class="md-nav__link">
3091    <span class="md-ellipsis">
3092      
3093        Environment Variable Configured Client
3094      
3095    </span>
3096  </a>
3097  
3098</li>
3099      
3100    </ul>
3101  
3102</nav>
3103                  </div>
3104                </div>
3105              </div>
3106            
3107          
3108          
3109            <div class="md-content" data-md-component="content">
3110              
3111              <article class="md-content__inner md-typeset">
3112                
3113                  
3114
3115
3116  
3117  
3118
3119
3120<h1 id="chroma-clients">Chroma Clients<a class="headerlink" href="#chroma-clients" title="Permanent link">&para;</a></h1>
3121<div class="admonition tip">
3122<p class="admonition-title">Chroma Settings Object</p>
3123<p>The below is only a partial list of Chroma configuration options. For full list check the code
3124<a href="https://github.com/chroma-core/chroma/blob/main/chromadb/config.py"><code>chromadb.config.Settings</code></a> or
3125the <a href="../configuration/">ChromaDB Configuration</a> page.</p>
3126</div>
3127<h2 id="client-implementations-and-source-repos">Client implementations and source repos<a class="headerlink" href="#client-implementations-and-source-repos" title="Permanent link">&para;</a></h2>
3128<table>
3129<thead>
3130<tr>
3131<th>Language</th>
3132<th>Constructors covered on this page</th>
3133<th>Source repository</th>
3134</tr>
3135</thead>
3136<tbody>
3137<tr>
3138<td>Python</td>
3139<td><code>PersistentClient</code>, <code>
3139HttpClient</code>, <code>AsyncHttpClient</code>, <code>CloudClient</code>, <code>EphemeralClient</code>, <code>Client</code></td>
3140<td><a href="https://github.com/chroma-core/chroma/tree/main/chromadb"><code>chroma-core/chroma</code></a></td>
3141</tr>
3142<tr>
3143<td>TypeScript</td>
3144<td><code>ChromaClient</code>, <code>CloudClient</code></td>
3145<td><a href="https://github.com/chroma-core/chroma/tree/main/clients/js"><code>chroma-core/chroma</code> (JS client)</a></td>
3146</tr>
3147<tr>
3148<td>Go</td>
3149<td><code>NewHTTPClient</code>, <code>NewCloudClient</code></td>
3150<td><a href="https://github.com/amikos-tech/chroma-go/tree/main/pkg/api/v2"><code>amikos-tech/chroma-go</code></a></td>
3151</tr>
3152<tr>
3153<td>Rust</td>
3154<td><code>ChromaHttpClient</code></td>
3155<td><a href="https://github.com/chroma-core/chroma/tree/main/rust/chroma"><code>chroma-core/chroma</code> (Rust crate)</a></td>
3156</tr>
3157</tbody>
3158</table>
3159<h2 id="persistent-client">Persistent Client<a class="headerlink" href="#persistent-client" title="Permanent link">&para;</a></h2>
3160<p>To create a local persistent client, use the <code>PersistentClient</code> class. This client stores data locally in a
3161directory on your machine at the path you specify.</p>
3162<div class="admonition tip">
3163<p class="admonition-title">Authentication</p>
3164<p>For authentication details see the <a href="../../security/auth-1.0.x/">Chroma-native Authentication</a> section.</p>
3165</div>
3166<div class="language-python highlight"><pre><span></span><code><span id="__span-0-1"><a id="__codelineno-0-1" name="__codelineno-0-1" href="#__codelineno-0-1"></a><span class="kn">import</span><span class="w"> </span><span class="nn">chromadb</span>
3167</span><span id="__span-0-2"><a id="__codelineno-0-2" name="__codelineno-0-2" href="#__codelineno-0-2"></a><span class="kn">from</span><span class="w"> </span><span class="nn">chromadb.config</span><span class="w"> </span><span class="kn">import</span> <span class="n">DEFAULT_TENANT</span><span class="p">,</span> <span class="n">DEFAULT_DATABASE</span><span class="p">,</span> <span class="n">Settings</span>
3168</span><span id="__span-0-3"><a id="__codelineno-0-3" name="__codelineno-0-3" href="#__codelineno-0-3"></a>
3169</span><span id="__span-0-4"><a id="__codelineno-0-4" name="__codelineno-0-4" href="#__codelineno-0-4"></a><span class="n">client</span> <span class="o">=</span> <span class="n">chromadb</span><span class="o">.</span><span class="n">PersistentClient</span><span class="p">(</span>
3170</span><span id="__span-0-5"><a id="__codelineno-0-5" name="__codelineno-0-5" href="#__codelineno-0-5"></a>    <span class="n">path</span><span class="o">=</span><span class="s2">&quot;test&quot;</span><span class="p">,</span>
3171</span><span id="__span-0-6"><a id="__codelineno-0-6" name="__codelineno-0-6" href="#__codelineno-0-6"></a>    <span class="n">settings</span><span class="o">=</span><span class="n">Settings</span><span class="p">(),</span>
3172</span><span id="__span-0-7"><a id="__codelineno-0-7" name="__codelineno-0-7" href="#__codelineno-0-7"></a>    <span class="n">tenant</span><span class="o">=</span><span class="n">DEFAULT_TENANT</span><span class="p">,</span>
3173</span><span id="__span-0-8"><a id="__codelineno-0-8" name="__codelineno-0-8" href="#__codelineno-0-8"></a>    <span class="n">database</span><span class="o">=</span><span class="n">DEFAULT_DATABASE</span><span class="p">,</span>
3174</span><span id="__span-0-9"><a id="__codelineno-0-9" name="__codelineno-0-9" href="#__codelineno-0-9"></a><span class="p">)</span>
3175</span></code></pre></div>
3176<p><strong>Parameters</strong>:</p>
3177<table>
3178<thead>
3179<tr>
3180<th>Parameter</th>
3181<th>Type</th>
3182<th>Description</th>
3183<th>Default / Allowed values</th>
3184</tr>
3185</thead>
3186<tbody>
3187<tr>
3188<td><code>path</code></td>
3189<td><code>str \| Path</code></td>
3190<td>Local path on the machine where Chroma runs. Created if it does not exist. Can be relative or absolute.</td>
3191<td><code>./chroma</code></td>
3192</tr>
3193<tr>
3194<td><code>settings</code></td>
3195<td><code>Settings \| None</code></td>
3196<td>Chroma settings object.</td>
3197<td><code>None</code> (uses <code>Settings()</code>)</td>
3198</tr>
3199<tr>
3200<td><code>tenant</code></td>
3201<td><code>str</code></td>
3202<td>Tenant to use.</td>
3203<td><code>default_tenant</code></td>
3204</tr>
3205<tr>
3206<td><code>database</code></td>
3207<td><code>str</code></td>
3208<td>Database to use.</td>
3209<td><code>default_database</code></td>
3210</tr>
3211</tbody>
3212</table>
3213<div class="admonition tip">
3214<p class="admonition-title">Positional Parameters</p>
3215<p>Chroma <code>PersistentClient</code>
3215 parameters are positional, unless keyword arguments are used.</p>
3216</div>
3217<h3 id="uses-of-persistent-client">Uses of Persistent Client<a class="headerlink" href="#uses-of-persistent-client" title="Permanent link">&para;</a></h3>
3218<p>The persistent client is useful for:</p>
3219<ul>
3220<li><strong>Local development</strong>: You can use the persistent client to develop locally and test out ChromaDB.</li>
3221<li><strong>Embedded applications</strong>: You can use the persistent client to embed ChromaDB in your application. This means that
3222  you can ship Chroma bundled with your product or services, thus simplifying the deployment process.</li>
3223<li><strong>Simplicity</strong>: If you do not wish to incur the complexities associated with setting up and operating a Chroma
3224  server (arguably Hosted-Chroma will resolve this).</li>
3225<li><strong>Data privacy</strong>: If you are working with sensitive data and do not want to store it on a remote server.</li>
3226<li><strong>Optimize performance</strong>: If you want to reduce latency.</li>
3227</ul>
3228<div class="admonition warn">
3229<p class="admonition-title">The right tool for the job</p>
3230<p>When evaluating the use of local <code>PersistentClient</code> one should always factor in the scale of the application. 
3231Similar to SQLite vs Postgres/MySQL, <code>PersistentClient</code> vs <code>HTTPClient</code> with Chroma server, application architectural
3232characteristics (such as complexity, scale, performance etc) should be considered when deciding to use one or the other.</p>
3233</div>
3234<h2 id="http-client">HTTP Client<a class="headerlink" href="#http-client" title="Permanent link">&para;</a></h2>
3235<p>Chroma also provides HTTP Client, suitable for use in a client-server mode. This client can be used to connect to a
3236remote ChromaDB server. The HTTP client can operate in synchronous or asynchronous mode (see examples below).</p>
3237<div class="admonition tip">
3238<p class="admonition-title">Authentication</p>
3239<p>For authentication details see the <a href="../../security/auth-1.0.x/">Chroma-native Authentication</a> section.</p>
3240</div>
3241<div class="tabbed-set tabbed-alternate" data-tabs="1:5"><input checked="checked" id="__tabbed_1_1" name="__tabbed_1" type="radio" /><input id="__tabbed_1_2" name="__tabbed_1" type="radio" /><input id="__tabbed_1_3" name="__tabbed_1" type="radio" /><input id="__tabbed_1_4" name="__tabbed_1" type="radio" /><input id="__tabbed_1_5" name="__tabbed_1" type="radio" /><div class="tabbed-labels"><label for="__tabbed_1_1">Python Sync</label><label for="__tabbed_1_2">Python Async</label><label for="__tabbed_1_3">TypeScript</label><label for="__tabbed_1_4">Go</label><label for="__tabbed_1_5">Rust</label></div>
3242<div class="tabbed-content">
3243<div class="tabbed-block">
3244<div class="language-python highlight"><pre><span></span><code><span id="__span-1-1"><a id="__codelineno-1-1" name="__codelineno-1-1" href="#__codelineno-1-1"></a><span class="kn">import</span><span class="w"> </span><span class="nn">chromadb</span>
3245</span><span id="__span-1-2"><a id="__codelineno-1-2" name="__codelineno-1-2" href="#__codelineno-1-2"></a><span class="kn">from</span><span class="w"> </span><span class="nn">chromadb.config</span><span class="w"> </span><span class="kn">import</span> <span class="n">DEFAULT_TENANT</span><span class="p">,</span> <span class="n">DEFAULT_DATABASE</span><span class="p">,</span> <span class="n">Settings</span>
3246</span><span id="__span-1-3"><a id="__codelineno-1-3" name="__codelineno-1-3" href="#__codelineno-1-3"></a>
3247</span><span id="__span-1-4"><a id="__codelineno-1-4" name="__codelineno-1-4" href="#__codelineno-1-4"></a><span class="n">client</span> <span class="o">=</span> <span class="n">chromadb</span><span class="o">.</span><span class="n">HttpClient</span><span class="p">(</span>
3248</span><span id="__span-1-5"><a id="__codelineno-1-5" name="__codelineno-1-5" href="#__codelineno-1-5"></a>    <span class="n">host</span><span class="o">=</span><span class="s2">&quot;localhost&quot;</span><span class="p">,</span>
3249</span><span id="__span-1-6"><a id="__codelineno-1-6" name="__codelineno-1-6" href="#__codelineno-1-6"></a>    <span class="n">port</span><span class="o">=</span><span class="mi">8000</span><span class="p">,</span>
3250</span><span id="__span-1-7"><a id="__codelineno-1-7" name="__codelineno-1-7" href="#__codelineno-1-7"></a>    <span class="n">ssl</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span>
3251</span><span id="__span-1-8"><a id="__codelineno-1-8" name="__codelineno-1-8" href="#__codelineno-1-8"></a>    <span class="n">headers</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
3252</span><span id="__span-1-9"><a id="__codelineno-1-9" name="__codelineno-1-9" href="#__codelineno-1-9"></a>    <span class="n">settings</span><span class="o">=</span><span class="n">Settings</span><span class="p">(),</span>
3253</span><span id="__span-1-10"><a id="__codelineno-1-10" name="__codelineno-1-10" href="#__codelineno-1-10"></a>    <span class="n">tenant</span><span class="o">=</span><span class="n">DEFAULT_TENANT</span><span class="p">,</span>
3254</span><span id="__span-1-11"><a id="__codelineno-1-11" name="__codelineno-1-11" href="#__codelineno-1-11"></a>    <span class="n">database</span><span class="o">=</span><span class="n">DEFAULT_DATABASE</span><span class="p">,</span>
3255</span><span id="__span-1-12"><a id="__codelineno-1-12" name="__codelineno-1-12" href="#__codelineno-1-12"></a><span class="p">)</span>
3256</span></code></pre></div>
3257<p><strong>Parameters</strong>:</p>
3258<table>
3259<thead>
3260<tr>
3261<th>Parameter</th>
3262<th>Type</th>
3263<th>Description</th>
3264<th>Default / Allowed values</th>
3265</tr>
3266</thead>
3267<tbody>
3268<tr>
3269<td><code>host</code></td>
3270<td><code>str</code></td>
3271<td>Hostname of the remote server. You can also pass a full URL (including a path prefix).</td>
3272<td><code>localhost</code></td>
3273</tr>
3274<tr>
3275<td><code>port</code></td>
3276<td><code>int</code></td>
3277<td>Port of the remote server.</td>
3278<td><code>8000</code></td>
3279</tr>
3280<tr>
3281<td><code>ssl</code></td>
3282<td><code>bool</code></td>
3283<td>Uses HTTPS when <code>True</code>.</td>
3284<td><code>False</code></td>
3285</tr>
3286<tr>
3287<td><code>headers</code></td>
3288<td><code>dict[str, str] \| None</code></td>
3289<td>Additional headers sent with each request (for example auth headers).</td>
3290<td><code>None</code></td>
3291</tr>
3292<tr>
3293<td><code>settings</code></td>
3294<td><code>Settings \| None</code></td>
3295<td>Chroma settings object.</td>
3296<td><code>None</code> (uses <code>Settings()</code>)</td>
3297</tr>
3298<tr>
3299<td><code>tenant</code></td>
3300<td><code>str</code></td>
3301<td>Tenant to use.</td>
3302<td><code>default_tenant</code></td>
3303</tr>
3304<tr>
3305<td><code>database</code></td>
3306<td><code>str</code></td>
3307<td>Database to use.</td>
3308<td><code>default_database</code></td>
3309</tr>
3310</tbody>
3311</table>
3312<div class="admonition tip">
3313<p class="admonition-title">Positional Parameters</p>
3314<p>Chroma <code>
3314HttpClient</code> parameters are positional, unless keyword arguments are used.</p>
3315</div>
3316</div>
3317<div class="tabbed-block">
3318<div class="language-python highlight"><pre><span></span><code><span id="__span-2-1"><a id="__codelineno-2-1" name="__codelineno-2-1" href="#__codelineno-2-1"></a><span class="kn">import</span><span class="w"> </span><span class="nn">asyncio</span>
3319</span><span id="__span-2-2"><a id="__codelineno-2-2" name="__codelineno-2-2" href="#__codelineno-2-2"></a><span class="kn">import</span><span class="w"> </span><span class="nn">chromadb</span>
3320</span><span id="__span-2-3"><a id="__codelineno-2-3" name="__codelineno-2-3" href="#__codelineno-2-3"></a><span class="kn">from</span><span class="w"> </span><span class="nn">chromadb.config</span><span class="w"> </span><span class="kn">import</span> <span class="n">DEFAULT_TENANT</span><span class="p">,</span> <span class="n">DEFAULT_DATABASE</span><span class="p">,</span> <span class="n">Settings</span>
3321</span><span id="__span-2-4"><a id="__codelineno-2-4" name="__codelineno-2-4" href="#__codelineno-2-4"></a><span class="c1"># Apply nest_asyncio to allow running nested event loops in jupyter notebook</span>
3322</span><span id="__span-2-5"><a id="__codelineno-2-5" name="__codelineno-2-5" href="#__codelineno-2-5"></a><span class="c1"># import nest_asyncio # import this if running in jupyter notebook</span>
3323</span><span id="__span-2-6"><a id="__codelineno-2-6" name="__codelineno-2-6" href="#__codelineno-2-6"></a><span class="c1"># nest_asyncio.apply() # apply this if running in jupyter notebook</span>
3324</span><span id="__span-2-7"><a id="__codelineno-2-7" name="__codelineno-2-7" href="#__codelineno-2-7"></a>
3325</span><span id="__span-2-8"><a id="__codelineno-2-8" name="__codelineno-2-8" href="#__codelineno-2-8"></a><span class="k">async</span> <span class="k">def</span><span class="w"> </span><span class="nf">list_collections</span><span class="p">():</span>
3326</span><span id="__span-2-9"><a id="__codelineno-2-9" name="__codelineno-2-9" href="#__codelineno-2-9"></a>    <span class="n">client</span> <span class="o">=</span> <span class="k">await</span> <span class="n">chromadb</span><span class="o">.</span><span class="n">
3326AsyncHttpClient</span><span class="p">(</span>
3327</span><span id="__span-2-10"><a id="__codelineno-2-10" name="__codelineno-2-10" href="#__codelineno-2-10"></a>        <span class="n">host</span><span class="o">=</span><span class="s2">&quot;localhost&quot;</span><span class="p">,</span>
3328</span><span id="__span-2-11"><a id="__codelineno-2-11" name="__codelineno-2-11" href="#__codelineno-2-11"></a>        <span class="n">port</span><span class="o">=</span><span class="mi">8000</span><span class="p">,</span>
3329</span><span id="__span-2-12"><a id="__codelineno-2-12" name="__codelineno-2-12" href="#__codelineno-2-12"></a>        <span class="n">ssl</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span>
3330</span><span id="__span-2-13"><a id="__codelineno-2-13" name="__codelineno-2-13" href="#__codelineno-2-13"></a>        <span class="n">headers</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
3331</span><span id="__span-2-14"><a id="__codelineno-2-14" name="__codelineno-2-14" href="#__codelineno-2-14"></a>        <span class="n">settings</span><span class="o">=</span><span class="n">Settings</span><span class="p">(),</span>
3332</span><span id="__span-2-15"><a id="__codelineno-2-15" name="__codelineno-2-15" href="#__codelineno-2-15"></a>        <span class="n">tenant</span><span class="o">=</span><span class="n">DEFAULT_TENANT</span><span class="p">,</span>
3333</span><span id="__span-2-16"><a id="__codelineno-2-16" name="__codelineno-2-16" href="#__codelineno-2-16"></a>        <span class="n">database</span><span class="o">=</span><span class="n">DEFAULT_DATABASE</span><span class="p">,</span>
3334</span><span id="__span-2-17"><a id="__codelineno-2-17" name="__codelineno-2-17" href="#__codelineno-2-17"></a>    <span class="p">)</span>
3335</span><span id="__span-2-18"><a id="__codelineno-2-18" name="__codelineno-2-18" href="#__codelineno-2-18"></a>    <span class="k">return</span> <span class="k">await</span> <span class="n">client</span><span class="o">.</span><span class="n">list_collections</span><span class="p">()</span>
3336</span><span id="__span-2-19"><a id="__codelineno-2-19" name="__codelineno-2-19" href="#__codelineno-2-19"></a>
3337</span><span id="__span-2-20"><a id="__codelineno-2-20" name="__codelineno-2-20" href="#__codelineno-2-20"></a><span class="n">result</span> <span class="o">=</span> <span class="n">asyncio</span><span class="o">.</span><span class="n">run</span><span class="p">(</span><span class="n">list_collections</span><span class="p">())</span>
3338</span><span id="__span-2-21"><a id="__codelineno-2-21" name="__codelineno-2-21" href="#__codelineno-2-21"></a><span class="nb">print</span><span class="p">(</span><span class="n">result</span><span class="p">)</span>
3339</span></code></pre></div>
3340<p><strong>Parameters</strong>:</p>
3341<table>
3342<thead>
3343<tr>
3344<th>Parameter</th>
3345<th>Type</th>
3346<th>Description</th>
3347<th>Default / Allowed values</th>
3348</tr>
3349</thead>
3350<tbody>
3351<tr>
3352<td><code>host</code></td>
3353<td><code>str</code></td>
3354<td>Hostname of the remote server. You can also pass a full URL (including a path prefix).</td>
3355<td><code>localhost</code></td>
3356</tr>
3357<tr>
3358<td><code>port</code></td>
3359<td><code>int</code></td>
3360<td>Port of the remote server.</td>
3361<td><code>8000</code></td>
3362</tr>
3363<tr>
3364<td><code>ssl</code></td>
3365<td><code>bool</code></td>
3366<td>Uses HTTPS when <code>True</code>.</td>
3367<td><code>False</code></td>
3368</tr>
3369<tr>
3370<td><code>headers</code></td>
3371<td><code>dict[str, str] \| None</code></td>
3372<td>Additional headers sent with each request (for example auth headers).</td>
3373<td><code>None</code></td>
3374</tr>
3375<tr>
3376<td><code>settings</code></td>
3377<td><code>Settings \| None</code></td>
3378<td>Chroma settings object.</td>
3379<td><code>None</code> (uses <code>Settings()</code>)</td>
3380</tr>
3381<tr>
3382<td><code>tenant</code></td>
3383<td><code>str</code></td>
3384<td>Tenant to use.</td>
3385<td><code>default_tenant</code></td>
3386</tr>
3387<tr>
3388<td><code>database</code></td>
3389<td><code>str</code></td>
3390<td>Database to use.</td>
3391<td><code>default_database</code></td>
3392</tr>
3393</tbody>
3394</table>
3395<div class="admonition tip">
3396<p class="admonition-title">Positional Parameters</p>
3397<p>Chroma <code>
3397AsyncHttpClient</code> parameters are positional, unless keyword arguments are used.</p>
3398</div>
3399</div>
3400<div class="tabbed-block">
3401<div class="language-typescript highlight"><pre><span></span><code><span id="__span-3-1"><a id="__codelineno-3-1" name="__codelineno-3-1" href="#__codelineno-3-1"></a><span class="k">import</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="nx">ChromaClient</span><span class="w"> </span><span class="p">}</span><span class="w"> </span><span class="kr">from</span><span class="w"> </span><span class="s2">&quot;chromadb&quot;</span><span class="p">;</span>
3402</span><span id="__span-3-2"><a id="__codelineno-3-2" name="__codelineno-3-2" href="#__codelineno-3-2"></a>
3403</span><span id="__span-3-3"><a id="__codelineno-3-3" name="__codelineno-3-3" href="#__codelineno-3-3"></a><span class="kd">const</span><span class="w"> </span><span class="nx">client</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="ow">new</span><span class="w"> </span><span class="nx">ChromaClient</span><span class="p">({</span>
3404</span><span id="__span-3-4"><a id="__codelineno-3-4" name="__codelineno-3-4" href="#__codelineno-3-4"></a><span class="w">    </span><span class="nx">path</span><span class="o">:</span><span class="w"> </span><span class="s2">&quot;http://localhost:8000&quot;</span><span class="p">,</span>
3405</span><span id="__span-3-5"><a id="__codelineno-3-5" name="__codelineno-3-5" href="#__codelineno-3-5"></a><span class="w">    </span><span class="nx">auth</span><span class="o">:</span><span class="w"> </span><span class="p">{</span>
3406</span><span id="__span-3-6"><a id="__codelineno-3-6" name="__codelineno-3-6" href="#__codelineno-3-6"></a><span class="w">        </span><span class="nx">provider</span><span class="o">:</span><span class="w"> </span><span class="s2">&quot;token&quot;</span><span class="p">,</span>
3407</span><span id="__span-3-7"><a id="__codelineno-3-7" name="__codelineno-3-7" href="#__codelineno-3-7"></a><span class="w">        </span><span class="nx">credentials</span><span class="o">:</span><span class="w"> </span><span class="s2">&quot;your_token_here&quot;</span><span class="p">,</span>
3408</span><span id="__span-3-8"><a id="__codelineno-3-8" name="__codelineno-3-8" href="#__codelineno-3-8"></a><span class="w">        </span><span class="nx">tokenHeaderType</span><span class="o">:</span><span class="w"> </span><span class="s2">&quot;X_CHROMA_TOKEN&quot;</span><span class="p">,</span>
3409</span><span id="__span-3-9"><a id="__codelineno-3-9" name="__codelineno-3-9" href="#__codelineno-3-9"></a><span class="w">    </span><span class="p">},</span>
3410</span><span id="__span-3-10"><a id="__codelineno-3-10" name="__codelineno-3-10" href="#__codelineno-3-10"></a><span class="w">    </span><span class="nx">tenant</span><span class="o">:</span><span class="w"> </span><span class="s2">&quot;default_tenant&quot;</span><span class="p">,</span>
3411</span><span id="__span-3-11"><a id="__codelineno-3-11" name="__codelineno-3-11" href="#__codelineno-3-11"></a><span class="w">    </span><span class="nx">database</span><span class="o">:</span><span class="w"> </span><span class="s2">&quot;default_database&quot;</span><span class="p">,</span>
3412</span><span id="__span-3-12"><a id="__codelineno-3-12" name="__codelineno-3-12" href="#__codelineno-3-12"></a><span class="p">});</span>
3413</span></code></pre></div>
3414<p><strong>Parameters</strong>:</p>
3415<table>
3416<thead>
3417<tr>
3418<th>Parameter</th>
3419<th>Type</th>
3420<th>Description</th>
3421<th>Default / Allowed values</th>
3422</tr>
3423</thead>
3424<tbody>
3425<tr>
3426<td><code>path</code></td>
3427<td><code>string</code></td>
3428<td>Base URL for the Chroma API.</td>
3429<td><code>http://localhost:8000</code></td>
3430</tr>
3431<tr>
3432<td><code>auth</code></td>
3433<td><code>AuthOptions</code></td>
3434<td>Authentication config.</td>
3435<td>Optional. <code>provider</code> values: <code>"basic"</code> or <code>"token"</code></td>
3436</tr>
3437<tr>
3438<td><code>fetchOptions</code></td>
3439<td><code>RequestInit</code></td>
3440<td>Fetch options passed to HTTP calls (for example custom headers).</td>
3441<td>Optional</td>
3442</tr>
3443<tr>
3444<td><code>tenant</code></td>
3445<td><code>string</code></td>
3446<td>Tenant to use.</td>
3447<td><code>default_tenant</code></td>
3448</tr>
3449<tr>
3450<td><code>database</code></td>
3451<td><code>string</code></td>
3452<td>Database to use.</td>
3453<td><code>default_database</code></td>
3454</tr>
3455</tbody>
3456</table>
3457</div>
3458<div class="tabbed-block">
3459<p><div class="language-bash highlight"><pre><span></span><code><span id="__span-4-1"><a id="__codelineno-4-1" name="__codelineno-4-1" href="#__codelineno-4-1"></a>go<span class="w"> </span>get<span class="w"> </span>github.com/amikos-tech/chroma-go@latest
3460</span></code></pre></div>
3461<div class="language-go highlight"><pre><span></span><code><span id="__span-5-1"><a id="__codelineno-5-1" name="__codelineno-5-1" href="#__codelineno-5-1"></a><span class="kn">package</span><span class="w"> </span><span class="nx">main</span>
3462</span><span id="__span-5-2"><a id="__codelineno-5-2" name="__codelineno-5-2" href="#__codelineno-5-2"></a>
3463</span><span id="__span-5-3"><a id="__codelineno-5-3" name="__codelineno-5-3" href="#__codelineno-5-3"></a><span class="kn">
3463import</span><span class="w"> </span><span class="p">(</span>
3464</span><span id="__span-5-4"><a id="__codelineno-5-4" name="__codelineno-5-4" href="#__codelineno-5-4"></a><span class="w">    </span><span class="s">&quot;context&quot;</span>
3465</span><span id="__span-5-5"><a id="__codelineno-5-5" name="__codelineno-5-5" href="#__codelineno-5-5"></a><span class="w">    </span><span class="s">&quot;log&quot;</span>
3466</span><span id="__span-5-6"><a id="__codelineno-5-6" name="__codelineno-5-6" href="#__codelineno-5-6"></a>
3467</span><span id="__span-5-7"><a id="__codelineno-5-7" name="__codelineno-5-7" href="#__codelineno-5-7"></a><span class="w">    </span><span class="nx">chroma</span><span class="w"> </span><span class="s">&quot;github.com/amikos-tech/chroma-go/pkg/api/v2&quot;</span>
3468</span><span id="__span-5-8"><a id="__codelineno-5-8" name="__codelineno-5-8" href="#__codelineno-5-8"></a><span class="p">)</span>
3469</span><span id="__span-5-9"><a id="__codelineno-5-9" name="__codelineno-5-9" href="#__codelineno-5-9"></a>
3470</span><span id="__span-5-10"><a id="__codelineno-5-10" name="__codelineno-5-10" href="#__codelineno-5-10"></a><span class="kd">func</span><span class="w"> </span><span class="nx">main</span><span class="p">()</span><span class="w"> </span><span class="p">{</span>
3471</span><span id="__span-5-11"><a id="__codelineno-5-11" name="__codelineno-5-11" href="#__codelineno-5-11"></a><span class="w">    </span><span class="nx">client</span><span class="p">,</span><span class="w"> </span><span class="nx">err</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="nx">chroma</span><span class="p">.</span><span class="nx">NewHTTPClient</span><span class="p">(</span>
3472</span><span id="__span-5-12"><a id="__codelineno-5-12" name="__codelineno-5-12" href="#__codelineno-5-12"></a><span class="w">        </span><span class="nx">chroma</span><span class="p">.</span><span class="nx">WithBaseURL</span><span class="p">(</span><span class="s">&quot;http://localhost:8000&quot;</span><span class="p">),</span>
3473</span><span id="__span-5-13"><a id="__codelineno-5-13" name="__codelineno-5-13" href="#__codelineno-5-13"></a><span class="w">        </span><span class="nx">chroma</span><span class="p">.</span><span class="nx">WithDefaultDatabaseAndTenant</span><span class="p">(),</span>
3474</span><span id="__span-5-14"><a id="__codelineno-5-14" name="__codelineno-5-14" href="#__codelineno-5-14"></a><span class="w">    </span><span class="p">)</span>
3475</span><span id="__span-5-15"><a id="__codelineno-5-15" name="__codelineno-5-15" href="#__codelineno-5-15"></a><span class="w">    </span><span class="k">if</span><span class="w"> </span><span class="nx">err</span><span class="w"> </span><span class="o">!=</span><span class="w"> </span><span class="kc">nil</span><span class="w"> </span><span class="p">{</span>
3476</span><span id="__span-5-16"><a id="__codelineno-5-16" name="__codelineno-5-16" href="#__codelineno-5-16"></a><span class="w">        </span><span class="nx">log</span><span class="p">.</span><span class="nx">Fatalf</span><span class="p">(</span><span class="s">&quot;Error creating client: %s \n&quot;</span><span class="p">,</span><span class="w"> </span><span class="nx">err</span><span class="p">)</span>
3477</span><span id="__span-5-17"><a id="__codelineno-5-17" name="__codelineno-5-17" href="#__codelineno-5-17"></a><span class="w">    </span><span class="p">}</span>
3478</span><span id="__span-5-18"><a id="__codelineno-5-18" name="__codelineno-5-18" href="#__codelineno-5-18"></a><span class="w">    </span><span class="k">if</span><span class="w"> </span><span class="nx">err</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="nx">client</span><span class="p">.</span><span class="nx">Heartbeat</span><span class="p">(</span><span class="nx">context</span><span class="p">.</span><span class="nx">TODO</span><span class="p">());</span><span class="w"> </span><span class="nx">err</span><span class="w"> </span><span class="o">!=</span><span class="w"> </span><span class="kc">nil</span><span class="w"> </span><span class="p">{</span>
3479</span><span id="__span-5-19"><a id="__codelineno-5-19" name="__codelineno-5-19" href="#__codelineno-5-19"></a><span class="w">        </span><span class="nx">log</span><span class="p">.</span><span class="nx">Fatalf</span><span class="p">(</span><span class="s">&quot;Error connecting: %s \n&quot;</span><span class="p">,</span><span class="w"> </span><span class="nx">err</span><span class="p">)</span>
3480</span><span id="__span-5-20"><a id="__codelineno-5-20" name="__codelineno-5-20" href="#__codelineno-5-20"></a><span class="w">    </span><span class="p">}</span>
3481</span><span id="__span-5-21"><a id="__codelineno-5-21" name="__codelineno-5-21" href="#__codelineno-5-21"></a><span class="p">}</span>
3482</span></code></pre></div></p>
3483<p><strong>Parameters</strong>:</p>
3484<table>
3485<thead>
3486<tr>
3487<th>Option</th>
3488<th>Type</th>
3489<th>Description</th>
3490<th>Default / Allowed values</th>
3491</tr>
3492</thead>
3493<tbody>
3494<tr>
3495<td><code>WithBaseURL()</code></td>
3496<td><code>func(string) ClientOption</code></td>
3497<td>Sets Chroma endpoint URL. <code>/api/v2</code> is appended if missing.</td>
3498<td>Default base URL is <code>http://localhost:8000/api/v2</code></td>
3499</tr>
3500<tr>
3501<td><code>WithAuth()</code></td>
3502<td><code>func(CredentialsProvider) ClientOption</code></td>
3503<td>Sets auth provider (see <a href="https://go-client.chromadb.dev/auth/">Go auth docs</a>).</td>
3504<td>Optional</td>
3505</tr>
3506<tr>
3507<td><code>WithDatabaseAndTenant()</code></td>
3508<td><code>func(database string, tenant string) ClientOption</code></td>
3509<td>Sets database and tenant explicitly.</td>
3510<td>Optional</td>
3511</tr>
3512<tr>
3513<td><code>WithDatabaseAndTenantFromEnv()</code></td>
3514<td><code>func() ClientOption</code></td>
3515<td>Reads <code>CHROMA_DATABASE</code> and <code>CHROMA_TENANT</code> when present.</td>
3516<td>Applied by default in <code>NewHTTPClient</code></td>
3517</tr>
3518<tr>
3519<td><code>WithDefaultDatabaseAndTenant()</code></td>
3520<td><code>func() ClientOption</code></td>
3521<td>Fills missing values with defaults.</td>
3522<td><code>default_database</code> and <code>default_tenant</code></td>
3523</tr>
3524<tr>
3525<td><code>WithTimeout()</code></td>
3526<td><code>func(time.Duration) ClientOption</code></td>
3527<td>Sets request timeout.</td>
3528<td>Optional</td>
3529</tr>
3530</tbody>
3531</table>
3532</div>
3533<div class="tabbed-block">
3534<p><div class="language-bash highlight"><pre><span></span><code><span id="__span-6-1"><a id="__codelineno-6-1" name="__codelineno-6-1" href="#__codelineno-6-1"></a>cargo<span class="w"> </span>add<span class="w"> </span>chroma
3535</span></code></pre></div>
3536<div class="language-rust highlight"><pre><span></span><code><span id="__span-7-1"><a id="__codelineno-7-1" name="__codelineno-7-1" href="#__codelineno-7-1"></a><span class="k">
3536use</span><span class="w"> </span><span class="n">chroma</span><span class="p">::{</span><span class="n">ChromaHttpClient</span><span class="p">,</span><span class="w"> </span><span class="n">ChromaHttpClientOptions</span><span class="p">};</span>
3537</span><span id="__span-7-2"><a id="__codelineno-7-2" name="__codelineno-7-2" href="#__codelineno-7-2"></a>
3538</span><span id="__span-7-3"><a id="__codelineno-7-3" name="__codelineno-7-3" href="#__codelineno-7-3"></a><span class="cp">#[tokio::main]</span>
3539</span><span id="__span-7-4"><a id="__codelineno-7-4" name="__codelineno-7-4" href="#__codelineno-7-4"></a><span class="k">async</span><span class="w"> </span><span class="k">fn</span><span class="w"> </span><span class="nf">main</span><span class="p">()</span><span class="w"> </span><span class="p">-&gt;</span><span class="w"> </span><span class="nc">anyhow</span><span class="p">::</span><span class="nb">Result</span><span class="o">&lt;</span><span class="p">()</span><span class="o">&gt;</span><span class="w"> </span><span class="p">{</span>
3540</span><span id="__span-7-5"><a id="__codelineno-7-5" name="__codelineno-7-5" href="#__codelineno-7-5"></a><span class="w">    </span><span class="kd">let</span><span class="w"> </span><span class="n">client</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">ChromaHttpClient</span><span class="p">::</span><span class="n">new</span><span class="p">(</span><span class="n">ChromaHttpClientOptions</span><span class="p">::</span><span class="n">default</span><span class="p">());</span>
3541</span><span id="__span-7-6"><a id="__codelineno-7-6" name="__codelineno-7-6" href="#__codelineno-7-6"></a><span class="w">    </span><span class="kd">let</span><span class="w"> </span><span class="n">heartbeat</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">client</span><span class="p">.</span><span class="n">heartbeat</span><span class="p">().</span><span class="k">await</span><span class="o">?</span><span class="p">;</span>
3542</span><span id="__span-7-7"><a id="__codelineno-7-7" name="__codelineno-7-7" href="#__codelineno-7-7"></a><span class="w">    </span><span class="fm">println!</span><span class="p">(</span><span class="s">&quot;Server timestamp: {}&quot;</span><span class="p">,</span><span class="w"> </span><span class="n">heartbeat</span><span class="p">);</span>
3543</span><span id="__span-7-8"><a id="__codelineno-7-8" name="__codelineno-7-8" href="#__codelineno-7-8"></a><span class="w">    </span><span class="nb">Ok</span><span class="p">(())</span>
3544</span><span id="__span-7-9"><a id="__codelineno-7-9" name="__codelineno-7-9" href="#__codelineno-7-9"></a><span class="p">}</span>
3545</span></code></pre></div></p>
3546<p><strong>Parameters</strong> (<code>ChromaHttpClientOptions</code>):</p>
3547<table>
3548<thead>
3549<tr>
3550<th>Parameter</th>
3551<th>Type</th>
3552<th>Description</th>
3553<th>Default / Allowed values</th>
3554</tr>
3555</thead>
3556<tbody>
3557<tr>
3558<td><code>endpoint</code></td>
3559<td><code>reqwest::Url</code></td>
3560<td>Server base URL.</td>
3561<td><code>http://localhost:8000</code></td>
3562</tr>
3563<tr>
3564<td><code>auth_method</code></td>
3565<td><code>ChromaAuthMethod</code></td>
3566<td>Authentication strategy.</td>
3567<td><code>ChromaAuthMethod::None</code></td>
3568</tr>
3569<tr>
3570<td><code>retry_options</code></td>
3571<td><code>ChromaRetryOptions</code></td>
3572<td>Retry/backoff behavior for failed requests.</td>
3573<td><code>max_retries=3</code>, <code>min_delay=200ms</code>, <code>max_delay=5s</code>, <code>jitter=true</code></td>
3574</tr>
3575<tr>
3576<td><code>tenant_id</code></td>
3577<td><code>Option&lt;String&gt;</code></td>
3578<td>Tenant identifier override.</td>
3579<td><code>None</code> (resolved from identity when possible)</td>
3580</tr>
3581<tr>
3582<td><code>database_name</code></td>
3583<td><code>Option&lt;String&gt;</code></td>
3584<td>Database name override.</td>
3585<td><code>None</code> (resolved when possible; explicit value recommended if multiple DBs are accessible)</td>
3586</tr>
3587</tbody>
3588</table>
3589<p>You can also construct a client from environment variables (<code>CHROMA_ENDPOINT</code>, <code>CHROMA_TENANT</code>, <code>CHROMA_DATABASE</code>):</p>
3590<div class="language-rust highlight"><pre><span></span><code><span id="__span-8-1"><a id="__codelineno-8-1" name="__codelineno-8-1" href="#__codelineno-8-1"></a><span class="kd">let</span><span class="w"> </span><span class="n">client</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">ChromaHttpClient</span><span class="p">::</span><span class="n">from_env</span><span class="p">()</span><span class="o">?</span><span class="p">;</span>
3591</span></code></pre></div>
3592</div>
3593</div>
3594</div>
3595<h3 id="uses-of-http-client">Uses of HTTP Client<a class="headerlink" href="#uses-of-http-client" title="Permanent link">&para;</a></h3>
3596<p>The HTTP client is ideal for when you want to scale your application or move off of local machine storage. It is
3597important to note that there are trade-offs associated with using HTTP client:</p>
3598<ul>
3599<li>Network latency - The time it takes to send a request to the server and receive a response.</li>
3600<li>Serialization and deserialization overhead - The time it takes to convert data to a format that can be sent over the
3601  network and then convert it back to its original format.</li>
3602<li>Security - The data is sent over the network, so it is important to ensure that the connection is secure (we recommend
3603  using both HTTPS and authentication).</li>
3604<li>Availability - The server must be available for the client to connect to it.</li>
3605<li>Bandwidth usage - The amount of data sent over the network.</li>
3606<li>Data privacy and compliance - Storing data on a remote server may require compliance with data protection laws and
3607  regulations.</li>
3608<li>Difficulty in debugging - Debugging network issues can be more difficult than debugging local issues. The same applies
3609  to server-side issues.</li>
3610</ul>
3611<h3 id="host-parameter-special-cases-python-only">Host parameter special cases (Python-only)<a class="headerlink" href="#host-parameter-special-cases-python-only" title="Permanent link">&para;</a></h3>
3612<p>The <code>host</code> parameter supports a more advanced syntax than just the hostname. You can specify the whole endpoint URL (
3613without the API paths), e.g. <code>
3613https://chromadb.example.com:8000/my_server/path/</code>. This is useful when you want to use a
3614reverse proxy or load balancer in front of your ChromaDB server.</p>
3615<h2 id="cloud-client">Cloud Client<a class="headerlink" href="#cloud-client" title="Permanent link">&para;</a></h2>
3616<p>The <code>CloudClient</code> connects to <a href="https://trychroma.com">Chroma Cloud</a>. It handles authentication and endpoint
3617configuration automatically.</p>
3618<div class="admonition note">
3619<p class="admonition-title">Environment Variables</p>
3620<p>Cloud environment variable handling differs by language:</p>
3621<table>
3622<thead>
3623<tr>
3624<th>Language</th>
3625<th>API key</th>
3626<th>Tenant / database</th>
3627</tr>
3628</thead>
3629<tbody>
3630<tr>
3631<td>Python</td>
3632<td><code>api_key</code> arg or <code>CHROMA_API_KEY</code></td>
3633<td><code>tenant</code>/<code>database</code> args, or <code>CHROMA_TENANT</code>/<code>CHROMA_DATABASE</code>, or auto-resolved from scoped credentials</td>
3634</tr>
3635<tr>
3636<td>TypeScript</td>
3637<td><code>apiKey</code> arg or <code>CHROMA_API_KEY</code></td>
3638<td>Constructor args (<code>tenant</code>, <code>database</code>)</td>
3639</tr>
3640<tr>
3641<td>Go</td>
3642<td><code>WithCloudAPIKey()</code> or <code>CHROMA_API_KEY</code></td>
3643<td><code>WithDatabaseAndTenant()</code> or <code>CHROMA_TENANT</code> + <code>CHROMA_DATABASE</code></td>
3644</tr>
3645<tr>
3646<td>Rust</td>
3647<td><code>ChromaHttpClientOptions::cloud(...)</code> or <code>CHROMA_API_KEY</code></td>
3648<td>Explicit options or <code>CHROMA_TENANT</code>/<code>CHROMA_DATABASE</code>; otherwise resolved from identity when possible</td>
3649</tr>
3650</tbody>
3651</table>
3652</div>
3653<div class="tabbed-set tabbed-alternate" data-tabs="2:4"><input checked="checked" id="__tabbed_2_1" name="__tabbed_2" type="radio" /><input id="__tabbed_2_2" name="__tabbed_2" type="radio" /><input id="__tabbed_2_3" name="__tabbed_2" type="radio" /><input id="__tabbed_2_4" name="__tabbed_2" type="radio" /><div class="tabbed-labels"><label for="__tabbed_2_1">Python</label><label for="__tabbed_2_2">TypeScript</label><label for="__tabbed_2_3">Go</label><label for="__tabbed_2_4">Rust</label></div>
3654<div class="tabbed-content">
3655<div class="tabbed-block">
3656<div class="language-python highlight"><pre><span></span><code><span id="__span-9-1"><a id="__codelineno-9-1" name="__codelineno-9-1" href="#__codelineno-9-1"></a><span class="kn">import</span><span class="w"> </span><span class="nn">chromadb</span>
3657</span><span id="__span-9-2"><a id="__codelineno-9-2" name="__codelineno-9-2" href="#__codelineno-9-2"></a>
3658</span><span id="__span-9-3"><a id="__codelineno-9-3" name="__codelineno-9-3" href="#__codelineno-9-3"></a><span class="c1"># Minimal — auto-resolves tenant/database from API key</span>
3659</span><span id="__span-9-4"><a id="__codelineno-9-4" name="__codelineno-9-4" href="#__codelineno-9-4"></a><span class="n">client</span> <span class="o">=</span> <span class="n">chromadb</span><span class="o">.</span><span class="n">CloudClient</span><span class="p">(</span><span class="n">api_key</span><span class="o">=</span><span class="s2">&quot;ck-your-api-key&quot;</span><span class="p">)</span>
3660</span><span id="__span-9-5"><a id="__codelineno-9-5" name="__codelineno-9-5" href="#__codelineno-9-5"></a>
3661</span><span id="__span-9-6"><a id="__codelineno-9-6" name="__codelineno-9-6" href="#__codelineno-9-6"></a><span class="c1"># Explicit tenant and database</span>
3662</span><span id="__span-9-7"><a id="__codelineno-9-7" name="__codelineno-9-7" href="#__codelineno-9-7"></a><span class="n">client</span> <span class="o">=</span> <span class="n">chromadb</span><span class="o">.</span><span class="n">CloudClient</span><span class="p">(</span>
3663</span><span id="__span-9-8"><a id="__codelineno-9-8" name="__codelineno-9-8" href="#__codelineno-9-8"></a>    <span class="n">tenant</span><span class="o">=</span><span class="s2">&quot;your-tenant-id&quot;</span><span class="p">,</span>
3664</span><span id="__span-9-9"><a id="__codelineno-9-9" name="__codelineno-9-9" href="#__codelineno-9-9"></a>    <span class="n">database</span><span class="o">=</span><span class="s2">&quot;your-database-name&quot;</span><span class="p">,</span>
3665</span><span id="__span-9-10"><a id="__codelineno-9-10" name="__codelineno-9-10" href="#__codelineno-9-10"></a>    <span class="n">api_key</span><span class="o">=</span><span class="s2">&quot;ck-your-api-key&quot;</span><span class="p">,</span>
3666</span><span id="__span-9-11"><a id="__codelineno-9-11" name="__codelineno-9-11" href="#__codelineno-9-11"></a><span class="p">)</span>
3667</span></code></pre></div>
3668<p><strong>Parameters</strong>:</p>
3669<table>
3670<thead>
3671<tr>
3672<th>Parameter</th>
3673<th>Type</th>
3674<th>Description</th>
3675<th>Default / Allowed values</th>
3676</tr>
3677</thead>
3678<tbody>
3679<tr>
3680<td><code>api_key</code></td>
3681<td><code>str \| None</code></td>
3682<td>Chroma Cloud API key.</td>
3683<td>Required. Falls back to <code>CHROMA_API_KEY</code></td>
3684</tr>
3685<tr>
3686<td><code>tenant</code></td>
3687<td><code>str \| None</code></td>
3688<td>Tenant identifier.</td>
3689<td>Falls back to <code>CHROMA_TENANT</code>, then auth-based resolution</td>
3690</tr>
3691<tr>
3692<td><code>database</code></td>
3693<td><code>str \| None</code></td>
3694<td>Database name.</td>
3695<td>Falls back to <code>CHROMA_DATABASE</code>, then auth-based resolution</td>
3696</tr>
3697<tr>
3698<td><code>settings</code></td>
3699<td><code>Settings \| None</code></td>
3700<td>Settings override.</td>
3701<td><code>None</code> (uses <code>Settings()</code>)</td>
3702</tr>
3703<tr>
3704<td><code>cloud_host</code></td>
3705<td><code>str</code></td>
3706<td>Cloud API hostname (keyword-only; primarily for testing).</td>
3707<td><code>api.trychroma.com</code></td>
3708</tr>
3709<tr>
3710<td><code>cloud_port</code></td>
3711<td><code>int</code></td>
3712<td>Cloud API port (keyword-only; primarily for testing).</td>
3713<td><code>443</code></td>
3714</tr>
3715<tr>
3716<td><code>enable_ssl</code></td>
3717<td><code>bool</code></td>
3718<td>Enables TLS (keyword-only; primarily for testing).</td>
3719<td><code>True</code></td>
3720</tr>
3721</tbody>
3722</table>
3723</div>
3724<div class="tabbed-block">
3725<div class="language-typescript highlight"><pre><span></span><code><span id="__span-10-1"><a id="__codelineno-10-1" name="__codelineno-10-1" href="#__codelineno-10-1"></a><span class="k">
3725import</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="nx">CloudClient</span><span class="w"> </span><span class="p">}</span><span class="w"> </span><span class="kr">from</span><span class="w"> </span><span class="s2">&quot;chromadb&quot;</span><span class="p">;</span>
3726</span><span id="__span-10-2"><a id="__codelineno-10-2" name="__codelineno-10-2" href="#__codelineno-10-2"></a>
3727</span><span id="__span-10-3"><a id="__codelineno-10-3" name="__codelineno-10-3" href="#__codelineno-10-3"></a><span class="kd">const</span><span class="w"> </span><span class="nx">client</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="ow">new</span><span class="w"> </span><span class="nx">CloudClient</span><span class="p">({</span>
3728</span><span id="__span-10-4"><a id="__codelineno-10-4" name="__codelineno-10-4" href="#__codelineno-10-4"></a><span class="w">    </span><span class="nx">apiKey</span><span class="o">:</span><span class="w"> </span><span class="s2">&quot;ck-your-api-key&quot;</span><span class="p">,</span>
3729</span><span id="__span-10-5"><a id="__codelineno-10-5" name="__codelineno-10-5" href="#__codelineno-10-5"></a><span class="w">    </span><span class="nx">tenant</span><span class="o">:</span><span class="w"> </span><span class="s2">&quot;your-tenant-id&quot;</span><span class="p">,</span>
3730</span><span id="__span-10-6"><a id="__codelineno-10-6" name="__codelineno-10-6" href="#__codelineno-10-6"></a><span class="w">    </span><span class="nx">database</span><span class="o">:</span><span class="w"> </span><span class="s2">&quot;your-database-name&quot;</span><span class="p">,</span>
3731</span><span id="__span-10-7"><a id="__codelineno-10-7" name="__codelineno-10-7" href="#__codelineno-10-7"></a><span class="p">});</span>
3732</span></code></pre></div>
3733<p><strong>Parameters</strong>:</p>
3734<table>
3735<thead>
3736<tr>
3737<th>Parameter</th>
3738<th>Type</th>
3739<th>Description</th>
3740<th>Default / Allowed values</th>
3741</tr>
3742</thead>
3743<tbody>
3744<tr>
3745<td><code>apiKey</code></td>
3746<td><code>string \| undefined</code></td>
3747<td>Chroma Cloud API key.</td>
3748<td>Required. Falls back to <code>CHROMA_API_KEY</code></td>
3749</tr>
3750<tr>
3751<td><code>tenant</code></td>
3752<td><code>string \| undefined</code></td>
3753<td>Tenant identifier.</td>
3754<td>Optional. Defaults to <code>default_tenant</code> in underlying <code>ChromaClient</code></td>
3755</tr>
3756<tr>
3757<td><code>database</code></td>
3758<td><code>string \| undefined</code></td>
3759<td>Database name.</td>
3760<td>Optional. Defaults to <code>default_database</code> in underlying <code>ChromaClient</code></td>
3761</tr>
3762<tr>
3763<td><code>cloudHost</code></td>
3764<td><code>string \| undefined</code></td>
3765<td>Cloud host prefix.</td>
3766<td><code>https://api.trychroma.com</code></td>
3767</tr>
3768<tr>
3769<td><code>cloudPort</code></td>
3770<td><code>string \| undefined</code></td>
3771<td>Cloud port suffix.</td>
3772<td><code>8000</code></td>
3773</tr>
3774</tbody>
3775</table>
3776</div>
3777<div class="tabbed-block">
3778<div class="language-go highlight"><pre><span></span><code><span id="__span-11-1"><a id="__codelineno-11-1" name="__codelineno-11-1" href="#__codelineno-11-1"></a><span class="kn">package</span><span class="w"> </span><span class="nx">main</span>
3779</span><span id="__span-11-2"><a id="__codelineno-11-2" name="__codelineno-11-2" href="#__codelineno-11-2"></a>
3780</span><span id="__span-11-3"><a id="__codelineno-11-3" name="__codelineno-11-3" href="#__codelineno-11-3"></a><span class="kn">import</span><span class="w"> </span><span class="p">(</span>
3781</span><span id="__span-11-4"><a id="__codelineno-11-4" name="__codelineno-11-4" href="#__codelineno-11-4"></a><span class="w">    </span><span class="s">&quot;context&quot;</span>
3782</span><span id="__span-11-5"><a id="__codelineno-11-5" name="__codelineno-11-5" href="#__codelineno-11-5"></a><span class="w">    </span><span class="s">&quot;log&quot;</span>
3783</span><span id="__span-11-6"><a id="__codelineno-11-6" name="__codelineno-11-6" href="#__codelineno-11-6"></a>
3784</span><span id="__span-11-7"><a id="__codelineno-11-7" name="__codelineno-11-7" href="#__codelineno-11-7"></a><span class="w">    </span><span class="nx">chroma</span><span class="w"> </span><span class="s">&quot;github.com/amikos-tech/chroma-go/pkg/api/v2&quot;</span>
3785</span><span id="__span-11-8"><a id="__codelineno-11-8" name="__codelineno-11-8" href="#__codelineno-11-8"></a><span class="p">)</span>
3786</span><span id="__span-11-9"><a id="__codelineno-11-9" name="__codelineno-11-9" href="#__codelineno-11-9"></a>
3787</span><span id="__span-11-10"><a id="__codelineno-11-10" name="__codelineno-11-10" href="#__codelineno-11-10"></a><span class="kd">func</span><span class="w"> </span><span class="nx">main</span><span class="p">()</span><span class="w"> </span><span class="p">{</span>
3788</span><span id="__span-11-11"><a id="__codelineno-11-11" name="__codelineno-11-11" href="#__codelineno-11-11"></a><span class="w">    </span><span class="nx">client</span><span class="p">,</span><span class="w"> </span><span class="nx">err</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="nx">chroma</span><span class="p">.</span><span class="nx">NewCloudClient</span><span class="p">(</span>
3789</span><span id="__span-11-12"><a id="__codelineno-11-12" name="__codelineno-11-12" href="#__codelineno-11-12"></a><span class="w">        </span><span class="nx">chroma</span><span class="p">.</span><span class="nx">WithCloudAPIKey</span><span class="p">(</span><span class="s">&quot;ck-your-api-key&quot;</span><span class="p">),</span>
3790</span><span id="__span-11-13"><a id="__codelineno-11-13" name="__codelineno-11-13" href="#__codelineno-11-13"></a><span class="w">        </span><span class="nx">chroma</span><span class="p">.</span><span class="nx">WithDatabaseAndTenant</span><span class="p">(</span><span class="s">&quot;your-database&quot;</span><span class="p">,</span><span class="w"> </span><span class="s">&quot;your-tenant-id&quot;</span><span class="p">),</span>
3791</span><span id="__span-11-14"><a id="__codelineno-11-14" name="__codelineno-11-14" href="#__codelineno-11-14"></a><span class="w">    </span><span class="p">)</span>
3792</span><span id="__span-11-15"><a id="__codelineno-11-15" name="__codelineno-11-15" href="#__codelineno-11-15"></a><span class="w">    </span><span class="k">if</span><span class="w"> </span><span class="nx">err</span><span class="w"> </span><span class="o">!=</span><span class="w"> </span><span class="kc">nil</span><span class="w"> </span><span class="p">{</span>
3793</span><span id="__span-11-16"><a id="__codelineno-11-16" name="__codelineno-11-16" href="#__codelineno-11-16"></a><span class="w">        </span><span class="nx">log</span><span class="p">.</span><span class="nx">Fatalf</span><span class="p">(</span><span class="s">&quot;Error creating cloud client: %s \n&quot;</span><span class="p">,</span><span class="w"> </span><span class="nx">err</span><span class="p">)</span>
3794</span><span id="__span-11-17"><a id="__codelineno-11-17" name="__codelineno-11-17" href="#__codelineno-11-17"></a><span class="w">    </span><span class="p">}</span>
3795</span><span id="__span-11-18"><a id="__codelineno-11-18" name="__codelineno-11-18" href="#__codelineno-11-18"></a><span class="w">    </span><span class="k">if</span><span class="w"> </span><span class="nx">err</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="nx">client</span><span class="p">.</span><span class="nx">Heartbeat</span><span class="p">(</span><span class="nx">context</span><span class="p">.</span><span class="nx">TODO</span><span class="p">());</span><span class="w"> </span><span class="nx">err</span><span class="w"> </span><span class="o">!=</span><span class="w"> </span><span class="kc">nil</span><span class="w"> </span><span class="p">{</span>
3796</span><span id="__span-11-19"><a id="__codelineno-11-19" name="__codelineno-11-19" href="#__codelineno-11-19"></a><span class="w">        </span><span class="nx">log</span><span class="p">.</span><span class="nx">Fatalf</span><span class="p">(</span><span class="s">&quot;Error connecting: %s \n&quot;</span><span class="p">,</span><span class="w"> </span><span class="nx">err</span><span class="p">)</span>
3797</span><span id="__span-11-20"><a id="__codelineno-11-20" name="__codelineno-11-20" href="#__codelineno-11-20"></a><span class="w">    </span><span class="p">}</span>
3798</span><span id="__span-11-21"><a id="__codelineno-11-21" name="__codelineno-11-21" href="#__codelineno-11-21"></a><span class="p">}</span>
3799</span></code></pre></div>
3800<p><strong>Parameters</strong>:</p>
3801<table>
3802<thead>
3803<tr>
3804<th>Option</th>
3805<th>Type</th>
3806<th>Description</th>
3807<th>Default / Allowed values</th>
3808</tr>
3809</thead>
3810<tbody>
3811<tr>
3812<td><code>WithCloudAPIKey()</code></td>
3813<td><code>func(string) ClientOption</code></td>
3814<td>Sets Chroma Cloud API key.</td>
3815<td>Falls back to <code>CHROMA_API_KEY</code></td>
3816</tr>
3817<tr>
3818<td><code>WithDatabaseAndTenant()</code></td>
3819<td><code>func(database string, tenant string) ClientOption</code></td>
3820<td>Sets database and tenant explicitly.</td>
3821<td>Required unless both env vars are set</td>
3822</tr>
3823<tr>
3824<td><code>WithDatabaseAndTenantFromEnv()</code></td>
3825<td><code>func() ClientOption</code></td>
3826<td>Reads <code>CHROMA_DATABASE</code> and <code>CHROMA_TENANT</code>.</td>
3827<td>Applied by default in <code>NewCloudClient</code></td>
3828</tr>
3829<tr>
3830<td><code>WithTimeout()</code></td>
3831<td><code>func(time.Duration) ClientOption</code></td>
3832<td>Sets request timeout.</td>
3833<td>Optional</td>
3834</tr>
3835</tbody>
3836</table>
3837<p><code>NewCloudClient</code> requires non-default tenant and database values and also requires an API key.</p>
3838<details class="note">
3839<summary>Go Client Package</summary>
3840<p>The Go client is maintained at <a href="https://github.com/amikos-tech/chroma-go"><code>amikos-tech/chroma-go</code></a>
3841and has not yet been moved to <code>chroma-core</code>. Use the <code>github.com/amikos-tech/chroma-go/pkg/api/v2</code>
3842import path.</p>
3843</details>
3844</div>
3845<div class="tabbed-block">
3846<div class="language-rust highlight"><pre><span></span><code><span id="__span-12-1"><a id="__codelineno-12-1" name="__codelineno-12-1" href="#__codelineno-12-1"></a><span class="k">
3846use</span><span class="w"> </span><span class="n">chroma</span><span class="p">::{</span><span class="n">ChromaHttpClient</span><span class="p">,</span><span class="w"> </span><span class="n">ChromaHttpClientOptions</span><span class="p">};</span>
3847</span><span id="__span-12-2"><a id="__codelineno-12-2" name="__codelineno-12-2" href="#__codelineno-12-2"></a>
3848</span><span id="__span-12-3"><a id="__codelineno-12-3" name="__codelineno-12-3" href="#__codelineno-12-3"></a><span class="cp">#[tokio::main]</span>
3849</span><span id="__span-12-4"><a id="__codelineno-12-4" name="__codelineno-12-4" href="#__codelineno-12-4"></a><span class="k">async</span><span class="w"> </span><span class="k">fn</span><span class="w"> </span><span class="nf">main</span><span class="p">()</span><span class="w"> </span><span class="p">-&gt;</span><span class="w"> </span><span class="nc">anyhow</span><span class="p">::</span><span class="nb">Result</span><span class="o">&lt;</span><span class="p">()</span><span class="o">&gt;</span><span class="w"> </span><span class="p">{</span>
3850</span><span id="__span-12-5"><a id="__codelineno-12-5" name="__codelineno-12-5" href="#__codelineno-12-5"></a><span class="w">    </span><span class="c1">// Explicit API key and database</span>
3851</span><span id="__span-12-6"><a id="__codelineno-12-6" name="__codelineno-12-6" href="#__codelineno-12-6"></a><span class="w">    </span><span class="kd">let</span><span class="w"> </span><span class="n">options</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">ChromaHttpClientOptions</span><span class="p">::</span><span class="n">cloud</span><span class="p">(</span>
3852</span><span id="__span-12-7"><a id="__codelineno-12-7" name="__codelineno-12-7" href="#__codelineno-12-7"></a><span class="w">        </span><span class="s">&quot;ck-your-api-key&quot;</span><span class="p">,</span>
3853</span><span id="__span-12-8"><a id="__codelineno-12-8" name="__codelineno-12-8" href="#__codelineno-12-8"></a><span class="w">        </span><span class="s">&quot;your-database-name&quot;</span><span class="p">,</span>
3854</span><span id="__span-12-9"><a id="__codelineno-12-9" name="__codelineno-12-9" href="#__codelineno-12-9"></a><span class="w">    </span><span class="p">)</span><span class="o">?</span><span class="p">;</span>
3855</span><span id="__span-12-10"><a id="__codelineno-12-10" name="__codelineno-12-10" href="#__codelineno-12-10"></a><span class="w">    </span><span class="kd">let</span><span class="w"> </span><span class="n">client</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">ChromaHttpClient</span><span class="p">::</span><span class="n">new</span><span class="p">(</span><span class="n">options</span><span class="p">);</span>
3856</span><span id="__span-12-11"><a id="__codelineno-12-11" name="__codelineno-12-11" href="#__codelineno-12-11"></a>
3857</span><span id="__span-12-12"><a id="__codelineno-12-12" name="__codelineno-12-12" href="#__codelineno-12-12"></a><span class="w">    </span><span class="c1">// Or from environment variables (CHROMA_API_KEY, CHROMA_DATABASE, etc.)</span>
3858</span><span id="__span-12-13"><a id="__codelineno-12-13" name="__codelineno-12-13" href="#__codelineno-12-13"></a><span class="w">    </span><span class="kd">let</span><span class="w"> </span><span class="n">client</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">ChromaHttpClient</span><span class="p">::</span><span class="n">cloud</span><span class="p">()</span><span class="o">?</span><span class="p">;</span>
3859</span><span id="__span-12-14"><a id="__codelineno-12-14" name="__codelineno-12-14" href="#__codelineno-12-14"></a>
3860</span><span id="__span-12-15"><a id="__codelineno-12-15" name="__codelineno-12-15" href="#__codelineno-12-15"></a><span class="w">    </span><span class="kd">let</span><span class="w"> </span><span class="n">heartbeat</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">client</span><span class="p">.</span><span class="n">heartbeat</span><span class="p">().</span><span class="k">await</span><span class="o">?</span><span class="p">;</span>
3861</span><span id="__span-12-16"><a id="__codelineno-12-16" name="__codelineno-12-16" href="#__codelineno-12-16"></a><span class="w">    </span><span class="fm">println!</span><span class="p">(</span><span class="s">&quot;Server timestamp: {}&quot;</span><span class="p">,</span><span class="w"> </span><span class="n">heartbeat</span><span class="p">);</span>
3862</span><span id="__span-12-17"><a id="__codelineno-12-17" name="__codelineno-12-17" href="#__codelineno-12-17"></a><span class="w">    </span><span class="nb">Ok</span><span class="p">(())</span>
3863</span><span id="__span-12-18"><a id="__codelineno-12-18" name="__codelineno-12-18" href="#__codelineno-12-18"></a><span class="p">}</span>
3864</span></code></pre></div>
3865<p><strong>Parameters</strong> (<code>ChromaHttpClientOptions::cloud()</code>):</p>
3866<table>
3867<thead>
3868<tr>
3869<th>Parameter</th>
3870<th>Type</th>
3871<th>Description</th>
3872<th>Default / Allowed values</th>
3873</tr>
3874</thead>
3875<tbody>
3876<tr>
3877<td><code>api_key</code></td>
3878<td><code>impl Into&lt;
3878String&gt;</code></td>
3879<td>Chroma Cloud API key.</td>
3880<td>Required</td>
3881</tr>
3882<tr>
3883<td><code>database_name</code></td>
3884<td><code>impl Into&lt;String&gt;</code></td>
3885<td>Database name used for collection operations.</td>
3886<td>Required</td>
3887</tr>
3888</tbody>
3889</table>
3890<p><strong>Environment-based</strong> (<code>ChromaHttpClient::cloud()</code>):</p>
3891<table>
3892<thead>
3893<tr>
3894<th>Variable</th>
3895<th>Required</th>
3896<th>Description</th>
3897<th>Default / Allowed values</th>
3898</tr>
3899</thead>
3900<tbody>
3901<tr>
3902<td><code>CHROMA_API_KEY</code></td>
3903<td>Yes</td>
3904<td>Cloud API key.</td>
3905<td>None</td>
3906</tr>
3907<tr>
3908<td><code>CHROMA_ENDPOINT</code></td>
3909<td>No</td>
3910<td>Cloud endpoint override.</td>
3911<td><code>https://api.trychroma.com</code></td>
3912</tr>
3913<tr>
3914<td><code>CHROMA_TENANT</code></td>
3915<td>No</td>
3916<td>Tenant override.</td>
3917<td>If omitted, resolved from identity when possible</td>
3918</tr>
3919<tr>
3920<td><code>CHROMA_DATABASE</code></td>
3921<td>No</td>
3922<td>Database override.</td>
3923<td>If omitted, resolved from identity when possible</td>
3924</tr>
3925</tbody>
3926</table>
3927</div>
3928</div>
3929</div>
3930<h2 id="ephemeral-client">Ephemeral Client<a class="headerlink" href="#ephemeral-client" title="Permanent link">&para;</a></h2>
3931<p>Ephemeral client is a client that does not store any data on disk. It is useful for fast prototyping and testing. To get
3932started with an ephemeral client, use the <code>EphemeralClient</code> class.</p>
3933<div class="language-python highlight"><pre><span></span><code><span id="__span-13-1"><a id="__codelineno-13-1" name="__codelineno-13-1" href="#__codelineno-13-1"></a><span class="kn">import</span><span class="w"> </span><span class="nn">chromadb</span>
3934</span><span id="__span-13-2"><a id="__codelineno-13-2" name="__codelineno-13-2" href="#__codelineno-13-2"></a><span class="kn">from</span><span class="w"> </span><span class="nn">chromadb.config</span><span class="w"> </span><span class="kn">import</span> <span class="n">DEFAULT_TENANT</span><span class="p">,</span> <span class="n">DEFAULT_DATABASE</span><span class="p">,</span> <span class="n">Settings</span>
3935</span><span id="__span-13-3"><a id="__codelineno-13-3" name="__codelineno-13-3" href="#__codelineno-13-3"></a>
3936</span><span id="__span-13-4"><a id="__codelineno-13-4" name="__codelineno-13-4" href="#__codelineno-13-4"></a><span class="n">client</span> <span class="o">=</span> <span class="n">chromadb</span><span class="o">.</span><span class="n">EphemeralClient</span><span class="p">(</span>
3937</span><span id="__span-13-5"><a id="__codelineno-13-5" name="__codelineno-13-5" href="#__codelineno-13-5"></a>    <span class="n">settings</span><span class="o">=</span><span class="n">Settings</span><span class="p">(),</span>
3938</span><span id="__span-13-6"><a id="__codelineno-13-6" name="__codelineno-13-6" href="#__codelineno-13-6"></a>    <span class="n">tenant</span><span class="o">=</span><span class="n">DEFAULT_TENANT</span><span class="p">,</span>
3939</span><span id="__span-13-7"><a id="__codelineno-13-7" name="__codelineno-13-7" href="#__codelineno-13-7"></a>    <span class="n">database</span><span class="o">=</span><span class="n">DEFAULT_DATABASE</span><span class="p">,</span>
3940</span><span id="__span-13-8"><a id="__codelineno-13-8" name="__codelineno-13-8" href="#__codelineno-13-8"></a><span class="p">)</span>
3941</span></code></pre></div>
3942<p><strong>Parameters</strong>:</p>
3943<table>
3944<thead>
3945<tr>
3946<th>Parameter</th>
3947<th>Type</th>
3948<th>Description</th>
3949<th>Default / Allowed values</th>
3950</tr>
3951</thead>
3952<tbody>
3953<tr>
3954<td><code>settings</code></td>
3955<td><code>Settings \| None</code></td>
3956<td>Chroma settings object.</td>
3957<td><code>None</code> (uses <code>Settings()</code>)</td>
3958</tr>
3959<tr>
3960<td><code>tenant</code></td>
3961<td><code>str</code></td>
3962<td>Tenant to use.</td>
3963<td><code>default_tenant</code></td>
3964</tr>
3965<tr>
3966<td><code>database</code></td>
3967<td><code>str</code></td>
3968<td>Database to use.</td>
3969<td><code>default_database</code></td>
3970</tr>
3971</tbody>
3972</table>
3973<div class="admonition tip">
3974<p class="admonition-title">Positional Parameters</p>
3975<p>Chroma <code>EphemeralClient</code>
3975 parameters are positional, unless keyword arguments are used.</p>
3976</div>
3977<h2 id="environment-variable-configured-client">Environment Variable Configured Client<a class="headerlink" href="#environment-variable-configured-client" title="Permanent link">&para;</a></h2>
3978<p>You can also configure the client using environment variables. This is useful when you want to configure any of the
3979client options listed above via environment variables.</p>
3980<div class="language-python highlight"><pre><span></span><code><span id="__span-14-1"><a id="__codelineno-14-1" name="__codelineno-14-1" href="#__codelineno-14-1"></a><span class="kn">import</span><span class="w"> </span><span class="nn">chromadb</span>
3981</span><span id="__span-14-2"><a id="__codelineno-14-2" name="__codelineno-14-2" href="#__codelineno-14-2"></a>
3982</span><span id="__span-14-3"><a id="__codelineno-14-3" name="__codelineno-14-3" href="#__codelineno-14-3"></a><span class="c1"># Uses configured defaults from environment/.env/settings.</span>
3983</span><span id="__span-14-4"><a id="__codelineno-14-4" name="__codelineno-14-4" href="#__codelineno-14-4"></a><span class="n">client</span> <span class="o">=</span> <span class="n">chromadb</span><span class="o">.</span><span class="n">Client</span><span class="p">()</span>
3984</span></code></pre></div>
3985<p><strong>Parameters</strong>:</p>
3986<table>
3987<thead>
3988<tr>
3989<th>Parameter</th>
3990<th>Type</th>
3991<th>Description</th>
3992<th>Default / Allowed values</th>
3993</tr>
3994</thead>
3995<tbody>
3996<tr>
3997<td><code>settings</code></td>
3998<td><code>Settings</code></td>
3999<td>Settings object for environment and runtime configuration.</td>
4000<td>Current global settings (<code>chromadb.get_settings()</code>)</td>
4001</tr>
4002<tr>
4003<td><code>tenant</code></td>
4004<td><code>str</code></td>
4005<td>Tenant to use.</td>
4006<td><code>default_tenant</code></td>
4007</tr>
4008<tr>
4009<td><code>database</code></td>
4010<td><code>str</code></td>
4011<td>Database to use.</td>
4012<td><code>default_database</code></td>
4013</tr>
4014</tbody>
4015</table>
4016<div class="admonition tip">
4017<p class="admonition-title">Positional Parameters</p>
4018<p>Chroma <code>Client</code> parameters are positional, unless keyword arguments are used.</p>
4019</div>
4020
4021
4022
4023
4024
4025
4026
4027  
4028    
4029  
4030  
4031
4032
4033  <aside class="md-source-file">
4034    
4035      
4036  <span class="md-source-file__fact">
4037    <span class="md-icon" title="Last update">
4038      <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M21 13.1c-.1 0-.3.1-.4.2l-1 1 2.1 2.1 1-1c.2-.2.2-.6 0-.8l-1.3-1.3c-.1-.1-.2-.2-.4-.2m-1.9 1.8-6.1 6V23h2.1l6.1-6.1zM12.5 7v5.2l4 2.4-1 1L11 13V7zM11 21.9c-5.1-.5-9-4.8-9-9.9C2 6.5 6.5 2 12 2c5.3 0 9.6 4.1 10 9.3-.3-.1-.6-.2-1-.2s-.7.1-1 .2C19.6 7.2 16.2 4 12 4c-4.4 0-8 3.6-8 8 0 4.1 3.1 7.5 7.1 7.9l-.1.2z"/></svg>
4039    </span>
4040    <span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-date" title="February 20, 2026 21:22:47 UTC">February 20, 2026</span>
4041  </span>
4042
4043    
4044    
4045    
4046    
4047  </aside>
4048
4049
4050  
4051
4052
4053
4054
4055                
4056              </article>
4057            </div>
4058          
4059          
4060<script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script>
4060
4061        </div>
4062        
4063      </main>
4064      
4065        <footer class="md-footer">
4066  
4067  <div class="md-footer-meta md-typeset">
4068    <div class="md-footer-meta__inner md-grid">
4069      <div class="md-copyright">
4070  
4071    <div class="md-copyright__highlight">
4072      Amikos Tech LTD, 2025 (Chroma contributors)
4073    </div>
4074  
4075  
4076    Made with
4077    <a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener">
4078      Material for MkDocs
4079    </a>
4080  
4081</div>
4082      
4083        
4084<div class="md-social">
4085  
4086    
4087    
4088    
4089    
4090    <a href="https://twitter.com/AmikosTech" target="_blank" rel="noopener" title="Amikos on Twitter" class="md-social__link">
4091      <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="M459.4 151.7c.3 4.5.3 9.1.3 13.6 0 138.7-105.6 298.6-298.6 298.6-59.5 0-114.7-17.2-161.1-47.1 8.4 1 16.6 1.3 25.3 1.3 49.1 0 94.2-16.6 130.3-44.8-46.1-1-84.8-31.2-98.1-72.8 6.5 1 13 1.6 19.8 1.6 9.4 0 18.8-1.3 27.6-3.6-48.1-9.7-84.1-52-84.1-103v-1.3c14 7.8 30.2 12.7 47.4 13.3-28.3-18.8-46.8-51-46.8-87.4 0-19.5 5.2-37.4 14.3-53C87.4 130.8 165 172.4 252.1 176.9c-1.6-7.8-2.6-15.9-2.6-24C249.5 95.1 296.3 48 354.4 48c30.2 0 57.5 12.7 76.7 33.1 23.7-4.5 46.5-13.3 66.6-25.3-7.8 24.4-24.4 44.8-46.1 57.8 21.1-2.3 41.6-8.1 60.4-16.2-14.3 20.8-32.2 39.3-52.6 54.3"/></svg>
4092    </a>
4093  
4094    
4095    
4096    
4097    
4098    <a href="https://github.com/amikos-tech" target="_blank" rel="noopener" title="Amikos on GitHub" class="md-social__link">
4099      <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>
4100    </a>
4101  
4102    
4103    
4104    
4105    
4106    <a href="https://medium.com/@amikostech" target="_blank" rel="noopener" title="Amikos on Medium" class="md-social__link">
4107      <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="M369.4 32c43.4 0 78.6 35.2 78.6 78.6v83.8c-1.9-.1-3.8-.2-5.7-.2h-.4c-10 0-22.3 2.4-31.1 6.8-10 4.6-18.7 11.5-26 20.6-11.8 14.6-18.9 34.3-20.6 56.4-.1.7-.1 1.3-.2 2s-.1 1.2-.1 1.9c-.1 1.2-.1 2.4-.1 3.6 0 1.9-.1 3.8 0 5.8 1.2 50.1 28.2 90.2 76.3 90.2 2.7 0 5.3-.1 7.9-.4v20.4c0 43.4-35.2 78.6-78.6 78.6L78.6 480C35.2 480 0 444.8 0 401.4V110.6C0 67.2 35.2 32 78.6 32zM82.3 138.9l.3.1c13.2 3 19.8 7.4 19.8 23.4v187.2c0 16-6.7 20.4-19.9 23.4l-.3.1v2.8H135v-2.8l-.3-.1c-13.2-3-19.9-7.4-19.9-23.4V173.3l86.1 202.5h4.9l88.6-208.2v186.6c-1.1 12.6-7.8 16.5-19.7 19.2l-.3.1v2.7h91.9v-2.7l-.3-.1c-11.9-2.7-18.7-6.6-19.9-19.2l-.1-191.8h.1c0-16 6.7-20.4 19.9-23.4l.3-.1v-2.7h-72.2l-67 157.4-67-157.4H82.3zM448 340.3c-25.1-7.4-43-35.1-41.2-67.8h41.1v67.8zm-6.4-135.6c2.3 0 4.4.3 6.4.9V263h-40.2c1.5-33.6 13.6-57.9 33.8-58.3"/></svg>
4108    </a>
4109  
4110</div>
4111      
4112    </div>
4113  </div>
4114</footer>
4115      
4116    </div>
4117    <div class="md-dialog" data-md-component="dialog">
4118      <div class="md-dialog__inner md-typeset"></div>
4119    </div>
4120    
4121      <div class="md-progress" data-md-component="progress" role="progressbar"></div>
4122    
4123    
4124      <div class="md-consent" data-md-component="consent" id="__consent" hidden>
4125        <div class="md-consent__overlay"></div>
4126        <aside class="md-consent__inner">
4127          <form class="md-consent__form md-grid md-typeset" name="consent">
4128            
4129
4130
4131  
4132
4133
4134<h4>
4134Cookie consent</h4>
4135<p>We use cookies for analytics purposes. By continuing to use this website, you agree to their use.</p>
4136<input class="md-toggle" type="checkbox" id="__settings" >
4137<div class="md-consent__settings">
4138  <ul class="task-list">
4139    
4140    
4141      
4142        
4143  
4144  
4145    
4146    
4147  
4148  <li class="task-list-item">
4149    <label class="task-list-control">
4150      <input type="checkbox" name="analytics" checked>
4151      <span class="task-list-indicator"></span>
4152      Google Analytics
4153    </label>
4154  </li>
4155
4156      
4157    
4158    
4159      
4160        
4161  
4162  
4163    
4164    
4165  
4166  <li class="task-list-item">
4167    <label class="task-list-control">
4168      <input type="checkbox" name="github" checked>
4169      <span class="task-list-indicator"></span>
4170      GitHub
4171    </label>
4172  </li>
4173
4174      
4175    
4176    
4177  </ul>
4178</div>
4179<div class="md-consent__controls">
4180  
4181    
4182      <button class="md-button md-button--primary">Accept</button>
4183    
4184    
4185    
4186  
4187    
4188    
4189    
4190      <label class="md-button" for="__settings">Manage settings</label>
4191    
4192  
4193</div>
4194          </form>
4195        </aside>
4196      </div>
4197      
4197<script>var consent=__md_get("__consent");if(consent)for(var input of document.forms.consent.elements)input.name&&(input.checked=consent[input.name]||!1);else"file:"!==location.protocol&&setTimeout((function(){document.querySelector("[data-md-component=consent]").hidden=!1}),250);var form=document.forms.consent;for(var action of["submit","reset"])form.addEventListener(action,(function(e){if(e.preventDefault(),"reset"===e.type)for(var n of document.forms.consent.elements)n.name&&(n.checked=!1);__md_set("__consent",Object.fromEntries(Array.from(new FormData(form).keys()).map((function(e){return[e,!0]})))),location.hash="",location.reload()}))</script>
4197
4198    
4199    
4200      
4201      
4202      
4202<script id="__config" type="application/json">{"annotate": null, "base": "../..", "features": ["content.code.annotate", "content.code.copy", "navigation.instant", "navigation.instant.progress", "navigation.tracking", "navigation.indexes"], "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>
4202
4203    
4204    
4205      
4205<script src="../../assets/javascripts/bundle.79ae519e.min.js"></script>
4205
4206      
4207        
4207<script src="../../javascripts/gtag.js"></script>
4207
4208      
4209        
4209<script src="../../javascripts/ethicalads-init.js"></script>
4209
4210      
4211        
4211<script src="../../javascripts/concepts-pipeline.js"></script>
4211
4212      
4213        
4213<script src="../../javascripts/resource-calculator.js"></script>
4213
4214      
4215        
4215<script src="../../javascripts/filter-builder.js"></script>
4215
4216      
4217    
4218  
4218<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v31edd6df95cf4e85bb4c19e7a9bdbcba1788362987495" integrity="sha512-iIg7k2xntmwu6/uSb5tpc/hySgZc4eoL31yB29W6tJFo2akwjPWcEqnCEdJvGexCL0KEQwVYv5BlowfhVz26hg==" data-cf-beacon='{"version":"2024.11.0","token":"85534761cb4b49c3b57b9df7ac94f2f4","r":1,"spa":2}' crossorigin="anonymous"></script>
4218
4219</body>
4220</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.