PageSourceSearch

https://www.swift.org/

html swift.org collected 2026-10-01 06:58:18 UTC 34,363 bytes, 733 lines download raw bytes

1<!doctype html>
2<html lang="en">
3  <head>
4    <meta charset="utf-8" />
5    <title>
6       Swift Programming Language 
7    </title>
8    
9    <meta name="author" content="Apple Inc." />
10    <meta name="viewport" content="width=device-width initial-scale=1" />
11     
12    <link
13      rel="prefetch"
14      href="/assets/images/landing-page/hero/bird.png"
15      as="image"
16    />
17    <link
18      rel="prefetch"
19      href="/assets/images/landing-page/hero/orange-swoop-bottom.png"
20      as="image"
21    />
22    <link
23      rel="prefetch"
24      href="/assets/images/landing-page/hero/orange-swoop-top.png"
25      as="image"
26    />
27    <link
28      rel="prefetch"
29      href="/assets/images/landing-page/hero/purple-swoop.png"
30      as="image"
31    />
32    <link
33      rel="prefetch"
34      href="/assets/images/landing-page/hero/white-swoop-1.png"
35      as="image"
36    />
37    <link
38      rel="prefetch"
39      href="/assets/images/landing-page/hero/white-swoop-2.png"
40      as="image"
41    />
42    
43    <link rel="license" href="/LICENSE.txt" />
44    <link
45      rel="stylesheet"
46      media="all"
47      href="/assets/stylesheets/new-stylesheets/application.css"
48    />
49    
49<script src="/assets/javascripts/new-javascripts/color-scheme-toggle.js"></script>
49
50    
51    
51<script src="/assets/javascripts/new-javascripts/vendor/anime.iife.min.js"></script>
51
52    
52<script src="/assets/javascripts/new-javascripts/hero.js"></script>
52
53    
54    <link
55      rel="shortcut icon"
56      sizes="16x16 24x24 32x32 48x48 64x64"
57      type="image/vnd.microsoft.icon"
58      href="/favicon.ico"
59    />
60    <link rel="apple-touch-icon" href="/apple-touch-icon.png" />
61    <link
62      rel="apple-touch-icon"
63      sizes="57x57"
64      href="/apple-touch-icon-57x57.png"
65    />
66    <link
67      rel="apple-touch-icon"
68      sizes="72x72"
69      href="/apple-touch-icon-72x72.png"
70    />
71    <link
72      rel="apple-touch-icon"
73      sizes="76x76"
74      href="/apple-touch-icon-76x76.png"
75    />
76    <link
77      rel="apple-touch-icon"
78      sizes="114x114"
79      href="/apple-touch-icon-114x114.png"
80    />
81    <link
82      rel="apple-touch-icon"
83      sizes="120x120"
84      href="/apple-touch-icon-120x120.png"
85    />
86    <link
87      rel="apple-touch-icon"
88      sizes="144x144"
89      href="/apple-touch-icon-144x144.png"
90    />
91    <link
92      rel="apple-touch-icon"
93      sizes="152x152"
94      href="/apple-touch-icon-152x152.png"
95    />
96    <link
97      rel="apple-touch-icon"
98      sizes="180x180"
99      href="/apple-touch-icon-180x180.png"
100    />
101    <link
102      rel="mask-icon"
103      href="/assets/images/icon-swift.svg"
104      color="#F05339"
105    />
106    <link
107      rel="alternate"
108      type="application/atom+xml"
109      title="Swift.org (Atom Feed)"
110      href="/atom.xml"
111    />
112
113    
114    <link rel="canonical" href="https://swift.org/" />
115    
116
117    <meta name="twitter:card" content="summary" />
118    <meta name="twitter:site" content="@SwiftLang" />
119    
120    <meta name="twitter:title" content="Swift.org" />
121    <meta
122      name="twitter:description"
123      content="Swift is a general-purpose programming language built using a modern approach to safety, performance, and software design patterns."
124    />
125    
126
127    <meta property="og:site_name" content="Swift.org" />
128    <meta
129      property="og:image"
130      content="https://swift.org/apple-touch-icon-180x180.png"
131    />
132     
133    <meta property="og:title" content="Swift.org" />
134    <meta property="og:url" content="https://swift.org" />
135    <meta
136      property="og:description"
137      content="Swift is a general-purpose programming language built using a modern approach to safety, performance, and software design patterns."
138    />
139    
140  </head>
141
142  <body>
143    
143<script>
144      // Set theme before body content to avoid flash of light styles in dark mode
145      setColorScheme(getStoredScheme())
146    </script>
146
147    <main>
148      <header class="site-navigation">
149    <div class="wrapper">
150      <h1 class="logo">
151        <a href="/" title="Swift.org"> <svg xmlns="http://www.w3.org/2000/svg" xml:space="preserve" viewBox="0 0 191.186 59.391"><path fill="#F05138" d="M59.387 16.45a82.463 82.463 0 0 0-.027-1.792c-.035-1.301-.112-2.614-.343-3.9-.234-1.307-.618-2.523-1.222-3.71a12.464 12.464 0 0 0-5.453-5.452C51.156.992 49.941.609 48.635.374c-1.288-.232-2.6-.308-3.902-.343a85.714 85.714 0 0 0-1.792-.027C42.23 0 41.52 0 40.813 0H18.578c-.71 0-1.419 0-2.128.004-.597.004-1.195.01-1.792.027-.325.009-.651.02-.978.036-.978.047-1.959.133-2.924.307-.98.176-1.908.436-2.811.81A12.503 12.503 0 0 0 3.89 3.89a12.46 12.46 0 0 0-2.294 3.158C.992 8.235.61 9.45.374 10.758c-.231 1.286-.308 2.599-.343 3.9a85.767 85.767 0 0 0-.027 1.792C-.001 17.16 0 17.869 0 18.578v22.235c0 .71 0 1.418.004 2.128.004.597.01 1.194.027 1.791.035 1.302.112 2.615.343 3.901.235 1.307.618 2.523 1.222 3.71a12.457 12.457 0 0 0 5.453 5.453c1.186.603 2.401.986 3.707 1.22 1.287.232 2.6.31 3.902.344.597.016 1.195.023 1.793.027.709.005 1.417.004 2.127.004h22.235c.709 0 1.418 0 2.128-.004.597-.004 1.194-.011 1.792-.027 1.302-.035 2.614-.112 3.902-.343 1.306-.235 2.521-.618 3.707-1.222a12.461 12.461 0 0 0 5.453-5.452c.604-1.187.987-2.403 1.222-3.71.231-1.286.308-2.6.343-3.9.016-.598.023-1.194.027-1.792.004-.71.004-1.419.004-2.129V18.578c0-.71 0-1.419-.004-2.128z"/><path fill="#FFF" d="m47.06 36.66-.004-.004c.066-.224.134-.446.191-.675 2.465-9.821-3.55-21.432-13.731-27.546 4.461 6.048 6.434 13.374 4.681 19.78-.156.571-.344 1.12-.552 1.653-.225-.148-.51-.316-.89-.527 0 0-10.127-6.252-21.103-17.312-.288-.29 5.852 8.777 12.822 16.14-3.284-1.843-12.434-8.5-18.227-13.802.712 1.187 1.558 2.33 2.489 3.43C17.573 23.932 23.882 31.5 31.44 37.314c-5.31 3.25-12.814 3.502-20.285.003a30.646 30.646 0 0 1-5.193-3.098c3.162 5.058 8.033 9.423 13.96 11.97 7.07 3.039 14.1 2.833 19.336.05l-.004.007c.024-.016.055-.032.08-.047.214-.116.428-.234.636-.358 2.516-1.306 7.485-2.63 10.152 2.559.654 1.27 2.041-5.46-3.061-11.74z"/><path id="logotype" d="M81.93 38.542c.465 4.12 4.394 6.822 9.852 6.822 5.185 0 8.924-2.701 8.924-6.44 0-3.22-2.265-5.185-7.478-6.495l-5.048-1.282c-7.26-1.801-10.534-5.077-10.534-10.48 0-6.658 5.813-11.27 14.082-11.27 8.022 0 13.726 4.639 13.917 11.325h-5.32c-.41-4.093-3.74-6.604-8.734-6.604-4.94 0-8.378 2.538-8.378 6.249 0 2.892 2.13 4.612 7.369 5.95l4.202 1.09c8.133 1.993 11.462 5.159 11.462 10.863 0 7.259-5.759 11.816-14.928 11.816-8.514 0-14.327-4.53-14.763-11.543h5.376zM140.049 49.43h-5.35l-6.249-21.776h-.109L122.12 49.43h-5.348l-7.914-28.518h5.184l5.513 22.896h.11l6.221-22.896h5.021l6.277 22.896h.11l5.512-22.896h5.13L140.05 49.43zM151.39 13.244c0-1.718 1.419-3.11 3.138-3.11 1.746 0 3.165 1.392 3.165 3.11 0 1.72-1.419 3.139-3.165 3.139a3.157 3.157 0 0 1-3.139-3.139zm.545 7.669h5.213V49.43h-5.213V20.913zM191.186 25.116v-4.204h-5.513v-6.821h-5.185v6.821h-9.964v-2.51c.027-2.538 1.01-3.603 3.357-3.603.764 0 1.528.083 2.156.192v-4.094a18.193 18.193 0 0 0-2.756-.218c-5.568 0-7.915 2.32-7.915 7.642v2.591h-3.983v4.204h3.983V49.43h5.185V25.116H180.488v16.838c0 5.512 2.101 7.64 7.559 7.64 1.174 0 2.51-.082 3.111-.218v-4.257c-.355.055-1.392.137-1.965.137-2.428 0-3.52-1.147-3.52-3.712V25.116h5.513z"/></svg> </a>
152      </h1>
153  
154      <!-- desktop-navigation -->
155      <nav class="desktop-navigation" role="navigation">
156        <ul class="navigation-items">
157  
158  <li class="nav-item ">
159    <a href="https://docs.swift.org/latest/documentation/" data-text="Docs"><span>Docs</span></a>
160  </li>
161  
162  <li class="nav-item ">
163    <a href="/community/" data-text="Community"><span>Community</span></a>
164  </li>
165  
166  <li class="nav-item ">
167    <a href="/packages/" data-text="Packages"><span>Packages</span></a>
168  </li>
169  
170  <li class="nav-item ">
171    <a href="/blog/" data-text="Blog"><span>Blog</span></a>
172  </li>
173  
174  <li class="border">
175    <span />
176  </li>
177  <li class="nav-item ">
178    <a href="/install" data-text="Install"><span>Install <span>(6.4.0)</span></span></a>
179  </li>
180</ul>
181      </nav>
182  
183      <!-- toggle -->
184      <button
185        id="menu-toggle"
186        class="menu-item menu-toggle open"
187        aria-expanded="false"
188        aria-label="Toggle Navigation Menu"
189      />
190    </div>
191  
192    <!-- mobile-navigation -->
193    <nav class="mobile-navigation" role="navigation">
194        <ul class="navigation-items">
195  
196  <li class="nav-item ">
197    <a href="https://docs.swift.org/latest/documentation/" data-text="Docs"><span>Docs</span></a>
198  </li>
199  
200  <li class="nav-item ">
201    <a href="/community/" data-text="Community"><span>Community</span></a>
202  </li>
203  
204  <li class="nav-item ">
205    <a href="/packages/" data-text="Packages"><span>Packages</span></a>
206  </li>
207  
208  <li class="nav-item ">
209    <a href="/blog/" data-text="Blog"><span>Blog</span></a>
210  </li>
211  
212  <li class="border">
213    <span />
214  </li>
215  <li class="nav-item ">
216    <a href="/install" data-text="Install"><span>Install <span>(6.4.0)</span></span></a>
217  </li>
218</ul>
219    </nav>
220  </header>
221   <div class="animation-container">
222    <canvas id="purple-swoop" width="1248" height="1116"></canvas>
223    <canvas id="white-swoop-1" width="1248" height="1116"></canvas>
224    <canvas id="orange-swoop-top" width="1248" height="1116"></canvas>
225    <canvas id="orange-swoop-bottom" width="1248" height="1116"></canvas>
226    <canvas id="white-swoop-2" width="1248" height="1116"></canvas>
227    <canvas id="bird" width="1248" height="1116"></canvas>
228</div>
229<section id="what-is-swift" class="section">
230    <div class="hero-content">
231        <h1 class="title-0">Swift is the powerful, flexible,<br /> multiplatform programming language.</h1>
232        <div class="sub-text"><h2>Fast. Expressive. Safe.</h2></div>
233        <a href="/install/" data-text="Install">Install</a>
234        <p>Tools for Linux, macOS, and Windows</p>
235        <h2>Create using Swift</h2>
236    </div>
237    <nav aria-label="Get started with Swift">
238        <ul class="primary-links">
239            
240            <li>
241                <a href="/get-started/cloud-services" data-text="Cloud Services">
242                    <i class="cloud"></i>
243                    <div>
244                        <h3 class="title">Cloud Services</h3>
245                        <p class="subtitle">Run performant services on Linux and deploy to the cloud.</p>
246                    </div>
247                </a>
248            </li>
249            
250            <li>
251                <a href="/get-started/command-line-tools" data-text="Command Line">
252                    <i class="command-line"></i>
253                    <div>
254                        <h3 class="title">Command Line</h3>
255                        <p class="subtitle">Create powerful CLI tools that are fast and memory safe.</p>
256                    </div>
257                </a>
258            </li>
259            
260            <li>
261                <a href="/get-started/embedded" data-text="Embedded">
262                    <i class="chip"></i>
263                    <div>
264                        <h3 class="title">Embedded</h3>
265                        <p class="subtitle">Develop efficient, reliable firmware for devices like microcontrollers.</p>
266                    </div>
267                </a>
268            </li>
269            
270        </ul>
271        <ul class="secondary-links">
272            
273            <li>
274                <a href="/getting-started/swiftui/" data-text="iOS apps">
275                    <h4 class="title">iOS apps</h4>
276                </a>
277            </li>
278            
279            <li>
280                <a href="/blog/swift-everywhere-windows-interop/" data-text="Windows apps">
281                    <h4 class="title">Windows apps</h4>
282                </a>
283            </li>
284            
285            <li>
286                <a href="/blog/mlx-swift/" data-text="Machine learning and AI">
287                    <h4 class="title">Machine Learning &amp; AI</h4>
288                </a>
289            </li>
290            
291            <li>
292                <a href="/getting-started/library-swiftpm/" data-text="Packages">
293                    <h4 class="title">Packages</h4>
294                </a>
295            </li>
296            
297        </ul>
298    </nav>
299    <div class="swoop swoop-0 swoop-anim"></div>
300</section>
301
302<section id="pillar-1" class="section pillar">
303    <div class="pillar-wrapper content-wrapper">
304        <p class="pillar-intro">
305            Swift is designed to be the language you reach for at every layer of the software stack. Whether you are building embedded firmware, full-featured mobile apps, or internet-scale services, Swift delivers expressive language features and APIs, performance control when you need it, and strong safety guarantees.
306        </p>
307    </div>
308    
309 
310<div class="callout  with-code">
311  <div class="text">
312    
313    <h3 class="callout-title title-1">Fast</h3>
314     
315    <p class="callout-subtitle title-2">Build with speed and performance.</p>
316     
317    <p class="callout-text body">Swift meets the most performance-critical needs, while allowing your code to remain expressive and approachable. Swift compiles directly to native code and provides predictable memory management.</p>
318    
319  </div>
320  
321  <!-- prettier-ignore -->
322  <div class="code">
323      <div class="language-swift highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c1">// Vectorized check that a utf8 buffer is all ASCII</span>
324<span class="kd">func</span> <span class="nf">isASCII</span><span class="p">(</span><span class="nv">utf8</span><span class="p">:</span> <span class="kt">Span</span><span class="o">&lt;</span><span class="kt">SIMD16</span><span class="o">&lt;</span><span class="kt">UInt8</span><span class="o">&gt;&gt;</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kt">
324Bool</span> <span class="p">{</span>
325  <span class="c1">// combine all the code units into a single entry</span>
326  <span class="n">utf8</span><span class="o">.</span><span class="n">indices</span><span class="o">.</span><span class="nf">reduce</span><span class="p">(</span><span class="nv">into</span><span class="p">:</span> <span class="kt">SIMD16</span><span class="p">())</span> <span class="p">{</span>
327    <span class="c1">// fold each set of code units into the result</span>
328    <span class="nv">$0</span> <span class="o">|=</span> <span class="n">utf8</span><span class="p">[</span><span class="nv">$1</span><span class="p">]</span>
329  <span class="p">}</span>
330  <span class="c1">// check that every entry is in the ASCII range</span>
331  <span class="o">.</span><span class="nf">max</span><span class="p">()</span> <span class="o">&lt;</span> <span class="mh">0x80</span>
332<span class="p">}</span>
333</code></pre></div>      </div>
334    </div>
335    
336</div>
337
338    
339 
340<div class="callout reverse with-code">
341  <div class="text">
342    
343    <h3 class="callout-title title-1">Expressive</h3>
344     
345    <p class="callout-subtitle title-2">Concise code. Powerful results.</p>
346     
347    <p class="callout-text body">Swift empowers you to write advanced code in a concise, readable syntax that even a beginner can understand. Swift supports object-oriented, functional, and generic programming patterns that experienced developers are familiar with. Its progressive disclosure allows you to pick up the language quickly, taking advantage of power-user features as you need them.</p>
348    
349  </div>
350  
351  <!-- prettier-ignore -->
352  <div class="code">
353      <div class="language-swift highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kd">import</span> <span class="kt">ArgumentParser</span>
354
355<span class="c1">// Complete implementation of a command line tool</span>
356<span class="kd">@main</span> <span class="kd">struct</span> <span class="kt">Describe</span><span class="p">:</span> <span class="kt">ParsableCommand</span> <span class="p">{</span>
357  <span class="kd">@Argument</span><span class="p">(</span><span class="nv">help</span><span class="p">:</span> <span class="s">"The values to describe."</span><span class="p">)</span>
358  <span class="k">var</span> <span class="nv">values</span><span class="p">:</span> <span class="p">[</span><span class="kt">Double</span><span class="p">]</span> <span class="o">=</span> <span class="p">[]</span>
359
360  <span class="k">mutating</span> <span class="kd">func</span> <span class="nf">run</span><span class="p">()</span> <span class="p">{</span>
361    <span class="n">values</span><span class="o">.</span><span class="nf">sort</span><span class="p">()</span>
362    <span class="k">let</span> <span class="nv">total</span> <span class="o">=</span> <span class="n">values</span><span class="o">.</span><span class="nf">reduce</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="o">+</span><span class="p">)</span>
363
364    <span class="nf">print</span><span class="p">(</span>
365      <span class="s">"""
366      Smallest: </span><span class="se">\(</span><span class="n">values</span><span class="o">.</span><span class="n">first</span><span class="p">,</span> <span class="k">default</span><span class="p">:</span> <span class="s">"No value"</span><span class="se">)</span><span class="s">
367      Total:    </span><span class="se">\(</span><span class="n">total</span><span class="se">)</span><span class="s">
368      Mean:     </span><span class="se">\(</span><span class="n">total</span> <span class="o">/</span> <span class="kt">Double</span><span class="p">(</span><span class="n">values</span><span class="o">.</span><span class="n">count</span><span class="p">)</span><span class="se">)</span><span class="s">
369      """</span><span class="p">)</span>
370  <span class="p">}</span>
371<span class="p">}</span>
372</code></pre></div>      </div>
373    </div>
374    
375</div>
376
377    
378 
379<div class="callout  with-code">
380  <div class="text">
381    
382    <h3 class="callout-title title-1">Safe</h3>
383     
384    <p class="callout-subtitle title-2">Protect memory safety.</p>
385     
386    <p class="callout-text body">Swift prioritizes safety and eliminates entire classes of bugs and vulnerabilities by its design. Memory safety and data race safety are core features of the language, making them straightforward to integrate into your codebase. Safety is required at compile time, before your applications are ever run.</p>
387    
388  </div>
389  
390  <!-- prettier-ignore -->
391  <div class="code">
392      <div class="language-swift highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="k">let</span> <span class="nv">transform</span> <span class="o">=</span> <span class="kt">Affine2DTransformBuilder</span><span class="p">()</span>
393    <span class="o">.</span><span class="nf">translate</span><span class="p">([</span><span class="mf">10.0</span><span class="p">,</span> <span class="mf">20.0</span><span class="p">]</span><span class="o">.</span><span class="n">span</span><span class="p">)</span>
394    <span class="o">.</span><span class="nf">rotate</span><span class="p">(</span><span class="mf">30.0</span><span class="p">)</span>
395    <span class="o">.</span><span class="nf">build</span><span class="p">()</span>
396
397<span class="k">let</span> <span class="nv">v</span> <span class="o">=</span> <span class="p">[</span><span class="mf">11.0</span><span class="p">,</span> <span class="mf">22.0</span><span class="p">,</span> <span class="mf">1.0</span><span class="p">]</span>
398
399<span class="c1">// Call C functions safely with Swift types</span>
400<span class="k">let</span> <span class="nv">u</span> <span class="o">=</span> <span class="nf">mat_vec_mul</span><span class="p">(</span>
401  <span class="n">transform</span><span class="p">,</span> <span class="n">rowCount</span><span class="p">,</span> <span class="n">colCount</span><span class="p">,</span> <span class="n">v</span><span class="o">.</span><span class="n">span</span><span class="p">,</span> <span class="n">allocator</span><span class="p">)</span>
402<span class="k">let</span> <span class="nv">uMagnitude</span> <span class="o">=</span> <span class="nf">vec_mag</span><span class="p">(</span><span class="n">u</span><span class="o">.</span><span class="n">span</span><span class="p">)</span>
403</code></pre></div>      </div>
404    </div>
405    
406</div>
407
408    
409
410    <div class="swoop swoop-1 swoop-anim"></div>
411
412</section>
413
414<section id="pillar-2" class="section pillar">
415    
416 
417<div class="callout  with-code">
418  <div class="text">
419    
420    <h3 class="callout-title title-1">Interoperable</h3>
421     
422    <p class="callout-subtitle title-2">Adopt Swift in existing code incrementally.</p>
423     
424    <p class="callout-text body">
424Swift provides unmatched interoperability, with its combination of natively understanding C and C++ types without the need for foreign function interfaces, and offering bridging for bi-directional access. Swift’s interoperability features allow you to incrementally adopt the language into existing codebases without requiring a full code rewrite.</p>
425    
426  </div>
427  
428  <!-- prettier-ignore -->
429  <div class="code">
430      <div class="language-swift highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kd">import</span> <span class="kt">CxxStdlib</span>
431
432<span class="c1">// Use types from C++, like std::string, directly</span>
433<span class="k">let</span> <span class="nv">beverages</span><span class="p">:</span> <span class="p">[</span><span class="n">std</span><span class="o">.</span><span class="n">string</span><span class="p">]</span> <span class="o">=</span> <span class="p">[</span>
434  <span class="s">"apple juice"</span><span class="p">,</span> <span class="s">"grape juice"</span><span class="p">,</span> <span class="s">"green tea"</span>
435<span class="p">]</span>
436
437<span class="k">let</span> <span class="nv">juices</span> <span class="o">=</span> <span class="n">beverages</span><span class="o">.</span><span class="n">filter</span> <span class="p">{</span> <span class="n">cppstring</span> <span class="k">in</span>
438  <span class="c1">// and call methods directly on C++ types</span>
439  <span class="n">cppstring</span><span class="o">.</span><span class="nf">find</span><span class="p">(</span><span class="o">.</span><span class="nf">init</span><span class="p">(</span><span class="s">"juice"</span><span class="p">))</span> <span class="o">!=</span> <span class="n">std</span><span class="o">.</span><span class="n">string</span><span class="o">.</span><span class="n">npos</span>
440<span class="p">}</span>
441</code></pre></div>      </div>
442    </div>
443    
444</div>
445
446    
447 
448<div class="callout reverse with-code">
449  <div class="text">
450    
451    <h3 class="callout-title title-1">Adaptable</h3>
452     
453    <p class="callout-subtitle title-2">From microcontrollers to servers.</p>
454     
455    <p class="callout-text body">Spanning from embedded and kernel to server and apps, Swift excels no matter where it’s used, from constrained environments like firmware, where every byte counts, to cloud services handling billions of requests a day.</p>
456    
457  </div>
458  
459  <!-- prettier-ignore -->
460  <div class="code">
461      <div class="language-swift highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c1">// Configure UART by direct register manipulation</span>
462<span class="c1">// using Swift MMIO. Enables RX and TX, and sets</span>
463<span class="c1">// baud rate to 115,200. Compiles down to an</span>
464<span class="c1">// optimal assembly sequence with no overhead.</span>
465
466<span class="n">usart1</span><span class="o">.</span><span class="n">brr</span><span class="o">.</span><span class="n">modify</span> <span class="p">{</span> <span class="n">rw</span> <span class="k">in</span>
467  <span class="n">rw</span><span class="o">.</span><span class="n">raw</span><span class="o">.</span><span class="n">brr_field</span> <span class="o">=</span> <span class="mi">16_000_000</span> <span class="o">/</span> <span class="mi">115_200</span>
468<span class="p">}</span>
469
470<span class="n">usart1</span><span class="o">.</span><span class="n">cr1</span><span class="o">.</span><span class="n">modify</span> <span class="p">{</span> <span class="n">rw</span> <span class="k">in</span>
471  <span class="n">rw</span><span class="o">.</span><span class="n">ue</span> <span class="o">=</span> <span class="o">.</span><span class="kt">Enabled</span>
472  <span class="n">rw</span><span class="o">.</span><span class="n">re</span> <span class="o">=</span> <span class="o">.</span><span class="kt">Enabled</span>
473  <span class="n">rw</span><span class="o">.</span><span class="n">te</span> <span class="o">=</span> <span class="o">.</span><span class="kt">Enabled</span>
474<span class="p">}</span>
475</code></pre></div>      </div>
476    </div>
477    
478</div>
479
480    
481    <div class="swoop swoop-2 swoop-anim"></div>
482</section>
483
484<section id="pillar-3" class="section pillar">
485    
486 
487<div class="callout  ">
488  <div class="text">
489    
490    <h3 class="callout-title title-1">Open Source</h3>
491     
492    <p class="callout-subtitle title-2">Contribute and get involved.</p>
493     
494  </div>
495    
496  <div class="links">
497    
498    <a href="https://github.com/swiftlang">View SwiftLang on GitHub</a>
499    
500    <a href="https://forums.swift.org">Join the forums</a>
501    
502  </div>
503  
504</div>
505
506    
507</section>
508 <footer class="global-footer">
509  <div class="container">
510    <div class="footer-navigation-container">
511      <nav aria-label="Main">
512    <a class="logo" href="/" title="Swift.org"> <svg xmlns="http://www.w3.org/2000/svg" xml:space="preserve" viewBox="0 0 191.186 59.391"><path fill="#F05138" d="M59.387 16.45a82.463 82.463 0 0 0-.027-1.792c-.035-1.301-.112-2.614-.343-3.9-.234-1.307-.618-2.523-1.222-3.71a12.464 12.464 0 0 0-5.453-5.452C51.156.992 49.941.609 48.635.374c-1.288-.232-2.6-.308-3.902-.343a85.714 85.714 0 0 0-1.792-.027C42.23 0 41.52 0 40.813 0H18.578c-.71 0-1.419 0-2.128.004-.597.004-1.195.01-1.792.027-.325.009-.651.02-.978.036-.978.047-1.959.133-2.924.307-.98.176-1.908.436-2.811.81A12.503 12.503 0 0 0 3.89 3.89a12.46 12.46 0 0 0-2.294 3.158C.992 8.235.61 9.45.374 10.758c-.231 1.286-.308 2.599-.343 3.9a85.767 85.767 0 0 0-.027 1.792C-.001 17.16 0 17.869 0 18.578v22.235c0 .71 0 1.418.004 2.128.004.597.01 1.194.027 1.791.035 1.302.112 2.615.343 3.901.235 1.307.618 2.523 1.222 3.71a12.457 12.457 0 0 0 5.453 5.453c1.186.603 2.401.986 3.707 1.22 1.287.232 2.6.31 3.902.344.597.016 1.195.023 1.793.027.709.005 1.417.004 2.127.004h22.235c.709 0 1.418 0 2.128-.004.597-.004 1.194-.011 1.792-.027 1.302-.035 2.614-.112 3.902-.343 1.306-.235 2.521-.618 3.707-1.222a12.461 12.461 0 0 0 5.453-5.452c.604-1.187.987-2.403 1.222-3.71.231-1.286.308-2.6.343-3.9.016-.598.023-1.194.027-1.792.004-.71.004-1.419.004-2.129V18.578c0-.71 0-1.419-.004-2.128z"/><path fill="#FFF" d="m47.06 36.66-.004-.004c.066-.224.134-.446.191-.675 2.465-9.821-3.55-21.432-13.731-27.546 4.461 6.048 6.434 13.374 4.681 19.78-.156.571-.344 1.12-.552 1.653-.225-.148-.51-.316-.89-.527 0 0-10.127-6.252-21.103-17.312-.288-.29 5.852 8.777 12.822 16.14-3.284-1.843-12.434-8.5-18.227-13.802.712 1.187 1.558 2.33 2.489 3.43C17.573 23.932 23.882 31.5 31.44 37.314c-5.31 3.25-12.814 3.502-20.285.003a30.646 30.646 0 0 1-5.193-3.098c3.162 5.058 8.033 9.423 13.96 11.97 7.07 3.039 14.1 2.833 19.336.05l-.004.007c.024-.016.055-.032.08-.047.214-.116.428-.234.636-.358 2.516-1.306 7.485-2.63 10.152 2.559.654 1.27 2.041-5.46-3.061-11.74z"/><path id="logotype" d="M81.93 38.542c.465 4.12 4.394 6.822 9.852 6.822 5.185 0 8.924-2.701 8.924-6.44 0-3.22-2.265-5.185-7.478-6.495l-5.048-1.282c-7.26-1.801-10.534-5.077-10.534-10.48 0-6.658 5.813
512-11.27 14.082-11.27 8.022 0 13.726 4.639 13.917 11.325h-5.32c-.41-4.093-3.74-6.604-8.734-6.604-4.94 0-8.378 2.538-8.378 6.249 0 2.892 2.13 4.612 7.369 5.95l4.202 1.09c8.133 1.993 11.462 5.159 11.462 10.863 0 7.259-5.759 11.816-14.928 11.816-8.514 0-14.327-4.53-14.763-11.543h5.376zM140.049 49.43h-5.35l-6.249-21.776h-.109L122.12 49.43h-5.348l-7.914-28.518h5.184l5.513 22.896h.11l6.221-22.896h5.021l6.277 22.896h.11l5.512-22.896h5.13L140.05 49.43zM151.39 13.244c0-1.718 1.419-3.11 3.138-3.11 1.746 0 3.165 1.392 3.165 3.11 0 1.72-1.419 3.139-3.165 3.139a3.157 3.157 0 0 1-3.139-3.139zm.545 7.669h5.213V49.43h-5.213V20.913zM191.186 25.116v-4.204h-5.513v-6.821h-5.185v6.821h-9.964v-2.51c.027-2.538 1.01-3.603 3.357-3.603.764 0 1.528.083 2.156.192v-4.094a18.193 18.193 0 0 0-2.756-.218c-5.568 0-7.915 2.32-7.915 7.642v2.591h-3.983v4.204h3.983V49.43h5.185V25.116H180.488v16.838c0 5.512 2.101 7.64 7.559 7.64 1.174 0 2.51-.082 3.111-.218v-4.257c-.355.055-1.392.137-1.965.137-2.428 0-3.52-1.147-3.52-3.712V25.116h5.513z"/></svg> </a>
513
514    <ul>
515        
516        <li class="item ">
517            <a href="/documentation/" data-text="Docs">Docs</a>
518        </li>
519        
520        <li class="item ">
521            <a href="/community/" data-text="Community">Community</a>
522        </li>
523        
524        <li class="item ">
525            <a href="/packages/" data-text="Packages">Packages</a>
526        </li>
527        
528        <li class="item ">
529            <a href="/blog/" data-text="Blog">Blog</a>
530        </li>
531        
532        <li class="item ">
533            <a href="/install/" data-text="Install">Install</a>
534        </li>
535        
536    </ul>
537</nav>
538
539      <nav aria-label="Tools">
540    <h3>Tools</h3>
541    <ul>
542        
543        <li class="item ">
544            <a href="https://developer.apple.com/xcode/" data-text="Xcode">Xcode</a>
545        </li>
546        
547        <li class="item ">
548            <a href="/documentation/articles/getting-started-with-vscode-swift.html" data-text="Visual Studio Code">Visual Studio Code</a>
549        </li>
550        
551        <li class="item ">
552            <a href="/documentation/articles/zero-to-swift-emacs.html" data-text="Emacs">Emacs</a>
553        </li>
554        
555        <li class="item ">
556            <a href="/documentation/articles/zero-to-swift-nvim.html" data-text="Neovim">Neovim</a>
557        </li>
558        
559        <li class="item ">
560            <a href="/documentation/articles/getting-started-with-cursor-swift.html" data-text="Cursor">Cursor</a>
561        </li>
562        
563        <li class="item ">
564            <a href="https://github.com/swiftlang/sourcekit-lsp/tree/main/Documentation/Editor%20Integration.md" data-text="Other Editors">Other Editors</a>
565        </li>
566        
567    </ul>
568</nav>
569
570      <nav aria-label="Community">
571    <h3>Community</h3>
572    <ul>
573        
574        <li class="item ">
575            <a href="/community/" data-text="Overview">Overview</a>
576        </li>
577        
578        <li class="item ">
579            <a href="/swift-evolution/" data-text="Swift Evolution">Swift Evolution</a>
580        </li>
581        
582        <li class="item ">
583            <a href="/diversity/" data-text="Diversity">Diversity</a>
584        </li>
585        
586        <li class="item ">
587            <a href="/mentorship/" data-text="Mentorship">Mentorship</a>
588        </li>
589        
590        <li class="item ">
591            <a href="/contributing/" data-text="Contributing">Contributing</a>
592        </li>
593        
594    </ul>
595</nav>
596
597      <nav class="governance" aria-label="Governance">
598    <h3>Governance</h3>
599    <ul>
600        
601        <li class="item ">
602            <a href="/code-of-conduct/" data-text="Code of Conduct">Code of Conduct</a>
603        </li>
604        
605        <li class="item ">
606            <a href="/legal/license.html" data-text="License">License</a>
607        </li>
608        
609        <li class="item ">
610            <a href="/security/" data-text="Security">Security</a>
611        </li>
612        
613    </ul>
614
615      <form
616  class="color-scheme-toggle"
617  role="radiogroup"
618  tabindex="0"
619  id="color-scheme-toggle"
620>
621  <legend class="visuallyhidden">Color scheme preference</legend>
622  <label class="scheme-light" for="scheme-light">
623    <input
624      id="scheme-light"
625      type="radio"
626      name="color-scheme-preference"
627      value="light"
628    />
629    <span class="color-scheme-toggle-label">Light</span>
630  </label>
631  <label class="scheme-dark" for="scheme-dark">
632    <input
633      id="scheme-dark"
634      type="radio"
635      name="color-scheme-preference"
636      value="dark"
637    />
638    <span class="color-scheme-toggle-label">Dark</span>
639  </label>
640  <label class="scheme-auto-wrapper" for="scheme-auto" id="scheme-auto-wrapper">
641    <input
642      id="scheme-auto"
643      type="radio"
644      name="color-scheme-preference"
645      value="auto"
646    />
647    <span class="color-scheme-toggle-label">Auto</span>
648  </label>
649</form>
650</nav>
651    </div>
652
653    <div class="sub-navigation">
654      <div class="legals">
655        <div class="copyright">
656    
657    <p>
658      Copyright © 2026 Apple Inc. All rights reserved.
659    </p>
660    <p>
661      Swift and the Swift logo are trademarks of Apple Inc.
662    </p>
663    
664</div>
665        <nav aria-label="Legals">
666    <ul>
667        
668            <li class="item ">
669                <a href="//www.apple.com/privacy/privacy-policy/">Privacy Policy</a>
670            </li>
671        
672            <li class="item ">
673                <a href="//www.apple.com/legal/privacy/en-ww/cookies/">Cookies</a>
674            </li>
675        
676            <li class="item ">
677                <a href="/openapi">API</a>
678            </li>
679        
680    </ul>
681</nav>
682      </div>
683
684      <nav class="socials" aria-label="Socials">
685    <ul>
686        
687            <li class="item ">
688                <a href="https://x.com/swiftlang" rel="me" title="Follow @SwiftLang on X"><i class="x"></i></a>
689            </li>
690        
691            <li class="item ">
692                <a href="https://bsky.app/profile/swift.org" rel="me" title="Follow @swift.org on Bluesky"><i class="bluesky"></i></a>
693            </li>
694        
695            <li class="item ">
696                <a href="https://mastodon.social/@swiftlang" rel="me" title="Follow @swiftLang on Mastodon"><i class="mastodon"></i></a>
697            </li>
698        
699            <li class="item ">
700                <a href="/atom.xml" rel="me" title="Subscribe to Site Updates"><i class="feed"></i></a>
701            </li>
702        
703    </ul>
704</nav>
705
706    </div>
707  </div>
708</footer>
709
710    </main>
711
712    
712<script src="/assets/javascripts/new-javascripts/application.js"></script>
712
713    
714    
714<script src="/assets/javascripts/new-javascripts/landing.js"></script>
714
715     
716    <!-- metrics -->
717    
717<script>
718      /* RSID: */
719      var s_account = 'awdswiftorg'
720    </script>
720
721    
722    
722<script src="https://developer.apple.com/assets/metrics/scripts/analytics.js"></script>
722
723    
723<script>
724      s.pageName = AC && AC.Tracking && AC.Tracking.pageName()
725
726      /************* DO NOT ALTER ANYTHING BELOW THIS LINE ! **************/
727      var s_code = s.t()
728      if (s_code) document.write(s_code)
729    </script>
729
730    
731    <!-- /metrics -->
732  </body>
733</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.