{"id":13469154,"url":"https://github.com/winglang/wing","last_synced_at":"2026-01-16T16:29:48.822Z","repository":{"id":65220897,"uuid":"508801616","full_name":"winglang/wing","owner":"winglang","description":"A programming language for the cloud ☁️ A unified programming model, combining infrastructure and runtime code into one language ⚡","archived":false,"fork":false,"pushed_at":"2025-10-28T07:40:45.000Z","size":164251,"stargazers_count":5340,"open_issues_count":899,"forks_count":211,"subscribers_count":149,"default_branch":"main","last_synced_at":"2025-12-10T09:37:33.673Z","etag":null,"topics":["cloud","compiler","language","programming-language","rust","sdk","serverless","typescript","winglang"],"latest_commit_sha":null,"homepage":"https://winglang.io","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/winglang.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.md","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2022-06-29T18:19:16.000Z","updated_at":"2025-12-09T20:12:30.000Z","dependencies_parsed_at":"2024-01-22T14:22:50.013Z","dependency_job_id":"f73f009b-1c6b-4e7f-9b2c-0a63dbf588f9","html_url":"https://github.com/winglang/wing","commit_stats":{"total_commits":3284,"total_committers":112,"mean_commits":"29.321428571428573","dds":0.8510962241169305,"last_synced_commit":"ee1ab4b31ee462d95406cc3ffe407bacd5e69942"},"previous_names":[],"tags_count":2045,"template":false,"template_full_name":null,"purl":"pkg:github/winglang/wing","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/winglang%2Fwing","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/winglang%2Fwing/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/winglang%2Fwing/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/winglang%2Fwing/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/winglang","download_url":"https://codeload.github.com/winglang/wing/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/winglang%2Fwing/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28479893,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-16T11:59:17.896Z","status":"ssl_error","status_checked_at":"2026-01-16T11:55:55.838Z","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":["cloud","compiler","language","programming-language","rust","sdk","serverless","typescript","winglang"],"created_at":"2024-07-31T15:01:27.996Z","updated_at":"2026-01-16T16:29:48.810Z","avatar_url":"https://github.com/winglang.png","language":"TypeScript","funding_links":[],"categories":["TypeScript","计算机编程 数据结构与算法","Uncategorized","typescript","Continuous Delivery \u0026 GitOps"],"sub_categories":["网络服务_其他","Uncategorized"],"readme":"\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"./packages/winglang/logo/banner.gif\" alt=\"Wing Banner\" \u003e\n\u003c/div\u003e\n\n\u003ch1 align=\"center\"\u003eWelcome to the Wing Language! :wave:\u003c/h1\u003e\n\u003cp align=\"center\"\u003e\n\u003ca href=\"https://www.winglang.io/learn/\"\u003eTake a Tour\u003c/a\u003e\n▪︎\n\u003ca href=\"https://www.winglang.io/docs/\"\u003eGetting Started\u003c/a\u003e\n▪︎\n\u003ca href=\"http://t.winglang.io/discord\"\u003eJoin Discord\u003c/a\u003e\n▪︎\n\u003ca href=\"https://www.winglang.io/docs/category/faq\"\u003eFAQ\u003c/a\u003e\n▪︎\n\u003ca href=\"https://www.winglang.io/contributing/status#roadmap\"\u003eRoadmap\u003c/a\u003e\n▪︎\n\u003ca href=\"https://github.com/winglang/wing/issues\"\u003eIssues\u003c/a\u003e\n▪︎\n\u003ca href=\"https://github.com/winglang/wing/discussions\"\u003eDiscussions\u003c/a\u003e\n▪︎\n\u003ca href=\"https://www.winglang.io/contributing/\"\u003eContribute\u003c/a\u003e\n\n\u003c/p\u003e\n\n**Winglang** is a new open-source programming language designed for the cloud (aka \"_cloud-oriented_\").\nWing enables developers to build distributed systems that leverage cloud services as first-class citizens by combining infrastructure **_and_** application code in a safe and unified programming model (aka \"_cloud-oriented_\").\nWing programs can be executed locally (_yes, no internet required_) using a fully-functional simulator, or deployed to any cloud provider (_yes, Wing programs are portable across providers_).\n\nThe mission of Winglang is to bring back your creative flow and close the gap between imagination and creation.\n\nDeveloping for the cloud today requires mastering various layers of the cloud stack, IAM roles, networking, and numerous tools, along with finding creative ways to test and debug code. In addition, long deployment times hinder iteration cycles and take developers out of their creative flow.\n\nWinglang addresses these pains by letting you work at a higher level of abstraction and allowing you to focus on business logic instead of cloud mechanics, only surfacing low-level details when it's needed.\nWe also provide you with a set of tools that let you test your code locally, significantly faster than before.\n\n\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"./packages/winglang/logo/demo.gif\" alt=\"Wing Demo\" height=\"400px\"\u003e\n\u003c/div\u003e\n\nWing is built by [Elad Ben-Israel](https://github.com/eladb), the guy behind the [AWS CDK](https://github.com/aws/aws-cdk), the gang at the [Wing Cloud team](https://www.wing.cloud/) and an amazing [community](https://t.winglang.io/discord) of contributors (also known as Wingnuts).\n\nClick [here](https://www.youtube.com/watch?v=5_RhWwgGue0) to watch a short video introduction to the Wing language.\n\n## Why do we think the cloud needs a programming language? 🤔\n\nCloud applications are fundamentally different from applications that run on a single machine -\nthey are distributed systems that rely on cloud infrastructure to achieve their goals.\n\nIn order to be able to express both infrastructure and application logic in a safe and unified programming model,\nWinglang has two execution phases: _preflight_ for infrastructure definitions and _inflight_ for runtime code.\n\nPreflight code is executed _during compilation_ and produces the infrastructure configuration for your app (e.g. **Terraform**, **CloudFormation**, etc).\nInflight code is compiled into **JavaScript** and executed within cloud compute platforms in Node.js environments.\n\nLet's look at a simple example:\n\n```js\nbring cloud;\n\nlet queue = new cloud.Queue();\nlet counter = new cloud.Counter();\nlet bucket = new cloud.Bucket();\n\nqueue.setConsumer(inflight (message) =\u003e {\n  let i = counter.inc();\n  bucket.put(\"file-{i}.txt\", message);\n});\n```\n\n`cloud.Queue`, `cloud.Counter` and `cloud.Bucket` are _preflight objects_.\nThey represent cloud infrastructure resources.\nWhen compiled to a specific cloud provider, such as AWS, a Terraform file will be produced with the provider's implementation\nof these resources. The `queue.setConsumer()` method is a _preflight method_ that configures the infrastructure to\ninvoke a particular _inflight function_ for each message in the queue.\n\n**Now comes the cool part:** the code that runs inside the inflight function interacts with the `counter` and the `bucket` objects\nthrough their _inflight methods_ (`counter.inc()` and `bucket.put()`). These methods can only be\ncalled from inflight scopes.\n\n### Very cool, but what here cannot be done by a library or compiler extension?\n\nIn existing languages, where there is no way to distinguish between multiple execution phases, it is impossible to naturally represent this idea that an object has methods that can only be executed from within a specific execution phase (or within certain scopes of the program).\nYou are welcome to read more about it [here](https://www.winglang.io/docs/faq/why-a-language) (including code samples that show the same app built in Wing vs. other solutions).\n\n## What makes Wing a good fit for cloud development? 🌟\n\nWing was built from scratch to make it easy for building applications on any cloud.\nIt includes an assembly of different features that serve that purpose:\n\n- [Cloud services](https://www.winglang.io/docs/faq/supported-clouds-services-and-engines/supported-services) as first-class citizens, with [phase modifiers](https://www.winglang.io/contributing/rfcs/language-spec#13-phase-modifiers) for describing infrastructure and runtime code ([`preflight` and `inflight`](https://www.winglang.io/docs/concepts/inflights)).\n- [Wing Cloud Library](https://www.winglang.io/docs/category/cloud) provides a standard set of resources that lets you write cloud portable code.\n- [Custom platforms](https://www.winglang.io/docs/concepts/platforms) that keep you in control by allowing you to customize the infrastructure definitions and run policy checks.\n- Use any resource in the Terraform ecosystem as first-class citizen in your app.\n- [JavaScript interoperability](https://www.winglang.io/contributing/rfcs/language-spec#5-interoperability).\n- Automatic generation of IAM policies and other cloud mechanics based on source code.\n- [Wing Console](https://www.winglang.io/docs/start-here/installation#wing-console) - a visual application-centric operations and management console, that lets you interact with...\n- A [simulator](https://www.winglang.io/docs/concepts/simulator) that can used for testing and debugging in milliseconds.\n- JSON as a [primitive data type](https://www.winglang.io/docs/language-reference#114-json-type) with schema validation support for each conversion to and from structs.\n- [Immutability by default](https://www.winglang.io/blog/2023/02/02/good-cognitive-friction#immutable-by-default), [implicit async code](https://www.winglang.io/contributing/rfcs/language-spec#113-asynchronous-model), and [safety from nulls and undefined](https://www.winglang.io/docs/language-reference#16-optionality).\n\nFor a more in-depth look at Wing's features and benefits, check out our [documentation](https://www.winglang.io/docs/).\n\n## Getting started 🛠️\n\n\u003e 🚧 This is a pre-release, please see our [project status](https://www.winglang.io/contributing/status) for more details.\n\nIf you'd just like to dip your feet in the water and see what Wing is all about, you can try it out in our [online playground](https://www.winglang.io/play/) or walk through the [interactive tour](https://www.winglang.io/learn/).\n\nWhen you're ready to start building your own Wing apps, you'll need to:\n\n1. Install the [Wing CLI](https://www.winglang.io/docs/start-here/installation).\n2. Get the [Wing IDE Extension](https://www.winglang.io/docs/start-here/installation#wing-ide-extension) for your favorite editor.\n3. Launch the [Wing Console](https://www.winglang.io/docs/start-here/installation#wing-console) and take it for a spin!\n\nFor a step-by-step guide, head over to our [Getting Started](https://www.winglang.io/docs/) guide.\nIt's a once-in-a-lifetime adventure into the Wing rabbit hole!\n\n## FAQs ❓\n\nHere are some questions we're commonly asked that are covered by our [FAQ](https://www.winglang.io/docs/category/faq):\n\n- [Who is behind this project?](https://www.winglang.io/docs/faq/who-is-behind-wing)\n- [Which clouds are supported by Wing?](https://www.winglang.io/docs/faq/supported-clouds-services-and-engines/supported-clouds)\n- [Which provisioning engines are supported by Wing?](https://www.winglang.io/docs/faq/supported-clouds-services-and-engines/supported-provisioning-engines)\n\n## Community 💬\n\nJoin our flock in the [Wing Discord](https://t.winglang.io/discord) community.\nWe're here to help each other, answer questions, and share our cloud adventures.\nAlternatively, post any questions on [GitHub Discussions](https://github.com/winglang/wing/discussions).\n\n## Contributing 🤝\n\nWant to help Wing take flight?\nCheck out our [contribution guide](https://github.com/winglang/wing/blob/main/CONTRIBUTING.md) to learn how to set up a development environment and contribute to the project.\nYou can also get started by opening the project in GitHub Codespaces.\n\n[![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/winglang/wing)\n\nWe are incredibly grateful to our entire community for contributing bug fixes and improvements:\n\n\u003ca href=\"https://github.com/winglang/wing/graphs/contributors\"\u003e\n  \u003cimg src=\"https://contrib.rocks/image?repo=winglang/wing\" /\u003e\n\u003c/a\u003e\n\n## License 📜\n\nWing is licensed under the [MIT License](./LICENSE.md).\nContributions are made under our [contribution license](./CONTRIBUTION_LICENSE.md).\n\nHappy coding, and remember: the sky's the limit with Wing (yes, another pun)! 🌤️🚀\n\n[wing discord]: https://t.winglang.io/discord\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwinglang%2Fwing","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwinglang%2Fwing","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwinglang%2Fwing/lists"}