{"id":13395328,"url":"https://github.com/nodegui/svelte-nodegui","last_synced_at":"2025-03-23T02:04:08.966Z","repository":{"id":41152677,"uuid":"334229943","full_name":"nodegui/svelte-nodegui","owner":"nodegui","description":"Build performant, native and cross-platform desktop applications with native Svelte + powerful CSS-like styling.🚀","archived":false,"fork":false,"pushed_at":"2023-03-26T12:50:03.000Z","size":9768,"stargazers_count":2849,"open_issues_count":23,"forks_count":56,"subscribers_count":30,"default_branch":"main","last_synced_at":"2025-03-15T22:29:32.680Z","etag":null,"topics":["cross-platform","desktop-applications","nodegui","qt","svelte"],"latest_commit_sha":null,"homepage":"https://svelte.nodegui.org/","language":"TypeScript","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/nodegui.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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}},"created_at":"2021-01-29T18:29:07.000Z","updated_at":"2025-03-13T13:20:02.000Z","dependencies_parsed_at":"2024-01-07T21:05:23.524Z","dependency_job_id":"6b7890c0-e6e1-4812-a9cc-671570605094","html_url":"https://github.com/nodegui/svelte-nodegui","commit_stats":{"total_commits":500,"total_committers":33,"mean_commits":"15.151515151515152","dds":"0.43000000000000005","last_synced_commit":"3e819f408eb90b9c7c8db0a0e9fc6230134b3e71"},"previous_names":[],"tags_count":12,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nodegui%2Fsvelte-nodegui","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nodegui%2Fsvelte-nodegui/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nodegui%2Fsvelte-nodegui/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nodegui%2Fsvelte-nodegui/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nodegui","download_url":"https://codeload.github.com/nodegui/svelte-nodegui/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245044566,"owners_count":20551902,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["cross-platform","desktop-applications","nodegui","qt","svelte"],"created_at":"2024-07-30T17:01:52.616Z","updated_at":"2025-03-23T02:04:08.955Z","avatar_url":"https://github.com/nodegui.png","language":"TypeScript","readme":"# Svelte NodeGUI\n\n\u003e [!WARNING]\n\u003e No longer being maintained. Recommended you use the main [NodeGUI](https://github.com/nodegui/nodegui) flavour instead.\n\n[![Join the NodeGUI community on Spectrum](https://withspectrum.github.io/badge/badge.svg)](https://spectrum.chat/nodegui)\n[![Join the Svelte community on Discord](https://img.shields.io/discord/457912077277855764?label=chat\u0026logo=discord)](https://svelte.dev/chat)\n[![All Contributors](https://img.shields.io/badge/all_contributors-16-orange.svg?style=flat-square)](#contributors)\n[![JS Party #96](https://img.shields.io/badge/JS%20Party-%2396-FFCD00.svg)](https://changelog.com/jsparty/96)\n\n[![Build and Test status](https://github.com/nodegui/nodegui/workflows/.github/workflows/test.yml/badge.svg)](https://github.com/nodegui/nodegui/actions)\n\nBuild **performant**, **native** and **cross-platform** desktop applications with **Node.js** and **Svelte**.🚀\n\nSvelte NodeGUI is powered by **Svelte** and **Qt5** 💚 which makes it CPU- and memory-efficient when compared to Chromium-based solutions like Electron. Svelte NodeGUI is essentially a [Svelte](https://svelte.dev) renderer for [NodeGUI](https://github.com/nodegui/nodegui).\n\n\u003cimg src=\"https://upload.wikimedia.org/wikipedia/commons/thumb/a/a7/React-icon.svg/1024px-React-icon.svg.png\" alt=\"\" width=\"25\"\u003e If you are looking for the **React**-based version, check out: **[React NodeGUI](https://github.com/nodegui/react-nodegui)**.\n\n\u003cimg src=\"https://vuejs.org/images/logo.png\" alt=\"\" width=\"25\" /\u003e If you are looking for the **Vue**-based version, check out: **[Vue NodeGUI](https://github.com/nodegui/vue-nodegui)**.\n\nVisit: https://svelte.nodegui.org for docs.\n\n\u003cimg alt=\"logo\" src=\"https://github.com/nodegui/nodegui/raw/master/extras/logo/nodegui.png\" height=\"200\" /\u003e\n\n## How does it look?\n\n\u003cdiv style=\"display:inline; margin: 0 auto;\"\u003e\n\u003cimg alt=\"demo_linux\" src=\"https://github.com/nodegui/examples/raw/master/nodegui/calculator/calculator_linux.png\" height=\"280\" /\u003e\n\u003cimg alt=\"demo_win\" src=\"https://github.com/nodegui/examples/raw/master/nodegui/calculator/calculator_win.jpg\" height=\"280\" /\u003e\n\u003cimg alt=\"demo_mac\" src=\"https://github.com/nodegui/examples/raw/master/nodegui/calculator/calculator_mac.png\" height=\"280\" /\u003e\n\u003c/div\u003e\n\n\u003cdiv style=\"display:inline; margin: 0 auto;\"\u003e\u003cimg alt=\"kitchen\" src=\"https://github.com/nodegui/nodegui/raw/master/extras/assets/kitchen.png\" height=\"280\" /\u003e\u003cimg alt=\"demo_mac\" src=\"https://github.com/nodegui/examples/raw/master/react-nodegui/weather-app-widget/weather_widget_mac.png\" height=\"280\" /\u003e\u003cimg alt=\"demo_win\" src=\"https://github.com/nodegui/examples/raw/master/react-nodegui/image-view/image_view_win.jpg\" height=\"280\" /\u003e\n\u003c/div\u003e\n\n**More screenshots?**\n\n### More Examples:\n\nhttps://github.com/nodegui/examples\n\n---\n\n## Features\n\n-   🧬 Cross platform. Should work on major Linux flavours, Windows and macOS.\n-   📉 Low CPU and memory footprint. Current CPU stays at 0% on idle and memory usage is under 20 MB for a Hello World program.\n-   💅 Styling with CSS (includes actual cascading). Also has full support for Flexbox layout (thanks to Yoga).\n-   ✅ Complete Node.js api support (Currently runs on Node v12.x - and is easily upgradable). Hence has access to all Node.js-compatible npm modules.\n-   🎪 Native widget event listener support. Supports all events available from Qt / NodeJs.\n-   💸 Can be used for Commercial applications.\n-   🕵️‍♂️ Good Devtools support.\n-   📚 Good documentation and website.\n-   🧙‍♂️ Good documentation for contributors.\n-   🦹🏻‍♀️ Good support for dark mode (Thanks to Qt).\n-   🏅 First class TypeScript support. (Works on regular JS projects too 😉).\n\n## Getting Started\n\n-   Check out [svelte-nodegui-starter](https://github.com/nodegui/svelte-nodegui-starter) to get up and running with your own Svelte NodeGUI app!\n-   Read through the [Svelte NodeGUI docs](https://svelte.nodegui.org/)\n-   Check out the examples: https://github.com/nodegui/examples.\n-   [Tutorial: Build a native Meme Search Desktop app with Javascript (NodeGUI) and Giphy API](https://www.sitepoint.com/build-native-desktop-gif-searcher-app-using-nodegui/)\n\n## Docs for contributing\n\n### Svelte NodeGUI\n\nFile issues and get in touch (e.g. on the [Svelte Discord](https://svelte.dev/chat)'s `#nativedev` channel), and we can guide you to something broken that needs fixing!\n\n### NodeGUI\n\nLooking to contribute to NodeGUI? If you wish to implement a new widget/add more features and need help understanding the codebase, you can start here: [Contributing developer docs](https://github.com/nodegui/nodegui/tree/master/website/docs/development).\n\nPlease read https://github.com/nodegui/.github/blob/master/CONTRIBUTING.md\n\n## Building\n\n```sh\nnpm run build\n```\n\nOptionally set `QT_INSTALL_DIR='/path/to/qt'` environment variable to build using your own version of Qt.\n\n## Updating docs\n\n### Generating docs from source code\n\nThe docs generation process is currently a manual operation (text edit everything yourself). The docs are a copy-paste of the React NodeGUI docs, with some text replacement. We're also carrying around a slight fork of the React NodeGUI source in the codebase. In future we hope to clean up this workflow and make it more automatable using `typedoc` just like the original React NodeGUI workflow.\n\n### Deploying docs to GitHub Pages\n\n```sh\ncd website \u0026\u0026 GIT_USER=\u003cyour_git_username\u003e npm run deploy\n```\n\n## Funding\n\nAs no funding infrastructure is in place for Svelte NodeGUI specifically, please consider supporting [NodeGUI](https://github.com/nodegui/nodegui) instead, which would be just as productive!\n\n## Special Thanks\n\n- [NodeGUI logo: Thanks to Vishwas Shetty from the Noun Project.](https://github.com/nodegui/nodegui/blob/master/extras/legal/logo/thanks.md)\n- [halfnelson](https://github.com/halfnelson) for [Svelte Native](https://github.com/halfnelson/svelte-native), which Svelte NodeGUI forks (as it is an excellent example of building a custom Svelte renderer).\n- [rigor789](https://github.com/rigor789) for [NativeScript Vue Next](https://github.com/rigor789/nativescript-vue-next), from which Svelte NodeGUI takes (and adapts) its DOM implementation.\n- [a7ul](https://github.com/a7ul) for creating [NodeGUI](https://github.com/nodegui/nodegui) and unwittingly teaching me [how to build renderers](https://blog.atulr.com/react-custom-renderer-1/) in the first place.\n\n\n## Code of Conduct\n\nhttps://github.com/nodegui/.github/blob/master/CODE_OF_CONDUCT.md\n\n## License\n\nMIT\n\n## Maintainers ✨\n\nPeople maintaining this project.\n\n\u003c!-- prettier-ignore --\u003e\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"https://twitter.com/LinguaBrowse\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/14055146?v=4\" width=\"100px;\" alt=\"Jamie Birch\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eJamie Birch\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\n\n## Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n\u003c!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section --\u003e\n\u003c!-- prettier-ignore-start --\u003e\n\u003c!-- markdownlint-disable --\u003e\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"https://twitter.com/LinguaBrowse\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/14055146?v=4?s=100\" width=\"100px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eJamie Birch\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/nodegui/svelte-nodegui/commits?author=shirakaba\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"https://mrsauravsahu.github.io\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/9134050?v=4?s=100\" width=\"100px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eSaurav Sahu\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/nodegui/svelte-nodegui/commits?author=mrsauravsahu\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"http://matthieu.perreira.net\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/4592373?v=4?s=100\" width=\"100px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eMatthieu PERREIRA DA SILVA\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/nodegui/svelte-nodegui/commits?author=mperreir\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"https://github.com/jonasgrunert\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/22677197?v=4?s=100\" width=\"100px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eJonas Grunert\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/nodegui/svelte-nodegui/commits?author=jonasgrunert\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"https://github.com/LukeyBeachBoy\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/26151787?v=4?s=100\" width=\"100px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eLukeyBeachBoy\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/nodegui/svelte-nodegui/commits?author=LukeyBeachBoy\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\n\u003c!-- markdownlint-restore --\u003e\n\u003c!-- prettier-ignore-end --\u003e\n\n\u003c!-- ALL-CONTRIBUTORS-LIST:END --\u003e\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!\n","funding_links":[],"categories":["TypeScript","Svelte 相关"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnodegui%2Fsvelte-nodegui","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnodegui%2Fsvelte-nodegui","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnodegui%2Fsvelte-nodegui/lists"}