{"id":47767370,"url":"https://github.com/norunners/vue","last_synced_at":"2026-04-03T07:40:44.623Z","repository":{"id":32077702,"uuid":"131519395","full_name":"norunners/vue","owner":"norunners","description":"The progressive framework for WebAssembly applications.","archived":false,"fork":false,"pushed_at":"2021-12-25T23:20:29.000Z","size":2059,"stargazers_count":235,"open_issues_count":1,"forks_count":12,"subscribers_count":15,"default_branch":"main","last_synced_at":"2024-06-19T00:21:16.606Z","etag":null,"topics":["go","golang","gopherjs","vue","wasm","webassembly"],"latest_commit_sha":null,"homepage":"","language":"Go","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/norunners.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}},"created_at":"2018-04-29T18:32:16.000Z","updated_at":"2024-06-10T04:12:36.000Z","dependencies_parsed_at":"2022-09-21T09:13:10.202Z","dependency_job_id":null,"html_url":"https://github.com/norunners/vue","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/norunners/vue","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/norunners%2Fvue","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/norunners%2Fvue/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/norunners%2Fvue/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/norunners%2Fvue/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/norunners","download_url":"https://codeload.github.com/norunners/vue/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/norunners%2Fvue/sbom","scorecard":{"id":694589,"data":{"date":"2025-08-11","repo":{"name":"github.com/norunners/vue","commit":"e0ca74c0bf5695bcbe7d8ef897e375eedfd31751"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":1.7,"checks":[{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","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":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"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":"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":"Code-Review","score":0,"reason":"Found 0/27 approved changesets -- score normalized to 0","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":"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":-1,"reason":"no dependencies found","details":null,"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":"SAST","score":0,"reason":"no SAST tool detected","details":["Warn: no pull requests merged into dev branch"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"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":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"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":"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":"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":"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":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for 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":"Vulnerabilities","score":0,"reason":"14 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GO-2022-0536 / GHSA-39qc-96h7-956f / GHSA-hgr8-6h9x-f7q9","Warn: Project is vulnerable to: GO-2022-0236 / GHSA-h86h-8ppg-mxmh","Warn: Project is vulnerable to: GO-2021-0238 / GHSA-83g2-8m93-v3w7","Warn: Project is vulnerable to: GO-2022-0288","Warn: Project is vulnerable to: GO-2022-0969 / GHSA-69cg-p879-7622","Warn: Project is vulnerable to: GO-2022-1144 / GHSA-xrjj-mj9h-534m","Warn: Project is vulnerable to: GO-2023-1571 / GHSA-vvpx-j8f3-3w6h","Warn: Project is vulnerable to: GO-2023-1988 / GHSA-2wrh-6pvc-2jm9","Warn: Project is vulnerable to: GO-2023-2102 / GHSA-4374-p667-p6c8","Warn: Project is vulnerable to: GHSA-qppj-fm5r-hxr3","Warn: Project is vulnerable to: GO-2024-2687 / GHSA-4v7x-pqxf-cx7m","Warn: Project is vulnerable to: GO-2024-3333","Warn: Project is vulnerable to: GO-2025-3503 / GHSA-qxp5-gwg8-xv66","Warn: Project is vulnerable to: GO-2025-3595 / GHSA-vvgc-356p-c3xw"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-08-22T03:18:00.744Z","repository_id":32077702,"created_at":"2025-08-22T03:18:00.744Z","updated_at":"2025-08-22T03:18:00.744Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31342128,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-03T06:57:30.245Z","status":"ssl_error","status_checked_at":"2026-04-03T06:57:29.849Z","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":["go","golang","gopherjs","vue","wasm","webassembly"],"created_at":"2026-04-03T07:40:42.846Z","updated_at":"2026-04-03T07:40:44.617Z","avatar_url":"https://github.com/norunners.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# vue\n[![GoDoc](https://godoc.org/github.com/norunners/vue?status.svg)](https://godoc.org/github.com/norunners/vue)\n\nPackage `vue` is the progressive framework for [WebAssembly](https://github.com/golang/go/wiki/WebAssembly) applications.\n\n## Install\n```bash\nGOARCH=wasm GOOS=js go get github.com/norunners/vue\n```\n*Requires Go 1.12 or higher.*\n\n## Goals\n* Provide a unified solution for a framework, state manager and router in the frontend space.\n* Leverage [templating](https://github.com/norunners/vueg) to separate application logic from frontend rendering.\n* Simplify data binding to ease the relation of state management to rendering.\n* Encourage component reuse to promote development productivity.\n* Follow an idiomatic Go translation of the familiar Vue API.\n\n## Hello World!\nThe `main.go` file is compiled to a `.wasm` WebAssembly file.\n```go\npackage main\n\nimport \"github.com/norunners/vue\"\n\ntype Data struct {\n\tMessage string\n}\n\nfunc main() {\n\tvue.New(\n\t\tvue.El(\"#app\"),\n\t\tvue.Template(\"\u003cp\u003e{{ Message }}\u003c/p\u003e\"),\n\t\tvue.Data(Data{Message: \"Hello WebAssembly!\"}),\n\t)\n\n\tselect {}\n}\n```\n\nThe `index.wasmgo.html` file fetches and runs a `.wasm` WebAssembly file.\n```html\n\u003c!doctype html\u003e\n\u003chtml\u003e\n    \u003chead\u003e\n        \u003cmeta charset=\"utf-8\"\u003e\n        \u003cscript src=\"{{ .Script }}\"\u003e\u003c/script\u003e\n    \u003c/head\u003e\n    \u003cbody\u003e\n        \u003cdiv id=\"app\"\u003e\u003c/div\u003e\n        \u003cscript src=\"{{ .Loader }}\"\u003e\u003c/script\u003e\n    \u003c/body\u003e\n\u003c/html\u003e\n```\n*Note, the example above is compatible with [wasmgo](https://github.com/dave/wasmgo).*\n\n## Serve Examples\nInstall `wasmgo` to serve examples.\n```bash\ngo get -u github.com/dave/wasmgo\n```\n\nServe an example [locally](http://localhost:8080/).\n```bash\ncd examples/01-declarative-rendering\nwasmgo serve\n```\n\n## Status\nAlpha - The state of this project is experimental until the common features of Vue are implemented.\nThe plan is to follow the Vue API closely except for areas of major simplification, which may lead to a subset of the Vue API.\nDuring this stage, the API is expected to encounter minor breaking changes but increase in stability as the project progresses.\n\n## F.A.Q.\n\n#### Why Vue?\nOne of the common themes of existing frameworks is to combine component application logic with frontend rendering.\nThis can lead to a confusing mental model to reason about because both concerns may be mixed together in the same logic.\nBy design, Vue renders components with templates which ensures application logic is developed separately from frontend rending.\n\nAnother commonality of existing frameworks is to unnecessarily expose the relation of state management to rendering in the API.\nBy design, Vue binds data in both directions which ensures automatic updating and rendering when state changes.\n\nThis project aims to combine the simplicity of Vue with the power of Go WebAssembly.\n\nLicense\n-------\n* [MIT License](LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnorunners%2Fvue","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnorunners%2Fvue","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnorunners%2Fvue/lists"}