microsoft/webui
Rust
Captured source
source ↗microsoft/webui
Description: Server-side rendering for any language. No JavaScript runtime, no virtual DOM, no JSX. Just HTML, CSS, and JS
Language: Rust
License: MIT
Stars: 41
Forks: 10
Open issues: 13
Created: 2025-02-28T07:38:43Z
Pushed: 2026-06-10T23:40:24Z
Default branch: main
Fork: no
Archived: no
README:
WebUI
WebUI is a high-performance, language-agnostic server-side rendering framework built in Rust. It compiles HTML templates into compact Protocol Buffer binaries at build time so runtime rendering applies state without reparsing templates. Interactive Web Components hydrate as islands on the client.
Documentation: microsoft.github.io/webui
Highlights
- Compiled templates: HTML is parsed once at build time into a compact binary protocol.
- Language agnostic: Rust, Node/Bun/Deno, C#, Python, Go, and any language that can call C FFI.
- Web Components: Native custom elements with Shadow DOM support.
- Server-side logic: Conditions, loops, and expressions are evaluated on the server.
- Plugin-ready: Parser and handler plugins support framework-specific hydration and directives.
Install
npm install @microsoft/webui
Or install the Rust CLI:
cargo install microsoft-webui-cli
Learn
| Resource | Link | |----------|------| | Full documentation | | | Getting started | | | CLI reference | | | Language integrations | | | Benchmarks | [BENCHMARKS.md](BENCHMARKS.md) |
Development
Prerequisites:
- Rust 1.93+ with
clippyandrustfmt - Node.js 22+ with pnpm
Common commands:
| Command | Description | |---------|-------------| | cargo xtask check | Run the full repository quality gate before commits | | cargo xtask fmt | Check formatting | | cargo xtask clippy | Run clippy lints | | cargo xtask test | Run all tests | | cargo xtask build | Build the workspace and examples | | cargo xtask dev | Run an example app in development mode | | cargo xtask bench | Run benchmarks |
For contribution policy, issue guidelines, and the current pull request policy, see [CONTRIBUTING.md](CONTRIBUTING.md).
Project layout
crates/ Rust crates for the CLI, parser, handler, protocol, FFI, and integrations packages/ npm packages for the CLI, WebUI Framework, router, and platform binaries docs/ VitePress documentation site examples/ Example applications and integration samples
Feedback and support
WebUI is still in active development. We are not accepting unsolicited pull requests right now, but we do welcome well-documented issues:
| Need | Where to go | |------|-------------| | Report a bug | Choose an issue template | | Request a feature | Choose an issue template | | Report a documentation need | Choose an issue template | | Get support guidance | [SUPPORT.md](SUPPORT.md) | | Report a security issue | [SECURITY.md](SECURITY.md) |
This project has adopted the [Microsoft Open Source Code of Conduct](CODE_OF_CONDUCT.md).
Trademarks
This project may contain trademarks or logos for projects, products, or services. Authorized use of Microsoft trademarks or logos is subject to Microsoft's Trademark & Brand Guidelines. Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship. Any use of third-party trademarks or logos is subject to those third party policies.
License
MIT
Excerpt shown — open the source for the full document.
Notability
notability 2.0/10Low-star routine new repo