{"id":35223453,"url":"https://github.com/vertigo-web/vertigo","last_synced_at":"2026-04-07T20:01:44.241Z","repository":{"id":37104439,"uuid":"281223501","full_name":"vertigo-web/vertigo","owner":"vertigo-web","description":"Reactive WebAssembly","archived":false,"fork":false,"pushed_at":"2026-04-05T18:58:53.000Z","size":3392,"stargazers_count":27,"open_issues_count":13,"forks_count":3,"subscribers_count":3,"default_branch":"master","last_synced_at":"2026-04-05T19:21:09.701Z","etag":null,"topics":["rust","wasm","webassembly"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/vertigo-web.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGES.md","contributing":null,"funding":null,"license":"LICENSE-APACHE","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,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2020-07-20T20:53:07.000Z","updated_at":"2026-04-05T18:07:52.000Z","dependencies_parsed_at":"2023-02-19T01:46:15.542Z","dependency_job_id":"a5533fe0-6564-44db-b4c0-d4aa57d61d10","html_url":"https://github.com/vertigo-web/vertigo","commit_stats":{"total_commits":470,"total_committers":7,"mean_commits":67.14285714285714,"dds":0.3042553191489362,"last_synced_commit":"31057d36de4e84cfed6bb951bbc02663d955c197"},"previous_names":[],"tags_count":33,"template":false,"template_full_name":null,"purl":"pkg:github/vertigo-web/vertigo","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vertigo-web%2Fvertigo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vertigo-web%2Fvertigo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vertigo-web%2Fvertigo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vertigo-web%2Fvertigo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vertigo-web","download_url":"https://codeload.github.com/vertigo-web/vertigo/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vertigo-web%2Fvertigo/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31526666,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-07T16:28:08.000Z","status":"ssl_error","status_checked_at":"2026-04-07T16:28:06.951Z","response_time":105,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: 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":["rust","wasm","webassembly"],"created_at":"2025-12-30T00:49:37.359Z","updated_at":"2026-04-07T20:01:44.236Z","avatar_url":"https://github.com/vertigo-web.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Vertigo\n\nA reactive Real-DOM library with SSR for Rust.\n\n[![crates.io](https://img.shields.io/crates/v/vertigo)](https://crates.io/crates/vertigo)\n[![Documentation](https://docs.rs/vertigo/badge.svg)](https://docs.rs/vertigo)\n![MIT or Apache 2.0 licensed](https://img.shields.io/crates/l/vertigo.svg)\n[![Dependency Status](https://deps.rs/crate/vertigo/0.11.2/status.svg)](https://deps.rs/crate/vertigo/0.11.2)\n[![CI](https://github.com/vertigo-web/vertigo/actions/workflows/pipeline.yaml/badge.svg)](https://github.com/vertigo-web/vertigo/actions/workflows/pipeline.yaml)\n[![downloads](https://img.shields.io/crates/d/vertigo.svg)](https://crates.io/crates/vertigo)\n\n## Features\n\n* **Reactive dependencies** - A graph of values and clients (micro-subscriptions) that can automatically compute what to refresh after one value changes\n* **Real DOM** - No intermediate Virtual DOM mechanism is necessary\n* **HTML/CSS macros** - Allows to construct Real DOM nodes using HTML and CSS\n* **Tailwind v4** support out of the box\n* **Isomorphic server-side rendering** - The same WASM code is used for both client and server (see: [vertigo-cli](https://crates.io/crates/vertigo-cli))\n* **Fullstack** - Can be mounted into actix-web (see: [vertigo-cli](https://crates.io/crates/vertigo-cli))\n\nSee [Changelog](https://github.com/vertigo-web/vertigo/blob/master/CHANGES.md) for recent features.\n\nGo to **[TUTORIAL](https://github.com/vertigo-web/vertigo/blob/master/tutorial.md)** if you want to try.\n\nFor more information go to vertigo home website **[vertigo.znoj.pl](https://vertigo.znoj.pl/)**.\n\n## Examples\n\nDependencies:\n\n```toml\nvertigo = \"0.11\"\n```\n\nExample 1:\n\n```rust\nuse vertigo::{dom, DomNode, Value, bind, main};\n\n#[main]\npub fn app() -\u003e DomNode {\n    let count = Value::new(0);\n\n    let increment = bind!(count, |_| {\n        count.change(|value| {\n            *value += 1;\n        });\n    });\n\n    let decrement = bind!(count, |_| {\n        count.change(|value| {\n            *value -= 1;\n        });\n    });\n\n    dom! {\n        \u003chtml\u003e\n            \u003chead/\u003e\n            \u003cbody\u003e\n                \u003cdiv\u003e\n                    \u003cp\u003e\"Counter: \" { count }\u003c/p\u003e\n                    \u003cbutton on_click={decrement}\u003e\"-\"\u003c/button\u003e\n                    \u003cbutton on_click={increment}\u003e\"+\"\u003c/button\u003e\n                \u003c/div\u003e\n            \u003c/body\u003e\n        \u003c/html\u003e\n    }\n}\n```\n\nExample 2:\n\n```rust\nuse vertigo::{css, component, DomNode, store, Value, dom, main};\n\n#[component]\npub fn MyMessage(message: Value\u003cString\u003e) {\n    dom! {\n        \u003cp\u003e\n            \"Message to the world: \"\n            { message }\n        \u003c/p\u003e\n    }\n}\n\n#[store]\nfn state_message() -\u003e Value\u003cString\u003e {\n    Value::new(\"Hello world!\".to_string())\n}\n\n#[main]\nfn app() -\u003e DomNode {\n    let main_div = css! {\"\n        color: darkblue;\n    \"};\n\n    dom! {\n        \u003chtml\u003e\n            \u003chead/\u003e\n            \u003cbody\u003e\n                \u003cdiv css={main_div}\u003e\n                    \u003cMyMessage message={state_message()} /\u003e\n                \u003c/div\u003e\n            \u003c/body\u003e\n        \u003c/html\u003e\n    }\n}\n```\n\nTake a look at **[More examples here](https://github.com/vertigo-web/vertigo/tree/master/examples)**.\n\n## Installation of `vertigo-cli` tool\n\nTo ease process or development use\n[vertigo-cli](https://github.com/vertigo-web/vertigo/blob/master/crates/vertigo-cli) tool\nthat allows to _build_, _serve_ and _watch_ your project.\n\n```sh\ncargo install --force vertigo-cli\n```\n\n## Demo App\n\n### Prepare\n\nInstall cargo-make and vertigo-cli:\n\n* `cargo install cargo-make vertigo-cli`\n\n### Run\n\nBuild and run project using:\n\n* `cargo make demo`\n\nEventually terminal will let you know that app is available under `http://localhost:4444/`\n\nIf you want to play around with the demo code, run:\n\n* `cargo make demo-watch`\n\nIt should automatically recompile upon changes and the browser tab should be informed to refresh.\nNote that this compiles the code in debug mode so the WASM is not optimized.\n\n--------------\n\nTo run the examples in watch mode (they will run on localhost:4444):\n`cargo make examples-counter` or `cargo make examples-router` or `cargo make examples-trafficlights`\n\n## A community, soon to grow\n\n* Discord server: \u003chttps://discord.gg/HAXtTeFrAf\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvertigo-web%2Fvertigo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvertigo-web%2Fvertigo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvertigo-web%2Fvertigo/lists"}