{"id":37858154,"url":"https://github.com/winglang/winglibs","last_synced_at":"2026-01-16T16:29:37.139Z","repository":{"id":206283321,"uuid":"681346568","full_name":"winglang/winglibs","owner":"winglang","description":"A collection of libraries for the Wing Programming Language and ecosystem","archived":false,"fork":false,"pushed_at":"2025-07-02T06:41:00.000Z","size":3946,"stargazers_count":19,"open_issues_count":1,"forks_count":16,"subscribers_count":11,"default_branch":"main","last_synced_at":"2025-11-01T05:20:30.639Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"CWeb","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/winglang.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2023-08-21T20:13:34.000Z","updated_at":"2025-04-13T03:22:15.000Z","dependencies_parsed_at":"2023-12-21T09:29:19.033Z","dependency_job_id":"1d120320-03d0-4efa-8b25-6d7d92e23b8e","html_url":"https://github.com/winglang/winglibs","commit_stats":{"total_commits":291,"total_committers":24,"mean_commits":12.125,"dds":0.731958762886598,"last_synced_commit":"85b081094796e3f2acade5a748cf3dfbca40e103"},"previous_names":["winglang/winglibs"],"tags_count":376,"template":false,"template_full_name":null,"purl":"pkg:github/winglang/winglibs","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/winglang%2Fwinglibs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/winglang%2Fwinglibs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/winglang%2Fwinglibs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/winglang%2Fwinglibs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/winglang","download_url":"https://codeload.github.com/winglang/winglibs/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/winglang%2Fwinglibs/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":[],"created_at":"2026-01-16T16:29:29.982Z","updated_at":"2026-01-16T16:29:37.127Z","avatar_url":"https://github.com/winglang.png","language":"CWeb","funding_links":[],"categories":["Packages"],"sub_categories":[],"readme":"# Winglibs\n\nWelcome! You've arrived to the warm and cozy home of the *Wing Trusted Library Ecosystem*.\n\nThis repository hosts the code for [Wing](https://winglang.io) libraries (also called \"winglibs\")\nthat we consider trusted and that meet our community's quality bar.\n\nOne of the cool things about trusted libraries is that we take care of building, testing and\npublishing them for you.\n\n\u003c!-- WINGLIBS_TOC_START --\u003e\n\n| Library | npm package | Platforms |\n| --- | --- | --- |\n| [bedrock](./bedrock) | [@winglibs/bedrock](https://www.npmjs.com/package/@winglibs/bedrock) | sim, tf-aws |\n| [budget](./budget) | [@winglibs/budget](https://www.npmjs.com/package/@winglibs/budget) | sim, tf-aws |\n| [checks](./checks) | [@winglibs/checks](https://www.npmjs.com/package/@winglibs/checks) | * |\n| [cloudv2](./cloudv2) | [@winglibs/cloudv2](https://www.npmjs.com/package/@winglibs/cloudv2) | sim, tf-aws |\n| [cognito](./cognito) | [@winglibs/cognito](https://www.npmjs.com/package/@winglibs/cognito) | sim, tf-aws |\n| [containers](./containers) | [@winglibs/containers](https://www.npmjs.com/package/@winglibs/containers) | sim, tf-aws |\n| [dynamodb](./dynamodb) | [@winglibs/dynamodb](https://www.npmjs.com/package/@winglibs/dynamodb) | sim, tf-aws |\n| [email](./email) | [@winglibs/email](https://www.npmjs.com/package/@winglibs/email) | sim, tf-aws |\n| [eventbridge](./eventbridge) | [@winglibs/eventbridge](https://www.npmjs.com/package/@winglibs/eventbridge) | awscdk, sim, tf-aws |\n| [fifoqueue](./fifoqueue) | [@winglibs/fifoqueue](https://www.npmjs.com/package/@winglibs/fifoqueue) | sim, tf-aws |\n| [github](./github) | [@winglibs/github](https://www.npmjs.com/package/@winglibs/github) | * |\n| [jwt](./jwt) | [@winglibs/jwt](https://www.npmjs.com/package/@winglibs/jwt) | * |\n| [k8s](./k8s) | [@winglibs/k8s](https://www.npmjs.com/package/@winglibs/k8s) | k8s |\n| [lock](./lock) | [@winglibs/lock](https://www.npmjs.com/package/@winglibs/lock) | * |\n| [messagefanout](./messagefanout) | [@winglibs/messagefanout](https://www.npmjs.com/package/@winglibs/messagefanout) | sim, tf-aws |\n| [momento](./momento) | [@winglibs/momento](https://www.npmjs.com/package/@winglibs/momento) | sim, tf-aws, tf-azure, tf-gcp |\n| [ngrok](./ngrok) | [@winglibs/ngrok](https://www.npmjs.com/package/@winglibs/ngrok) | * |\n| [openai](./openai) | [@winglibs/openai](https://www.npmjs.com/package/@winglibs/openai) | * |\n| [postgres](./postgres) | [@winglibs/postgres](https://www.npmjs.com/package/@winglibs/postgres) | sim, tf-aws |\n| [python](./python) | [@winglibs/python](https://www.npmjs.com/package/@winglibs/python) | sim, tf-aws |\n| [react](./react) | [@winglibs/react](https://www.npmjs.com/package/@winglibs/react) | sim, tf-aws |\n| [redis](./redis) | [@winglibs/redis](https://www.npmjs.com/package/@winglibs/redis) | sim |\n| [sagemaker](./sagemaker) | [@winglibs/sagemaker](https://www.npmjs.com/package/@winglibs/sagemaker) | sim, tf-aws |\n| [ses](./ses) | [@winglibs/ses](https://www.npmjs.com/package/@winglibs/ses) | sim, tf-aws |\n| [simtools](./simtools) | [@winglibs/simtools](https://www.npmjs.com/package/@winglibs/simtools) | sim |\n| [slack](./slack) | [@winglibs/slack](https://www.npmjs.com/package/@winglibs/slack) | sim, tf-aws |\n| [sns](./sns) | [@winglibs/sns](https://www.npmjs.com/package/@winglibs/sns) | awscdk, sim, tf-aws |\n| [tf](./tf) | [@winglibs/tf](https://www.npmjs.com/package/@winglibs/tf) | sim, tf-aws |\n| [tsoa](./tsoa) | [@winglibs/tsoa](https://www.npmjs.com/package/@winglibs/tsoa) | sim |\n| [vite](./vite) | [@winglibs/vite](https://www.npmjs.com/package/@winglibs/vite) | sim, tf-aws |\n| [websockets](./websockets) | [@winglibs/websockets](https://www.npmjs.com/package/@winglibs/websockets) | awscdk, sim, tf-aws |\n\n_Generated with `mkrepo.sh`. To update the list of supported platforms for a winglib, please update the \"wing\" section in its package.json file._\n\n\u003c!-- WINGLIBS_TOC_END --\u003e\n\n## How is this repository structured?\n\nThe code for each library is located in a subdirectory named after the library. For example, the\n`websockets` library is located under [`./websockets`](./websockets/).\n\nWing libraries are published to npm under the `@winglibs` scope, and there's a `package.json` file\nin the library's directory.\n\nA set of GitHub Workflows are maintained for each library under the [.github](./github/) directory.\nThese workflows, as well as other artifacts in this repository (such as the table of contents in\nthis README) are are generated using a tool called `mkrepo`, which can be executed using the\n`./mkrepo.sh` script at the root of this repository. The source code for this tool is can be found\nunder [.mkrepo](./.mkrepo/) (and it is written in Wing of course).\n\n## How do I add a new library?\n\nIt's so damn easy.\n\nClone this repository:\n\n```sh\ngit clone https://github.com/winglang/winglibs.git\n```\n\nChange to the `winglibs` directory:\n\n```sh\ncd winglibs\n```\n\nUse the fabulous `mklib.sh` script to scaffold your library:\n\n```sh\n./mklib.sh my-awesome-lib\n```\n\nThis will create a subdirectory called `my-awesome-lib` with some initial source code and a test. It\nwill also create a github workflow which will take care of building, testing and publishing your\nlibrary to npm.\n\nNow do your magic.\n\nWhen you are ready, submit a pull request to this repository. Someone from the team will review it\nand will hopefully provide you with useful feedback and a lot of love, and eventually merge it into\n`main`, and your library will be live.\n\n## Updating libraries\n\nIf you wish to publish an update to your library, simply submit a new pull request with your update.\nOnce the PR is merged, your new version will be published.\n\n- :v: Make sure you use a conventional commit title. (`feat:` for new features, `fix:` for bug fix\n  and `chore:` for anything else).\n- :v: **DON'T FORGET!** You will need to manually bump the `version` field of your library based on\nthe semantic version update. In the future we plan to automate this so that bumps will happen\nautomatically.\n\n  \u003e ### A quick primer on semantic versioning\n  \u003e \n  \u003e Semantic versioning is a convention for version numbers that is commonly used to indicate the type\n  \u003e of update. The version number consists of three components: `MAJOR`.`MINOR`.`PATCH`:\n  \u003e\n  \u003e * The `MAJOR` component must be bumped if the update includes a **breaking change**.\n  \u003e * The `MINOR` component must be bumped if the update includes a **new feature**.\n  \u003e * The `PATCH` component must be bumped if the update includes a **bug fix**.\n  \u003e\n  \u003e Before 1.0.0, the `MAJOR` component is always `0`, the `MINOR` component represents breaking\n  \u003e changes and the `PATCH` component represents new features *and* bug fixes.\n\n## Consuming trusted libraries\n\nTo consume these libraries, users just need to:\n\n```sh\nnpm i @winglibs/my-awesome-lib\n```\n\nAnd then:\n\n```js\nbring my-awesome-lib\n```\n\n## Writing Wing Libraries\n\nSee [docs](https://www.winglang.io/docs/libraries#creating-a-wing-library).\n\nPlease note that it refers to writing libraries that are not published here, so it includes instructions for things that you get here automatically when using the `mklib.sh` script to scaffold your library.\n\nTo specify the platforms your library supports, you can add a `wing.platforms` field to your `package.json`:\n\n```json\n{\n  \"name\": \"@winglibs/my-awesome-lib\",\n  \"version\": \"0.0.1\",\n  \"wing\": {\n    \"platforms\": [\n      \"sim\",\n      \"tf-aws\"\n    ]\n  }\n}\n```\n\n## License\n\nThis repository is licensed under the [MIT License](./LICENSE), unless otherwise specified in a\nlibrary directory.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwinglang%2Fwinglibs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwinglang%2Fwinglibs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwinglang%2Fwinglibs/lists"}