{"id":16591571,"url":"https://github.com/herringtondarkholme/vue-compiler","last_synced_at":"2025-05-14T23:06:22.243Z","repository":{"id":37019311,"uuid":"397797136","full_name":"HerringtonDarkholme/vue-compiler","owner":"HerringtonDarkholme","description":"Vue's template compiler reimplemented in Rust!","archived":false,"fork":false,"pushed_at":"2025-05-10T22:34:44.000Z","size":38310,"stargazers_count":1066,"open_issues_count":16,"forks_count":39,"subscribers_count":8,"default_branch":"main","last_synced_at":"2025-05-10T23:23:54.541Z","etag":null,"topics":["compiler","rust","vue","vuejs"],"latest_commit_sha":null,"homepage":"","language":"Rust","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/HerringtonDarkholme.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":".github/CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":"docs/roadmap.md","authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"github":["HerringtonDarkholme"]}},"created_at":"2021-08-19T02:53:06.000Z","updated_at":"2025-05-10T04:49:10.000Z","dependencies_parsed_at":"2024-02-28T08:31:12.003Z","dependency_job_id":"c1666059-76ce-4a7d-ae04-67c06776a9d0","html_url":"https://github.com/HerringtonDarkholme/vue-compiler","commit_stats":{"total_commits":1763,"total_committers":9,"mean_commits":"195.88888888888889","dds":0.5490640952921158,"last_synced_commit":"33909b4fe809985b2a615abec043e62c6c9b3b6f"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HerringtonDarkholme%2Fvue-compiler","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HerringtonDarkholme%2Fvue-compiler/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HerringtonDarkholme%2Fvue-compiler/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HerringtonDarkholme%2Fvue-compiler/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/HerringtonDarkholme","download_url":"https://codeload.github.com/HerringtonDarkholme/vue-compiler/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254243360,"owners_count":22038046,"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":["compiler","rust","vue","vuejs"],"created_at":"2024-10-11T23:17:13.717Z","updated_at":"2025-05-14T23:06:17.226Z","avatar_url":"https://github.com/HerringtonDarkholme.png","language":"Rust","funding_links":["https://github.com/sponsors/HerringtonDarkholme"],"categories":[],"sub_categories":[],"readme":"# Vue Compiler in Rust\n\n\u003cp align=\"center\"\u003e\n\u003ca href=\"https://rustwasm.github.io/wasm-pack/\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/HerringtonDarkholme/vue-compiler/main/playground/src/assets/wasm-ferris.png\" alt=\"WebAssembly ferris\" width=\"317\"\u003e\u003c/a\u003e\n \u003ca href=\"https://github.com/vuejs/core\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/HerringtonDarkholme/vue-compiler/main/playground/src/assets/logo.png\" alt=\"Vue\" width=\"200\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\u003ca href=\"https://herringtondarkholme.github.io/vue-compiler/\"\u003eTry it out in the wasm playground!\u003c/a\u003e\u003c/p\u003e\n\n![CI](https://github.com/HerringtonDarkholme/vue-compiler/actions/workflows/ci.yml/badge.svg)\n![Playground](https://github.com/HerringtonDarkholme/vue-compiler/actions/workflows/gh-pages.yml/badge.svg)\n[![codecov](https://codecov.io/gh/HerringtonDarkholme/vue-compiler/branch/main/graph/badge.svg?token=A37GRLYA5R)](https://codecov.io/gh/HerringtonDarkholme/vue-compiler)\n\n\nEvan [says](https://github.com/vuejs/rfcs/discussions/369#discussioncomment-1192421):\n\n\u003e Maybe in the long run we want the whole transform (and even the Vue compiler!) to be implemented in native Go/Rust so performance would no longer be a concern ;)\n\nFuture is now!\n\n## Project Docs\n* [Architecture Design](https://github.com/HerringtonDarkholme/vue-compiler/blob/main/docs/design.md)\n* [Project Roadmap](https://github.com/HerringtonDarkholme/vue-compiler/blob/main/docs/roadmap.md)\n* [Contributing Guide](https://github.com/HerringtonDarkholme/vue-compiler/blob/main/.github/CONTRIBUTING.md)\n\n\n## Intended Usage\n\n* Rust library\n* CLI binary\n* napi based nodejs library\n* wasm based npm package: a fallback if napi fails to work and a toy for browser.\n* No Browser build\nNo support since most features in full build are additional except for browser based expression checking or HTML escaping. Browser build removed them for size. But template compiler in browser is already for toy project. For browser specific summary see [this google sheet](https://docs.google.com/spreadsheets/d/1Uofb9qW9-gxdSh8lbC-CE0kWkhpAAtTFDZlw9UW0HrE/edit?usp=sharing).\n\n## Reference\n\n* [vuejs/core](https://github.com/vuejs/core): ご本家様\n* [html spec](https://html.spec.whatwg.org/multipage/parsing.html) is the definitive guide for parsing HTML-like files.\n* [Vue Template Explorer](https://template-explorer.vuejs.org/) gives instant results for  code generation and error reporting.\n* [Nu html checker](https://validator.w3.org/nu/#textarea) is the official html validator from W3C. This is the canonical error reporter for html parsing, when there is a discrepancy between the framework and the spec.\n* [AST explorer](https://astexplorer.net/) can inspect AST nodes interactively.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fherringtondarkholme%2Fvue-compiler","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fherringtondarkholme%2Fvue-compiler","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fherringtondarkholme%2Fvue-compiler/lists"}