1<!DOCTYPE html> 2<html lang="de" dir="ltr"> 3<head> 4 <meta charset="UTF-8"> 5<link rel="preconnect" href="https://design.vapor.codes"> 6<link rel="preconnect" href="https://design.vapor.codes" crossorigin> 7 8<meta property="og:site_name" content="Vapor"> 9<meta property="og:type" content="website"> 10<meta property="og:locale" content="de"> 11<meta property="og:locale:alternate" content="en"> 12<meta property="og:locale:alternate" content="es"> 13<meta property="og:locale:alternate" content="fr"> 14<meta property="og:locale:alternate" content="it"> 15<meta property="og:locale:alternate" content="ja"> 16<meta property="og:locale:alternate" content="ko"> 17<meta property="og:locale:alternate" content="nl"> 18<meta property="og:locale:alternate" content="pl"> 19<meta property="og:locale:alternate" content="zh"> 20<meta property="og:locale:alternate" content="pt_BR"> 21<meta property="og:locale:alternate" content="ar"> 22 23<link rel="canonical" href="https://www.vapor.codes/de/"> 24<meta name="twitter:url" content="https://www.vapor.codes/de/"> 25<meta property="og:url" content="https://www.vapor.codes/de/"> 26<title>Vapor</title> 27<meta name="twitter:title" content="Vapor"> 28<meta property="og:title" content="Vapor"> 29<meta name="description" content="A framework for building APIs, backend servers and websites, in Swift."> 30<meta name="twitter:description" content="A framework for building APIs, backend servers and websites, in Swift."> 31<meta property="og:description" content="A framework for building APIs, backend servers and websites, in Swift."> 32<meta name="twitter:card" content="summary_large_image"> 33<meta name="twitter:site" content="@codevapor"> 34<meta name="twitter:creator" content="@codevapor"> 35<meta property="og:image" content="https://www.vapor.codes/static/images/opengraph/vapor-og-de-2x.png"> 36<meta property="og:image:alt" content="Vapor"> 37<meta property="og:image:type" content="image/png"> 38<meta name="twitter:image" content="https://www.vapor.codes/static/images/opengraph/vapor-og-de-2x.png"> 39<meta name="twitter:image:alt" content="Vapor"> 40 41<link rel="alternate" type="text/markdown" href="/de/index.md"> 42 43 44 45<link rel="stylesheet" href="https://design.vapor.codes/main.css" type="text/css"> 46 47
48<script src="https://design.vapor.codes/js/theme-init.js"></script>
48 49<meta name="viewport" content="width=device-width, initial-scale=1.0"> 50<meta name="color-scheme" content="light dark"> 51<link rel="icon" href="https://design.vapor.codes/favicons/favicon.svg" type="image/svg+xml"> 52<link rel="apple-touch-icon" sizes="180x180" href="https://design.vapor.codes/favicons/apple-touch-icon.png"> 53<link rel="icon" sizes="96x96" href="https://design.vapor.codes/favicons/favicon-96x96.png" type="image/png"> 54<link rel="manifest" href="https://design.vapor.codes/favicons/site.webmanifest"> 55<link rel="shortcut icon" href="https://design.vapor.codes/favicons/favicon.ico"> 56<meta name="apple-mobile-web-app-title" content="Vapor"> 57<meta name="theme-color" content="#ffffff" media="(prefers-color-scheme: light)"> 58<meta name="theme-color" content="#141416" media="(prefers-color-scheme: dark)"> 59 60<link rel="alternate" hreflang="en" href="https://www.vapor.codes/"> 61<link rel="alternate" hreflang="x-default" href="https://www.vapor.codes/"> 62<link rel="alternate" hreflang="de" href="https://www.vapor.codes/de/"> 63<link rel="alternate" hreflang="es" href="https://www.vapor.codes/es/"> 64<link rel="alternate" hreflang="fr" href="https://www.vapor.codes/fr/"> 65<link rel="alternate" hreflang="it" href="https://www.vapor.codes/it/"> 66<link rel="alternate" hreflang="ja" href="https://www.vapor.codes/ja/"> 67<link rel="alternate" hreflang="ko" href="https://www.vapor.codes/ko/"> 68<link rel="alternate" hreflang="nl" href="https://www.vapor.codes/nl/"> 69<link rel="alternate" hreflang="pl" href="https://www.vapor.codes/pl/"> 70<link rel="alternate" hreflang="zh" href="https://www.vapor.codes/zh/"> 71<link rel="alternate" hreflang="pt-BR" href="https://www.vapor.codes/pt-BR/"> 72<link rel="alternate" hreflang="ar" href="https://www.vapor.codes/ar/"> 73
74<script type="application/ld+json">{"@context":"https://schema.org","@graph":[{"@id":"https://www.vapor.codes/#organization","@type":"Organization","logo":{"@type":"ImageObject","url":"https://design.vapor.codes/favicons/apple-touch-icon.png"},"name":"Vapor","sameAs":["https://twitter.com/codevapor","https://hachyderm.io/@codevapor","https://bsky.app/profile/vapor.codes","https://github.com/vapor"],"url":"https://www.vapor.codes/"},{"@id":"https://www.vapor.codes/#website","@type":"WebSite","inLanguage":"de","name":"Vapor","publisher":{"@id":"https://www.vapor.codes/#organization"},"url":"https://www.vapor.codes/"}]}</script>
74 75 76</head> 77<body id="main-page-body" class="main-site-faded-background"> 78 <a class="kiln-skip-link" href="#main-content">Zum Inhalt springen</a> 79 80 81 <nav class="navbar navbar-expand-lg" id="vapor-navbar"> 82 <div class="container-fluid"> 83 <a href="/de/" class="navbar-brand ms-3 d-inline-flex align-items-center" aria-label="Vapor"> 84 <span id="vapor-logo-mark" aria-hidden="true"></span> 85 <span id="vapor-logo-text">Vapor</span> 86 </a> 87 <button class="navbar-toggler" type="button" id="vapor-navmenu-toggle" aria-label="Navigation umschalten" aria-controls="vapor-navmenu" aria-expanded="false"> 88 <span id="vapor-navbar-toggler-icon" class="vapor-icon icon-menu-04"><span class="visually-hidden">Navigation umschalten</span></span> 89 </button> 90 <div class="vapor-navmenu" id="vapor-navmenu"> 91 <button class="vapor-navmenu-close" id="vapor-navmenu-close" type="button" aria-label="Menü schlieÃen"> 92 <span class="vapor-icon icon-x-close" aria-hidden="true"></span> 93 </button> 94 <ul class="navbar-nav ms-auto mb-2 mb-lg-0"> 95 <li class="nav-item"> 96 97 <a href="/de/" class="nav-link active" aria-current="page">Startseite</a> 98 99 </li> 100 <li class="nav-item"><a href="https://store.vapor.codes" target="_blank" class="nav-link">Shop</a></li> 101 <li class="nav-item"> 102 103 <a href="/de/showcase" class="nav-link">Showcase</a> 104 105 </li> 106 <li class="nav-item dropdown vapor-doc-nav"> 107 <button type="button" class="nav-link dropdown-no-outline d-flex" id="documentation-dropdown-link" data-bs-toggle="dropdown" aria-expanded="false">Dokumentation<span class="vapor-icon icon-chevron-down ms-auto ms-sm-1" id="documentation-navbar-chevron"></span></button> 108 <ul class="dropdown-menu animate slideIn" id="framework-dropdown-menu"> 109 <li class="m-lg-2"> 110 <a href="https://docs.vapor.codes" target="_blank" class="dropdown-item"> 111 <div class="nav-dropdown-container d-flex"> 112 <span class="vapor-icon icon-server-04"></span> 113 <div class="ms-3"> 114 <div class="nav-dropdown-container-title">Framework-Dokumentation</div> 115 <div class="nav-dropdown-container-caption d-none d-lg-block">Erfahren Sie, wie Sie Vapor verwenden</div> 116 </div> 117 </div> 118 </a> 119 </li> 120 <li class="m-lg-2"> 121 <a href="https://api.vapor.codes" target="_blank" class="dropdown-item"> 122 <div class="nav-dropdown-container d-flex"> 123 <span class="vapor-icon icon-dataflow-03" aria-hidden="true"></span> 124 <div class="ms-3"> 125 <div class="nav-dropdown-container-title">API-Dokumentation</div> 126 <div class="nav-dropdown-container-caption d-none d-lg-block">Referenzdokumentation für Vapor</div> 127 </div> 128 </div> 129 </a> 130 </li> 131 </ul> 132 </li> 133 <li class="nav-item"> 134 135 <a href="/de/team" class="nav-link">Team</a> 136 137 </li> 138 <li class="nav-item"> 139 140 <a href="https://blog.vapor.codes" target="_blank" class="nav-link">Blog</a> 141 142 </li> 143 <li class="nav-item vapor-github-nav"><a href="https://github.com/vapor" target="_blank" class="nav-link" rel="me"><span class="vapor-icon icon-github-fill" aria-label="GitHub"><span class="visually-hidden">GitHub</span></span></a></li> 144 145 <li class="nav-item dropdown language-picker">
146 <span class="vapor-nav-label" aria-hidden="true">Sprache</span> 147 <button type="button" class="nav-link dropdown-no-outline d-flex align-items-center language-picker-toggle" id="language-picker-toggle" data-bs-toggle="dropdown" aria-expanded="false" aria-label="Sprache"> 148 <span class="language-icon me-1" aria-hidden="true"><svg width="14" height="17" viewBox="0 0 14 17" xmlns="http://www.w3.org/2000/svg"><path d="M8,1v1h5c1.3,0,1.3,2,0,2h-1.67c-.5,2.43-1.45,4.67-2.76,6.64.3.17.57.33.84.45,1.2.54.37,2.36-.82,1.82C8.18,12.73,7.77,12.5,7.36,12.24,5.76,14.16,3.76,15.75,1.45,16.9.27,17.48-.6,15.7.56,15.1,2.6,14.1,4.36,12.7,5.78,11,4.64,10,3.64,8.72,3.08,7.4,2.57,6.18,4.4,5.4,4.92,6.6,5.33,7.57,6.07,8.57,6.98,9.4,8,7.8,8.8,5.98,9.28,4h-8.28c-1.3,0-1.3-2,0-2h5v-1c0-1.3,2-1.3,2,0z" fill="currentColor"/></svg></span> 149 <span class="language-name">Deutsch</span> 150 <span class="vapor-icon icon-chevron-down ms-1 language-chevron" aria-hidden="true"></span> 151 </button> 152 <ul class="dropdown-menu dropdown-menu-end animate slideIn"> 153 154 <li><a href="/" class="dropdown-item d-flex align-items-center" hreflang="en" lang="en">English</a></li> 155 156 <li><a href="/de/" class="dropdown-item d-flex align-items-center active" hreflang="de" lang="de">Deutsch</a></li> 157 158 <li><a href="/es/" class="dropdown-item d-flex align-items-center" hreflang="es" lang="es">Español</a></li> 159 160 <li><a href="/fr/" class="dropdown-item d-flex align-items-center" hreflang="fr" lang="fr">Français</a></li> 161 162 <li><a href="/it/" class="dropdown-item d-flex align-items-center" hreflang="it" lang="it">Italiano</a></li> 163 164 <li><a href="/ja/" class="dropdown-item d-flex align-items-center" hreflang="ja" lang="ja">æ¥æ¬èª</a></li> 165 166 <li><a href="/ko/" class="dropdown-item d-flex align-items-center" hreflang="ko" lang="ko">íêµì´</a></li> 167 168 <li><a href="/nl/" class="dropdown-item d-flex align-items-center" hreflang="nl" lang="nl">Nederlands</a></li> 169 170 <li><a href="/pl/" class="dropdown-item d-flex align-items-center" hreflang="pl" lang="pl">Polski</a></li> 171 172 <li><a href="/zh/" class="dropdown-item d-flex align-items-center" hreflang="zh" lang="zh">ç®ä½ä¸æ</a></li> 173 174 <li><a href="/pt-BR/" class="dropdown-item d-flex align-items-center" hreflang="pt-BR" lang="pt-BR">Português (Brasil)</a></li> 175 176 <li><a href="/ar/" class="dropdown-item d-flex align-items-center" hreflang="ar" lang="ar">Ø§ÙØ¹Ø±Ø¨ÙØ©</a></li> 177 178 </ul> 179 </li> 180 181 <!-- Optional slot for extra nav items (e.g. the design guide's demo 182 language picker) before the theme picker; empty when unused. --> 183 184 <li class="nav-item dropdown theme-picker"> 185 <span class="vapor-nav-label" aria-hidden="true">Thema</span> 186 <button type="button" class="nav-link dropdown-no-outline d-flex align-items-center theme-picker-toggle" id="theme-picker-toggle" data-bs-toggle="dropdown" aria-expanded="false" aria-label="Thema auswählen"> 187 <span class="theme-toggle-icon" aria-hidden="true"></span> 188 <span class="theme-name">System</span> 189 <span class="vapor-icon icon-chevron-down ms-1 theme-chevron" aria-hidden="true"></span> 190 </button> 191 <ul class="dropdown-menu dropdown-menu-end animate slideIn"> 192 <li><a href="#" class="dropdown-item d-flex align-items-center" data-theme="light"><span class="theme-opt-icon" aria-hidden="true"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="4"/><path d="M12 2v2M12 20v2M4.93 4.93l1.41 1.41M17.66 17.66l1.41 1.41M2 12h2M20 12h2M6.34 17.66l-1.41 1.41M19.07 4.93l-1.41 1.41"/></svg></span>Hell</a></li> 193 <li><a href="#" class="dropdown-item d-flex align-items-center" data-theme="dark"><span class="theme-opt-icon" aria-hidden="true"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"/></svg></span>Dunkel</a></li> 194 <li><a href="#" class="dropdown-item d-flex align-items-center" data-theme="system"><span class="theme-opt-icon" aria-hidden="true"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="2" y="4" width="20" height="13" rx="2"/><path d="M8 21h8M12 17v4"/></svg></span>System</a></li> 195 </ul> 196 </li> 197 </ul> 198 </div> 199 <div class="vapor-nav-backdrop" id="vapor-nav-backdrop"></div> 200 </div> 201</nav> 202 203 <main id="main-content" tabindex="-1"> 204<div class="container"><div><div class="d-flex mx-auto align-items-center justify-content-center" aria-label="Vapor" id="vapor-hero-logo"><span id="vapor-hero-logo-mark" aria-hidden="true"></span><span id="vapor-hero-logo-text">Vapor</span></div><h1 class="main-title">Swift, aber auf dem Server</h1><p class="main-page-caption d-flex mx-auto">Vapor bietet eine sichere, performante und einfach zu bedienende Grundlage, um HTTP-Server, Backends und APIs in Swift zu erstellen</p><div class="main-page-callout-buttons d-flex align-items-center justify-content-center flex-column flex-lg-row"><div class="w-mobile-100">
204<a href="https://docs.vapor.codes/" target="_blank" id="main-page-callout-button-link" class="btn btn-primary w-mobile-100">Loslegen</a></div><div class="d-flex align-items-center ms-lg-5"><a href="https://github.com/vapor/vapor" class="btn btn-link btn-secondary-link d-flex align-items-center"><span class="vapor-icon icon-github-line icon-secondary btn-icon me-2" aria-hidden="true"></span><span id="main-page-callout-stars-count" data-stars-template="{count} Sterne auf GitHub">⦠Sterne auf GitHub</span></a></div></div><div class="main-code-demo mx-auto"><pre><code class="language-swift">import Vapor 205 206let app = try await Application.make(.detect()) 207 208app.get("hello") { req in 209 "Hello, world!" 210} 211 212try await app.execute() 213 214 215 216 217 218 219 220</code></pre></div></div><div class="used-by-companies"><h2 class="used-by-caption">Im Einsatz bei Unternehmen wie:</h2><div class="d-flex flex-row flex-wrap align-items-center justify-content-center used-by-companies-items"><div class="used-by-item"><a href="https://johnlewis.com" target="_blank" class="used-by-logo"><span class="used-by-icon icon-john-lewis" title="John Lewis" aria-label="John Lewis"><span class="visually-hidden">John Lewis</span></span></a></div><div class="used-by-item"><a href="https://swiftpackageindex.com" target="_blank" class="used-by-logo"><span class="used-by-icon icon-swift-package-index" title="Swift Package Index" aria-label="Swift Package Index"><span class="visually-hidden">Swift Package Index</span></span></a></div><div class="used-by-item"><a href="https://allegro.pl" target="_blank" class="used-by-logo"><span class="used-by-icon icon-allegro" title="Allegro" aria-label="Allegro"><span class="visually-hidden">Allegro</span></span></a></div></div></div><div class="main-site-packages-list"><h2 class="main-site-section-header">Entwickle serverseitig mit den Werkzeugen, die du bereits kennst</h2><p class="caption">Du musst keine Sprache von Grund auf neu lernen (oder ein eigenes Team aufbauen) nur für dein Backend. Vapor baut auf Apples SwiftNIO auf, sodass du die Sprache verwenden kannst, die du bereits kennst und liebst.</p><div class="main-site-packages-grid row row-cols-1 row-cols-lg-2 gx-5"><div class="col"><div class="card h-100 vapor-feature-card"><div>
220<span class="vapor-icon feature-card-icon icon-server-04"></span><h3 class="card-title">Vapor</h3><p class="card-text">Erstelle effiziente APIs in einer Sprache, die du liebst. Definiere Routen, sende und empfange JSON und baue HTTP-Server.</p><a href="https://docs.vapor.codes/" target="_blank" class="learn-more-link">Mehr erfahren<span class="vapor-icon icon-chevron-right"></span></a></div></div></div><div class="col"><div class="card h-100 vapor-feature-card"><div><span class="vapor-icon feature-card-icon icon-database-03"></span><h3 class="card-title">Fluent</h3><p class="card-text">Erstelle Models und interagiere mit deiner Datenbank in nativem, sicherem Swift-Code, ohne SQL schreiben zu müssen.</p><a href="https://docs.vapor.codes/fluent/overview/" target="_blank" class="learn-more-link">Mehr erfahren<span class="vapor-icon icon-chevron-right"></span></a></div></div></div><div class="col"><div class="card h-100 vapor-feature-card"><div><span class="vapor-icon feature-card-icon icon-key-01"></span><h3 class="card-title">JWT</h3><p class="card-text">Erstelle, signiere und verifiziere JSON Web Tokens in Swift. Basiert auf Swift Crypto.</p><a href="https://docs.vapor.codes/security/jwt/" target="_blank" class="learn-more-link">Mehr erfahren<span class="vapor-icon icon-chevron-right"></span></a></div></div></div><div class="col"><div class="card h-100 vapor-feature-card"><div>
220<span class="vapor-icon feature-card-icon icon-code-browser"></span><h3 class="card-title">Leaf</h3><p class="card-text">Eine in Swift geschriebene Template-Engine. Generiere HTML für Web-Apps und E-Mails mit einer einfachen Syntax, die jeder nutzen kann.</p><a href="https://docs.vapor.codes/leaf/overview/" target="_blank" class="learn-more-link">Mehr erfahren<span class="vapor-icon icon-chevron-right"></span></a></div></div></div></div></div><div class="main-site-features"><div class="row row-cols-1 row-cols-lg-2 align-items-center"><div class="col order-2 order-lg-1 g-lg-0" id="performance"><div class="col order-2 order-lg-1 g-lg-0"><div class="code-example-explainer"><span class="vapor-icon icon-dataflow-03"></span><h2>Hochperformante APIs und Server</h2><p>Dank einer nicht-blockierenden, ereignisgesteuerten Architektur kannst du mit Vapor hochperformante, skalierbare APIs und HTTP-Server erstellen. Mit dem Concurrency-Modell von Swift schreibst du klaren, wartbaren Code, der effizient und leicht zu lesen ist.</p><a href="https://docs.vapor.codes/" target="_blank" class="btn btn-primary w-mobile-100">Loslegen<span class="vapor-icon icon-chevron-right"></span></a></div></div></div><div class="col order-1 order-lg-2 g-lg-0 position-relative"><div class="code-example"><pre><code class="language-swift">app.get("todos", ":id") { req async throws -> Todo in 221 let id: UUID = try req.parameters.require("id") 222 223 guard 224 let todo = try await Todo.find(id, on: req.db) 225 else { 226 throw Abort(.notFound) 227 } 228 229 return todo 230}</code></pre></div><div class="code-outline-right"></div></div></div><div class="row row-cols-1 row-cols-lg-2 align-items-center"><div class="col order-2 g-lg-0"><div class="col order-2 order-lg-1 g-lg-0"><div class="code-example-explainer"><span class="vapor-icon icon-brackets-check"></span><h2>Veröffentliche mit Zuversicht â sogar freitags</h2><p>Dank Vapors ausdrucksstarkem, protokollorientiertem Design kannst du deinen Code mit gutem Gewissen veröffentlichen. Durch unseren starken Fokus auf Typsicherheit werden viele Fehler und Probleme bereits früh vom Compiler erkannt.</p><a href="https://docs.vapor.codes/" target="_blank" class="btn btn-primary w-mobile-100">Loslegen<span class="vapor-icon icon-chevron-right"></span></a></div></div></div><div class="col order-1 g-lg-0 position-relative"><div class="code-example errored"><pre><code class="language-swift">func search(req: Request) async throws -> [Todo] { 231 let name: String = try req.query.get(at: "name") 232 233 let results = try await Todo.query(on: req.db) 234 .filter(\.$number == name) 235 .all() 236 237 return results 238}</code></pre></div><div class="code-outline-left"></div><div class="code-error"><div class="code-error-sidebar"><span class="vapor-icon icon-alert-octagon" aria-hidden="true"></span></div><span class="code-error-message">Binary operator '==' cannot be applied to operands of type 'KeyPath<Todo, 239FieldProperty<Todo, Int>>' and 'String'</span></div></div></div></div><div class="row row-cols-1 row-cols-lg-2 align-items-center" id="integrations"><div class="col order-2 order-lg-1 mt-5 mt-lg-0"><div class="code-example-explainer"><span>Integrationen</span><h2>Vollständige Integration in deinen gesamten Stack</h2><p>Vapors ausgereiftes Ãkosystem umfasst über hundert offizielle und von der Community gepflegte, serverorientierte Swift-Pakete, die das Entwickeln deiner Anwendungen einfach und effizient machen.</p><a href="https://docs.vapor.codes/" target="_blank" class="btn btn-primary w-mobile-100">Loslegen<span class="vapor-icon icon-chevron-right" aria-hidden="true"></span></a></div></div><div class="col order-1 order-lg-2"><img src="https://design.vapor.codes/images/integrations.png" alt="Vapor Integrations" class="img-fluid" id="integrations-image"/></div></div><div class="row row-cols-1 row-cols-lg-2" id="showcase"><div class="showcase-header"><h3>Verwendet von den Teams hinter diesen groÃartigen Apps</h3><a href="/de/showcase" class="btn d-none d-lg-flex align-items-center text-decoration-none">Vollständige Liste ansehen<span class="ms-2 vapor-icon icon-chevron-right" aria-hidden="true"></span></a></div><div class="showcase-cards scrollable" id="home-page-showcase-cards-list"><div class="card" id="swiftfiddle-card"><img src="https://design.vapor.codes/images/swiftfiddle-card.png" alt="SwiftFiddle Card" class="card-img-top"/><div class="card-body d-flex flex-column"><h4 class="card-title">SwiftFiddle</h4><p class="card-text">SwiftFiddle is an online playground for creating, sharing and embedding Swift fiddles</p><a href="https://swiftfiddle.com" class="btn mt-auto">In Aktion sehen<span class="vapor-icon icon-arrow-narrow-up-right"></span></a></div></div><div class="card" id="swiftpackageindex-card"><img src="/static/images/showcase/swift-package-index.png" alt="SwiftPackageIndex Card" class="card-img-top"/><div class="card-body d-flex flex-column"><h4 class="card-title">SwiftPackageIndex</h4><p class="card-text">The Swift Package Index is a searchable index of Swift packages and their compatibility with various platforms.</p><a href="https://swiftpackageindex.com" class="btn mt-auto">In Aktion sehen<span class="vapor-icon icon-arrow-narrow-up-right"></span></a></div></div><div class="card" id="underway-nyc-card"><img src="https://design.vapor.codes/images/underway-nyc-card.png" alt="Underway NYC Card" class="card-img-top"/><div class="card-body d-flex flex-column"><h4 class="card-title">
239Underway NYC</h4><p class="card-text">Quickly locate yourself on the official MTA map of NYC and get real-time train arrivals at that subway stop</p><a href="https://www.underway.nyc" class="btn mt-auto">In Aktion sehen<span class="vapor-icon icon-arrow-narrow-up-right"></span></a></div></div><div class="card" id="litmaps-card"><img src="/static/images/showcase/litmaps.png" alt="Litmaps Card" class="card-img-top"/><div class="card-body d-flex flex-column"><h4 class="card-title">Litmaps</h4><p class="card-text">Litmaps is a browser-based research platform designed for clarity, comprehensiveness, and collaboration.</p><a href="https://litmaps.com" class="btn mt-auto">In Aktion sehen<span class="vapor-icon icon-arrow-narrow-up-right"></span></a></div></div></div><div class="btn-group scroll-button-group" data-scrollable="home-page-showcase-cards-list"><button type="button" class="arrow-button left-scroll-button"><span class="vapor-icon icon-arrow-left" aria-label="Vorheriges Showcase"><span class="visually-hidden">Vorheriges Showcase</span></span></button><button type="button" class="arrow-button right-scroll-button"><span class="vapor-icon icon-arrow-right" aria-label="Nächstes Showcase"><span class="visually-hidden">Nächstes Showcase</span></span></button></div></div><div class="row row-cols-1 row-cols-lg-2" id="discord"><div class="col"><img src="https://design.vapor.codes/images/discord-chat.png" alt="Vapor Discord server" class="img-fluid" id="discord-chat-image"/></div><div class="col"><div class="col order-2 order-lg-1 g-lg-0"><div class="px-4 px-lg-0"><h2>Tritt der gröÃten Community von Swift-Backend-Entwicklern bei</h2><p>Vapors über 13.000 Mitglieder zählende Discord-Community steht dir auf deinem Weg zur Seite. Stelle Fragen, bring dich ein und werde Teil einer lebendigen, freundlichen Ecke des Internets.</p><a href="https://vapor.team/" target="_blank" class="btn btn-primary w-mobile-100">Tritt unserem Discord bei</a><a href="https://github.com/vapor/vapor" class="ms-3 learn-more-link mt-lg-0 mt-3 mb-lg-0 mb-3">Mitwirken<span class="vapor-icon icon-chevron-right" aria-hidden="true"></span></a></div></div></div></div><div class="row row-cols-1 row-cols-lg-2 align-items-center" id="api-docs"><div class="col order-2 order-lg-1 mt-5 mt-lg-0"><h2 class="d-none d-lg-block">Erhalte alle Werkzeuge, die du zum Entwickeln mit Swift brauchst</h2><a href="https://docs.vapor.codes/" target="_blank" class="btn btn-primary w-mobile-100">Loslegen</a><a href="https://api.vapor.codes/" target="_blank" class="ms-3 learn-more-link mt-lg-0 mt-3 mb-lg-0 mb-3">Zur API-Dokumentation<span class="vapor-icon icon-chevron-right" aria-hidden="true"></span></a></div><div class="col items-list order-1 order-lg-2"><div><h2 class="d-lg-none px-4">Erhalte alle Werkzeuge, die du zum Entwickeln mit Swift brauchst</h2><ul class="px-4 p-lg-0"><li><span class="align-middle vapor-icon icon-check-circle icon-secondary me-2 d-inline-block" aria-hidden="true"></span><span class="align-middle">Erstelle mühelos neue Projekte mit der Vapor Toolbox</span></li><li><span class="align-middle vapor-icon icon-check-circle icon-secondary me-2 d-inline-block" aria-hidden="true"></span><span class="align-middle">Umfangreiche Dokumentation und API-Referenz</span></li><li><span class="align-middle vapor-icon icon-check-circle icon-secondary me-2 d-inline-block" aria-hidden="true"></span><span class="align-middle">Alles, was du zum Entwickeln von Backends und APIs brauchst</span></li><li><span class="align-middle vapor-icon icon-check-circle icon-secondary me-2 d-inline-block" aria-hidden="true"></span><span class="align-middle">Volle Unterstützung für das Concurrency-Modell von Swift</span></li></ul></div></div></div><div class="container"><div class="row" id="sponsors"><div id="sponsors-header"><h3>Unterstützt von unseren groÃartigen Sponsoren und Förderern</h3><a href="https://github.com/sponsors/vapor" class="btn btn-secondary">Werde Unterstützer</a></div><div class="sponsors-list" id="home-page-sponsors-list"><div class="card"><div class="card-body d-flex flex-column"><img src="/static/images/sponsors/brokenhands.png" alt="Broken Hands" class="card-img-top"/><h4 class="card-title">Broken Hands</h4><p class="card-text">Providing Vapor training and consulting for clients around the world.</p><a href="https://www.brokenhands.io/" target="_blank" class="learn-more-link mt-auto">Mehr erfahren<span class="vapor-icon icon-chevron-right"></span></a></div></div><div class="card"><div class="card-body d-flex flex-column"><img src="/static/images/sponsors/omrd.png" alt="omrd" class="card-img-top"/><h4 class="card-title">omrd</h4><p class="card-text">omrd provides consultation services for dental elated scans.</p><a href="https://omrd.com" target="_blank" class="learn-more-link mt-auto">Mehr erfahren<span class="vapor-icon icon-chevron-right"></span></a></div></div><div class="card"><div class="card-body d-flex flex-column"><img src="/static/images/sponsors/emerge-tools.png" alt="Emerge Tools" class="card-img-top"/><h4 class="card-title">Emerge Tools</h4><p class="card-text">Emerge Tools is a suite of revolutionary products designed to supercharge mobile apps and the teams that build them.</p><a href="https://www.emergetools.com" target="_blank" class="learn-more-link mt-auto">Mehr erfahren<span class="vapor-icon icon-chevron-right"></span></a></div></div></div><div class="btn-group scroll-button-group" data-scrollable="home-page-sponsors-list"><button type="button" class="arrow-button left-scroll-button"><span class="vapor-icon icon-arrow-left" aria-label="Vorherige Sponsoren"><span class="visually-hidden">Vorherige Sponsoren</span></span></button><button type="button" class="arrow-button right-scroll-button" aria-label="Nächste Sponsoren"><span class="vapor-icon icon-arrow-right"><span class="visually-hidden">Nächste Sponsoren</span></span></button></div></div></div></div> 240</main> 241 <footer class="mt-5"> 242 <div class="container mt-5"> 243 <div class="row"> 244 <div id="footer-callout" class="col-md">
245 <span id="vapor-logo-footer" class="d-inline-flex align-items-center" aria-label="Vapor"> 246 <span id="vapor-logo-footer-mark" aria-hidden="true"></span> 247 <span id="vapor-logo-footer-text">Vapor</span> 248 </span> 249 <div class="w-lg-50 mt-4">Vapor bietet eine sichere, performante und einfach zu bedienende Grundlage, um HTTP-Server, Backends und APIs in Swift zu erstellen</div> 250 </div> 251 <div class="mt-4 mt-lg-0 col-md"> 252 <div class="row"> 253 <div id="footer-community-links" class="col-6 ps-lg-5"> 254 <h2 class="footer-heading ps-lg-5">Community</h2> 255 <ul class="ps-lg-5"> 256 <li> 257 258 <a href="/de/team" class="nav-link">Team</a> 259 260 </li> 261 <li><a href="https://vapor.team" target="_blank" class="nav-link">Tritt unserem Discord bei</a></li> 262 <li><a href="https://store.vapor.codes" target="_blank" class="nav-link">Shop</a></li> 263 <li> 264 265 <a href="/de/showcase" class="nav-link">Showcase</a> 266 267 </li> 268 <li> 269 270 <a href="/de/supporters" class="nav-link">Unterstützer</a> 271 272 </li> 273 </ul> 274 </div> 275 <div id="footer-resources-links" class="col-6"> 276 <h2 class="footer-heading">Ressourcen</h2> 277 <ul> 278 <li> 279 280 <a href="https://blog.vapor.codes" target="_blank" class="nav-link">Blog</a> 281 282 </li> 283 <li> 284 285 <a href="https://docs.vapor.codes" target="_blank" class="nav-link">Framework-Dokumentation</a> 286 287 </li> 288 <li> 289 290 <a href="https://api.vapor.codes" target="_blank" class="nav-link">API-Dokumentation</a> 291 292 </li> 293 <li><a href="https://design.vapor.codes/VaporPressKit.zip" class="nav-link" download>Pressekit</a></li> 294 <li><a href="https://vapor.team" target="_blank" class="nav-link">Hilfe</a></li> 295 </ul> 296 </div> 297 </div> 298 </div> 299 </div> 300 <hr/> 301 <div id="footer-bottom"> 302 <div id="footer-copyright" class="my-auto">© QuTheory, LLC 2026</div> 303 <div id="footer-social-links" class="ms-auto"> 304 <ul class="d-flex"> 305 <li class="me-4"><a href="https://twitter.com/codevapor" target="_blank" rel="me"><span class="vapor-icon icon-twitter-fill" aria-label="Twitter"><span class="visually-hidden">Twitter</span></span></a></li> 306 <li class="me-4"><a href="https://hachyderm.io/@codevapor" target="_blank" rel="me"><span class="vapor-icon icon-mastodon-fill" aria-label="Mastodon"><span class="visually-hidden">Mastodon</span></span></a></li> 307 <li class="me-4"><a href="https://bsky.app/profile/vapor.codes" target="_blank" rel="me"><span class="vapor-icon icon-bsky-fill" aria-label="Bluesky"><span class="visually-hidden">Bsky</span></span></a></li> 308 <li><a href="https://github.com/vapor" target="_blank" rel="me"><span class="vapor-icon icon-github-fill" aria-label="GitHub"><span class="visually-hidden">GitHub</span></span></a></li> 309 </ul> 310 </div> 311 </div> 312 </div> 313</footer> 314 315
315<script src="https://design.vapor.codes/main.js"></script>
315 316
316<script src="/static/js/updateStarsCount.js"></script>
316 317
317<script src="/static/js/scrollNavbar.js"></script>
317 318
318<script src="/static/js/scrollShowcase.js"></script>
318 319</body> 320</html> 321
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.