{"id":1976,"url":"https://github.com/vapor/vapor","last_synced_at":"2026-01-16T11:38:13.113Z","repository":{"id":37484171,"uuid":"49910095","full_name":"vapor/vapor","owner":"vapor","description":"💧 A server-side Swift HTTP web framework.","archived":false,"fork":false,"pushed_at":"2026-01-14T13:48:57.000Z","size":18064,"stargazers_count":25895,"open_issues_count":112,"forks_count":1518,"subscribers_count":518,"default_branch":"main","last_synced_at":"2026-01-14T17:34:56.163Z","etag":null,"topics":["framework","http","http2","server","server-side-swift","swift","vapor","web-framework"],"latest_commit_sha":null,"homepage":"https://vapor.codes","language":"Swift","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/vapor.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":".github/contributing.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":".github/maintainers.md","copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":["vapor"],"open_collective":"vapor"}},"created_at":"2016-01-18T22:37:52.000Z","updated_at":"2026-01-14T13:51:36.000Z","dependencies_parsed_at":"2025-12-05T19:00:32.622Z","dependency_job_id":null,"html_url":"https://github.com/vapor/vapor","commit_stats":{"total_commits":4535,"total_committers":279,"mean_commits":16.25448028673835,"dds":0.7552370452039692,"last_synced_commit":"a6f35de0f1ffbd800fc4b8dddff39eb9159ef3c2"},"previous_names":[],"tags_count":624,"template":false,"template_full_name":null,"purl":"pkg:github/vapor/vapor","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vapor%2Fvapor","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vapor%2Fvapor/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vapor%2Fvapor/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vapor%2Fvapor/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vapor","download_url":"https://codeload.github.com/vapor/vapor/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vapor%2Fvapor/sbom","scorecard":{"id":510431,"data":{"date":"2025-08-11","repo":{"name":"github.com/vapor/vapor","commit":"db49e552f120d33dadceac5dbeef6c9e5199ac0c"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":6.7,"checks":[{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Code-Review","score":10,"reason":"all changesets reviewed","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/api-docs.yml:1","Warn: no topLevel permission defined: .github/workflows/sponsors.yml:1","Warn: no topLevel permission defined: .github/workflows/test.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Maintained","score":10,"reason":"6 commit(s) and 6 issue activity found in the last 90 days -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: third-party GitHubAction not pinned by hash: .github/workflows/api-docs.yml:9: update your workflow using https://app.stepsecurity.io/secureworkflow/vapor/vapor/api-docs.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/sponsors.yml:9: update your workflow using https://app.stepsecurity.io/secureworkflow/vapor/vapor/sponsors.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/sponsors.yml:13: update your workflow using https://app.stepsecurity.io/secureworkflow/vapor/vapor/sponsors.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/sponsors.yml:19: update your workflow using https://app.stepsecurity.io/secureworkflow/vapor/vapor/sponsors.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/sponsors.yml:29: update your workflow using https://app.stepsecurity.io/secureworkflow/vapor/vapor/sponsors.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test.yml:57: update your workflow using https://app.stepsecurity.io/secureworkflow/vapor/vapor/test.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test.yml:25: update your workflow using https://app.stepsecurity.io/secureworkflow/vapor/vapor/test.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test.yml:29: update your workflow using https://app.stepsecurity.io/secureworkflow/vapor/vapor/test.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/test.yml:41: update your workflow using https://app.stepsecurity.io/secureworkflow/vapor/vapor/test.yml/main?enable=pin","Info:   0 out of   5 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   4 third-party GitHubAction dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: MIT License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Security-Policy","score":10,"reason":"security policy file detected","details":["Info: security policy file detected: github.com/vapor/.github/SECURITY.md:1","Info: Found linked content: github.com/vapor/.github/SECURITY.md:1","Info: Found disclosure, vulnerability, and/or timelines in security policy: github.com/vapor/.github/SECURITY.md:1","Info: Found text in security policy: github.com/vapor/.github/SECURITY.md:1"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Branch-Protection","score":8,"reason":"branch protection is not maximal on development and all release branches","details":["Info: 'allow deletion' disabled on branch 'main'","Info: 'force pushes' disabled on branch 'main'","Warn: required approving review count is 1 on branch 'main'","Warn: codeowners review is not required on branch 'main'","Info: status check found to merge onto on branch 'main'","Info: PRs are required in order to make changes on branch 'main'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 30 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-20T00:24:11.303Z","repository_id":37484171,"created_at":"2025-08-20T00:24:11.303Z","updated_at":"2025-08-20T00:24:11.303Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28478350,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-16T06:30:42.265Z","status":"ssl_error","status_checked_at":"2026-01-16T06:30:16.248Z","response_time":107,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["framework","http","http2","server","server-side-swift","swift","vapor","web-framework"],"created_at":"2024-01-05T20:16:00.329Z","updated_at":"2026-01-16T11:38:13.090Z","avatar_url":"https://github.com/vapor.png","language":"Swift","funding_links":["https://github.com/sponsors/vapor","https://opencollective.com/vapor","https://opencollective.com/vapor/backer/0/website","https://opencollective.com/vapor/backer/1/website","https://opencollective.com/vapor/backer/2/website","https://opencollective.com/vapor/backer/3/website","https://opencollective.com/vapor/backer/4/website","https://opencollective.com/vapor/backer/5/website","https://opencollective.com/vapor/backer/6/website","https://opencollective.com/vapor/backer/7/website","https://opencollective.com/vapor/backer/8/website","https://opencollective.com/vapor/backer/9/website","https://opencollective.com/vapor/backer/10/website","https://opencollective.com/vapor/backer/11/website","https://opencollective.com/vapor/backer/12/website","https://opencollective.com/vapor/backer/13/website","https://opencollective.com/vapor/backer/14/website","https://opencollective.com/vapor/backer/15/website","https://opencollective.com/vapor/backer/16/website","https://opencollective.com/vapor/backer/17/website","https://opencollective.com/vapor/backer/18/website","https://opencollective.com/vapor/backer/19/website","https://opencollective.com/vapor/backer/20/website","https://opencollective.com/vapor/backer/21/website","https://opencollective.com/vapor/backer/22/website","https://opencollective.com/vapor/backer/23/website","https://opencollective.com/vapor/backer/24/website","https://opencollective.com/vapor/backer/25/website","https://opencollective.com/vapor/backer/26/website","https://opencollective.com/vapor/backer/27/website","https://opencollective.com/vapor/backer/28/website","https://opencollective.com/vapor/backer/29/website","https://opencollective.com/vapor/backer/30/website","https://opencollective.com/vapor/backer/31/website","https://opencollective.com/vapor/backer/32/website","https://opencollective.com/vapor/backer/33/website","https://opencollective.com/vapor/backer/34/website","https://opencollective.com/vapor/backer/35/website","https://opencollective.com/vapor/backer/36/website","https://opencollective.com/vapor/backer/37/website","https://opencollective.com/vapor/backer/38/website","https://opencollective.com/vapor/backer/39/website","https://opencollective.com/vapor/backer/40/website","https://opencollective.com/vapor/backer/41/website","https://opencollective.com/vapor/backer/42/website","https://opencollective.com/vapor/backer/43/website","https://opencollective.com/vapor/backer/44/website","https://opencollective.com/vapor/backer/45/website","https://opencollective.com/vapor/backer/46/website","https://opencollective.com/vapor/backer/47/website","https://opencollective.com/vapor/backer/48/website"],"categories":["Server","Libs","Swift Tools and Frameworks","Projects using SwiftNIO","Swift Tools, Libraries, and Frameworks","Swift Development","Tools","Swift","Server Side Swift Frameworks","Swift Tools","HarmonyOS","[Swift](#swift)","Vapor:","CLI and Server","Network [🔝](#readme)","Github","The Index","🌐 Web Development - Full-Stack"],"sub_categories":["Keychain","Network","Interfaces","Packages \u0026 executables","Swift Tools, Libraries, and Frameworks","JavaScript Libraries for Machine Learning","Mesh networks","In-memory data grids","Other free courses","Windows Manager","Example","Web Libraries"],"readme":"\u003ca href=\"https://discord.gg/vapor\"\u003e\n\n![Vapor](https://user-images.githubusercontent.com/1342803/75634175-4876d680-5bd9-11ea-90d6-12c7b6a9ee3f.png)\n\n\u003c/a\u003e\n\n\u003cp align=\"center\"\u003e\n    \u003ca href=\"https://docs.vapor.codes/4.0/\"\u003e\n        \u003cimg src=\"https://design.vapor.codes/images/readthedocs.svg\" alt=\"Documentation\"\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://discord.gg/vapor\"\u003e\n        \u003cimg src=\"https://design.vapor.codes/images/discordchat.svg\" alt=\"Team Chat\"\u003e\n    \u003c/a\u003e\n    \u003ca href=\"LICENSE\"\u003e\n        \u003cimg src=\"https://design.vapor.codes/images/mitlicense.svg\" alt=\"MIT License\"\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://github.com/vapor/vapor/actions/workflows/test.yml\"\u003e\n        \u003cimg src=\"https://img.shields.io/github/actions/workflow/status/vapor/vapor/test.yml?event=push\u0026style=plastic\u0026logo=github\u0026label=tests\u0026logoColor=%23ccc\" alt=\"Continuous Integration\"\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://codecov.io/gh/vapor/vapor\"\u003e\n        \u003cimg src=\"https://img.shields.io/codecov/c/github/vapor/vapor?style=plastic\u0026logo=codecov\u0026label=codecov\" alt=\"Code Coverage\"\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://swift.org\"\u003e\n        \u003cimg src=\"https://design.vapor.codes/images/swift60up.svg\" alt=\"Swift 6.0+\"\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://hachyderm.io/@codevapor\"\u003e\n        \u003cimg src=\"https://img.shields.io/badge/%20-@codevapor-6364f6.svg?style=plastic\u0026logo=mastodon\u0026labelColor=gray\u0026logoColor=%239394ff\" alt=\"Mastodon\"\u003e\n    \u003c/a\u003e\n\u003c/p\u003e\n\n\u003cbr\u003e\n\nVapor is an HTTP web framework for Swift. It provides a beautifully expressive and easy-to-use foundation for your next website, API, or cloud project.\n\nTake a look at some of the [awesome stuff](https://github.com/vapor-community/awesome-vapor) created with Vapor.\n\n### 💧 Community\n\nJoin the welcoming community of fellow Vapor developers on [Discord](https://vapor.team).\n\n### 🚀 Contributing\n\nTo contribute a **feature or idea** to Vapor, [create an issue](https://github.com/vapor/vapor/issues/new) explaining your idea or bring it up on [Discord](https://vapor.team).\n\nIf you find a **bug**, please [create an issue](https://github.com/vapor/vapor/issues/new). \n\nIf you find a **security vulnerability**, please contact [security@vapor.codes](mailto:security@vapor.codes) as soon as possible.\n\n### 💛 Sponsors\n\nSupport Vapor's development by [becoming a sponsor](https://github.com/sponsors/vapor).\n\n\u003ca href=\"https://www.brokenhands.io\"\u003e\n    \u003cimg src=\"https://user-images.githubusercontent.com/9938337/137103192-21f99099-6aaa-4cc1-a1a7-21ee767a72d1.png\" height=\"100px\" alt=\"Broken Hands\"\u003e\n\u003c/a\u003e\n\u003ca href=\"https://www.emergetools.com\"\u003e\n    \u003cimg src=\"https://user-images.githubusercontent.com/9938337/265658253-cb37d2fa-3251-497f-8eeb-ba7c95af373b.svg\" height=\"100px\" alt=\"Emerge Tools\"\u003e\n\u003c/a\u003e\n\u003ca href=\"https://github.com/MrLotU\"\u003e\n    \u003cimg src=\"https://user-images.githubusercontent.com/1342803/79599312-426a8580-80b3-11ea-89b3-8b2722485e37.png\" height=\"100px\" alt=\"Jari\"\u003e\n\u003c/a\u003e\n\u003ca href=\"https://github.com/DonutDane\"\u003e\n    \u003cimg src=\"https://user-images.githubusercontent.com/9938337/265657642-6b6b1705-9611-4547-8e2f-a3773fda87c6.png\" height=\"100px\" alt=\"Donut Dane\"\u003e\n\u003c/a\u003e\n\u003ca href=\"https://macstadium.com\"\u003e\n    \u003cimg src=\"https://uploads-ssl.webflow.com/5ac3c046c82724970fc60918/5c019d917bba312af7553b49_MacStadium-developerlogo.png\" height=\"100px\" alt=\"MacStadium\"\u003e\n\u003c/a\u003e\n\n\n\n### 💚 Backers\nSupport Vapor's development by [becoming a backer](https://github.com/sponsors/vapor).\n\n\u003c!-- backers --\u003e\u003ca href=\"https://github.com/slashmo\"\u003e\u003cimg src=\"https://github.com/slashmo.png\" width=\"60px\" alt=\"Moritz Lang\" /\u003e\u003c/a\u003e\u003ca href=\"https://github.com/maartene\"\u003e\u003cimg src=\"https://github.com/maartene.png\" width=\"60px\" alt=\"Maarten Engels\" /\u003e\u003c/a\u003e\u003ca href=\"https://github.com/tkrajacic\"\u003e\u003cimg src=\"https://github.com/tkrajacic.png\" width=\"60px\" alt=\"Thomas Krajacic\" /\u003e\u003c/a\u003e\u003ca href=\"https://github.com/jessetipton\"\u003e\u003cimg src=\"https://github.com/jessetipton.png\" width=\"60px\" alt=\"Jesse Tipton\" /\u003e\u003c/a\u003e\u003ca href=\"https://github.com/steve-h\"\u003e\u003cimg src=\"https://github.com/steve-h.png\" width=\"60px\" alt=\"Steve Hume\" /\u003e\u003c/a\u003e\u003ca href=\"https://github.com/mikkelu\"\u003e\u003cimg src=\"https://github.com/mikkelu.png\" width=\"60px\" alt=\"Mikkel Ulstrup\" /\u003e\u003c/a\u003e\u003ca href=\"https://github.com/g-Off\"\u003e\u003cimg src=\"https://github.com/g-Off.png\" width=\"60px\" alt=\"Geoffrey Foster\" /\u003e\u003c/a\u003e\u003ca href=\"https://github.com/PSchmiedmayer\"\u003e\u003cimg src=\"https://github.com/PSchmiedmayer.png\" width=\"60px\" alt=\"Paul Schmiedmayer\" /\u003e\u003c/a\u003e\u003ca href=\"https://github.com/ScottRobbins\"\u003e\u003cimg src=\"https://github.com/ScottRobbins.png\" width=\"60px\" alt=\"Scott Robbins\" /\u003e\u003c/a\u003e\u003ca href=\"https://github.com/finestructure\"\u003e\u003cimg src=\"https://github.com/finestructure.png\" width=\"60px\" alt=\"Sven A. Schmidt\" /\u003e\u003c/a\u003e\u003ca href=\"https://github.com/SpencerCurtis\"\u003e\u003cimg src=\"https://github.com/SpencerCurtis.png\" width=\"60px\" alt=\"Spencer Curtis\" /\u003e\u003c/a\u003e\u003ca href=\"https://github.com/rausnitz\"\u003e\u003cimg src=\"https://github.com/rausnitz.png\" width=\"60px\" alt=\"Zach Rausnitz\" /\u003e\u003c/a\u003e\u003ca href=\"https://github.com/masterofinsanity\"\u003e\u003cimg src=\"https://github.com/masterofinsanity.png\" width=\"60px\" alt=\"Tim „Timinator“ Kretzschmar\" /\u003e\u003c/a\u003e\u003ca href=\"https://github.com/klaas\"\u003e\u003cimg src=\"https://github.com/klaas.png\" width=\"60px\" alt=\"Klaas\" /\u003e\u003c/a\u003e\u003ca href=\"https://github.com/Andrewangeta\"\u003e\u003cimg src=\"https://github.com/Andrewangeta.png\" width=\"60px\" alt=\"Andrew Edwards\" /\u003e\u003c/a\u003e\u003ca href=\"https://github.com/addli\"\u003e\u003cimg src=\"https://github.com/addli.png\" width=\"60px\" alt=\"+Li, Inc.\" /\u003e\u003c/a\u003e\u003ca href=\"https://github.com/doozMen\"\u003e\u003cimg src=\"https://github.com/doozMen.png\" width=\"60px\" alt=\"Stijn Willems\" /\u003e\u003c/a\u003e\u003ca href=\"https://github.com/bitwit\"\u003e\u003cimg src=\"https://github.com/bitwit.png\" width=\"60px\" alt=\"Kyle Newsome\" /\u003e\u003c/a\u003e\u003ca href=\"https://github.com/viaaurelia\"\u003e\u003cimg src=\"https://github.com/viaaurelia.png\" width=\"60px\" alt=\"Via Aurelia Solutions\" /\u003e\u003c/a\u003e\u003ca href=\"https://github.com/kkiermasz\"\u003e\u003cimg src=\"https://github.com/kkiermasz.png\" width=\"60px\" alt=\"Jakub Kiermasz\" /\u003e\u003c/a\u003e\u003ca href=\"https://github.com/bdrelling\"\u003e\u003cimg src=\"https://github.com/bdrelling.png\" width=\"60px\" alt=\"Brian Drelling\" /\u003e\u003c/a\u003e\u003ca href=\"https://github.com/mayondigital\"\u003e\u003cimg src=\"https://github.com/mayondigital.png\" width=\"60px\" alt=\"\" /\u003e\u003c/a\u003e\u003ca href=\"https://github.com/mattesmohr\"\u003e\u003cimg src=\"https://github.com/mattesmohr.png\" width=\"60px\" alt=\"Mattes Mohr\" /\u003e\u003c/a\u003e\u003ca href=\"https://github.com/scibidoo\"\u003e\u003cimg src=\"https://github.com/scibidoo.png\" width=\"60px\" alt=\"Jamie\" /\u003e\u003c/a\u003e\u003ca href=\"https://github.com/GalenRhodes\"\u003e\u003cimg src=\"https://github.com/GalenRhodes.png\" width=\"60px\" alt=\"Galen Rhodes\" /\u003e\u003c/a\u003e\u003ca href=\"https://github.com/litmaps\"\u003e\u003cimg src=\"https://github.com/litmaps.png\" width=\"60px\" alt=\"Litmaps\" /\u003e\u003c/a\u003e\u003ca href=\"https://github.com/davdroman\"\u003e\u003cimg src=\"https://github.com/davdroman.png\" width=\"60px\" alt=\"David Roman\" /\u003e\u003c/a\u003e\u003ca href=\"https://github.com/Strobocop\"\u003e\u003cimg src=\"https://github.com/Strobocop.png\" width=\"60px\" alt=\"Brian Strobach\" /\u003e\u003c/a\u003e\u003ca href=\"https://github.com/kishikawakatsumi\"\u003e\u003cimg src=\"https://github.com/kishikawakatsumi.png\" width=\"60px\" alt=\"Kishikawa Katsumi\" /\u003e\u003c/a\u003e\u003ca href=\"https://github.com/mkll\"\u003e\u003cimg src=\"https://github.com/mkll.png\" width=\"60px\" alt=\"Alex Sherbakov\" /\u003e\u003c/a\u003e\u003ca href=\"https://github.com/getsidetrack\"\u003e\u003cimg src=\"https://github.com/getsidetrack.png\" width=\"60px\" alt=\"Sidetrack\" /\u003e\u003c/a\u003e\u003ca href=\"https://github.com/GregKarpati\"\u003e\u003cimg src=\"https://github.com/GregKarpati.png\" width=\"60px\" alt=\"Greg Karpati\" /\u003e\u003c/a\u003e\u003ca href=\"https://github.com/fananek\"\u003e\u003cimg src=\"https://github.com/fananek.png\" width=\"60px\" alt=\"František Mikš\" /\u003e\u003c/a\u003e\u003ca href=\"https://github.com/jagreenwood\"\u003e\u003cimg src=\"https://github.com/jagreenwood.png\" width=\"60px\" alt=\"Jeremy Greenwood\" /\u003e\u003c/a\u003e\u003ca href=\"https://github.com/rayfix\"\u003e\u003cimg src=\"https://github.com/rayfix.png\" width=\"60px\" alt=\"Ray Fix\" /\u003e\u003c/a\u003e\u003ca href=\"https://github.com/micomiloloza\"\u003e\u003cimg src=\"https://github.com/micomiloloza.png\" width=\"60px\" alt=\"Mićo Miloloža\" /\u003e\u003c/a\u003e\u003ca href=\"https://github.com/awamser\"\u003e\u003cimg src=\"https://github.com/awamser.png\" width=\"60px\" alt=\"Alan\" /\u003e\u003c/a\u003e\u003ca href=\"https://github.com/Suboptimierer\"\u003e\u003cimg src=\"https://github.com/Suboptimierer.png\" width=\"60px\" alt=\"Jonas Sannewald\" /\u003e\u003c/a\u003e\u003ca href=\"https://github.com/TapEnvy-us-LLC\"\u003e\u003cimg src=\"https://github.com/TapEnvy-us-LLC.png\" width=\"60px\" alt=\"TapEnvy.us, LLC\" /\u003e\u003c/a\u003e\u003ca href=\"https://github.com/JawadHF\"\u003e\u003cimg src=\"https://github.com/JawadHF.png\" width=\"60px\" alt=\"Jawad\" /\u003e\u003c/a\u003e\u003ca href=\"https://github.com/PARAIPAN9\"\u003e\u003cimg src=\"https://github.com/PARAIPAN9.png\" width=\"60px\" alt=\"PARAIPAN SORIN\" /\u003e\u003c/a\u003e\u003ca href=\"https://github.com/KalynDavis\"\u003e\u003cimg src=\"https://github.com/KalynDavis.png\" width=\"60px\" alt=\"Kalyn Davis\" /\u003e\u003c/a\u003e\u003ca href=\"https://github.com/stevapple\"\u003e\u003cimg src=\"https://github.com/stevapple.png\" width=\"60px\" alt=\"YR Chen\" /\u003e\u003c/a\u003e\u003ca href=\"https://github.com/roncuevas\"\u003e\u003cimg src=\"https://github.com/roncuevas.png\" width=\"60px\" alt=\"Aarón Martínez Cuevas\" /\u003e\u003c/a\u003e\u003c!-- backers --\u003e\n\n\u003ca href=\"https://opencollective.com/vapor/backer/0/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/vapor/backer/0/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/vapor/backer/1/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/vapor/backer/1/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/vapor/backer/2/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/vapor/backer/2/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/vapor/backer/3/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/vapor/backer/3/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/vapor/backer/4/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/vapor/backer/4/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/vapor/backer/5/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/vapor/backer/5/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/vapor/backer/6/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/vapor/backer/6/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/vapor/backer/7/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/vapor/backer/7/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/vapor/backer/8/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/vapor/backer/8/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/vapor/backer/9/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/vapor/backer/9/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/vapor/backer/10/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/vapor/backer/10/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/vapor/backer/11/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/vapor/backer/11/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/vapor/backer/12/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/vapor/backer/12/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/vapor/backer/13/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/vapor/backer/13/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/vapor/backer/14/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/vapor/backer/14/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/vapor/backer/15/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/vapor/backer/15/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/vapor/backer/16/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/vapor/backer/16/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/vapor/backer/17/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/vapor/backer/17/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/vapor/backer/18/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/vapor/backer/18/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/vapor/backer/19/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/vapor/backer/19/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/vapor/backer/20/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/vapor/backer/20/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/vapor/backer/21/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/vapor/backer/21/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/vapor/backer/22/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/vapor/backer/22/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/vapor/backer/23/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/vapor/backer/23/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/vapor/backer/24/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/vapor/backer/24/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/vapor/backer/25/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/vapor/backer/25/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/vapor/backer/26/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/vapor/backer/26/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/vapor/backer/27/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/vapor/backer/27/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/vapor/backer/28/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/vapor/backer/28/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/vapor/backer/29/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/vapor/backer/29/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/vapor/backer/30/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/vapor/backer/30/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/vapor/backer/31/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/vapor/backer/31/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/vapor/backer/32/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/vapor/backer/32/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/vapor/backer/33/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/vapor/backer/33/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/vapor/backer/34/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/vapor/backer/34/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/vapor/backer/35/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/vapor/backer/35/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/vapor/backer/36/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/vapor/backer/36/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/vapor/backer/37/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/vapor/backer/37/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/vapor/backer/38/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/vapor/backer/38/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/vapor/backer/39/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/vapor/backer/39/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/vapor/backer/40/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/vapor/backer/40/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/vapor/backer/41/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/vapor/backer/41/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/vapor/backer/42/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/vapor/backer/42/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/vapor/backer/43/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/vapor/backer/43/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/vapor/backer/44/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/vapor/backer/44/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/vapor/backer/45/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/vapor/backer/45/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/vapor/backer/46/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/vapor/backer/46/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/vapor/backer/47/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/vapor/backer/47/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/vapor/backer/48/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/vapor/backer/48/avatar.svg\"\u003e\u003c/a\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvapor%2Fvapor","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvapor%2Fvapor","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvapor%2Fvapor/lists"}