https://github.com/ubugeeei/vize
Unofficial High-Performance Vue.js Toolchain in Rust
https://github.com/ubugeeei/vize
compiler lint lsp parser performance semantic-analysis storybook toolchain typechecker vue vuejs
Last synced: about 22 hours ago
JSON representation
Unofficial High-Performance Vue.js Toolchain in Rust
- Host: GitHub
- URL: https://github.com/ubugeeei/vize
- Owner: ubugeeei
- License: mit
- Created: 2025-12-27T08:32:00.000Z (3 months ago)
- Default Branch: main
- Last Pushed: 2026-04-04T03:51:48.000Z (3 days ago)
- Last Synced: 2026-04-04T05:29:34.854Z (3 days ago)
- Topics: compiler, lint, lsp, parser, performance, semantic-analysis, storybook, toolchain, typechecker, vue, vuejs
- Language: Rust
- Homepage: https://vizejs.dev
- Size: 43.3 MB
- Stars: 641
- Watchers: 3
- Forks: 24
- Open Issues: 33
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
- awesome - ubugeeei/vize - Unofficial High-Performance Vue.js Toolchain in Rust (Rust)
- awesome-rstack - @vizejs/rspack-plugin - Performance Vue.js Toolchain in Rust. (Plugins / Rsbuild Plugins)
README
Unofficial High-Performance Vue.js Toolchain in Rust
/viːz/ — Named after Vizier + Visor + Advisor: a wise tool that sees through your code.
Documentation ・
Playground ・
Sponsor
> [!WARNING]
> This project is under active development and is not yet ready for production use.
> APIs and features may change without notice.
> [!NOTE]
> `@vizejs/vite-plugin` is the recommended bundler integration today.
> `@vizejs/unplugin` (rollup / webpack / esbuild) and `@vizejs/rspack-plugin` are available, but non-Vite integrations are still unstable and should be tested carefully before adoption.
> Rspack intentionally keeps a dedicated package because its loader chain, `experiments.css`, and HMR behavior need Rspack-specific handling instead of the shared unplugin path.
---
## Features
- **Compile** — Vue SFC compiler (DOM / Vapor / SSR)
- **Lint** — Vue.js linter with i18n diagnostics
- **Format** — Vue.js formatter
- **Type Check** — TypeScript type checker for Vue
- **LSP** — Language Server Protocol for editor integration
- **Musea** — Component gallery (Storybook-like)
- **MCP** — AI integration via Model Context Protocol
## Quick Start
```bash
npm install -g vize
```
```bash
vize build src/**/*.vue # Compile
vize fmt --check # Format check
vize lint --fix # Lint & auto-fix
vize check --strict # Type check
```
See the [documentation](https://vizejs.dev) for detailed usage, Vite plugin setup, experimental bundler integrations, WASM bindings, and more.
## Nix Flake
```bash
nix run github:ubugeeei/vize#vp -- --version
nix run github:ubugeeei/vize#vize -- --help
nix profile install github:ubugeeei/vize#vize
```
For local development:
```bash
nix develop
vp env install
vp install
```
## Development Environment
The primary local setup is `Nix + vp`. Nix provides the Rust / WASM toolchain and the `vp` CLI itself, while Node.js version management stays with `vp` and `.node-version`.
```bash
nix develop
vp env install
vp install
```
If you want `node`, `npm`, and related shims to follow the pinned version in your shell, run `vp env setup` once and enable managed mode with `vp env on`.
## Workspace Tasks
Workspace orchestration lives in the root `vite.config.ts` via Vite+'s `run.tasks`.
```bash
vp run --workspace-root check # packages + examples + playground
vp run --workspace-root check:fix # auto-fix JS/TS checks where supported
vp run --workspace-root fmt # format workspace files
vp run --filter './playground' test:browser
vp run --filter './examples/vite-musea' build
```
Use `vp run` directly; `mise` task wrappers have been removed.
`npm/vscode-vize` and `npm/vscode-art` stay outside the root `vp run` graph, so build those from their package directories.
## Performance
Benchmarks with **15,000 Vue SFC files** (36.9 MB). "User-facing speedup" = traditional tool (single-thread) vs Vize (multi-thread).
| Tool | Traditional (ST) | Vize (MT) | User-facing Speedup |
| ---------------- | ------------------------- | ------------------------- | ------------------- |
| **Compiler** | @vue/compiler-sfc 10.43s | 612ms | **16.7x** |
| **Linter** | eslint-plugin-vue 65.30s | patina 5.48s | **11.9x** |
| **Formatter** | Prettier 82.69s | glyph 23ms | **3,666x** |
| **Type Checker** | vue-tsc 22.13s | canon 3.33s | **6.6x** \* |
| **Vite Plugin** | @vitejs/plugin-vue 16.98s | @vizejs/vite-plugin 6.90s | **2.5x** \*\* |
Detailed compiler benchmark
| | @vue/compiler-sfc | Vize | Speedup |
| ----------------- | ----------------- | ----- | -------- |
| **Single Thread** | 10.43s | 6.06s | **1.7x** |
| **Multi Thread** | 3.45s | 612ms | **5.6x** |
\* canon is still in early development and the Corsa-backed diagnostics path is still catching up with vue-tsc fidelity. These numbers reflect the current native project-session implementation and will keep changing as diagnostics coverage improves.
\*\* Vite Plugin benchmark uses Vite v8.0.0 (Rolldown). The plugin replaces only the SFC compilation step; all other Vite internals are unchanged.
Run `vp run --workspace-root bench:all` to reproduce all benchmarks.
## Contributing
See the [documentation](https://vizejs.dev) for architecture overview and development setup.
## Credits
This project is inspired by and builds upon the work of these amazing projects:
[Volar.js](https://github.com/volarjs/volar.js) ・ [vuejs/language-tools](https://github.com/vuejs/language-tools) ・ [eslint-plugin-vue](https://github.com/vuejs/eslint-plugin-vue) ・ [eslint-plugin-vuejs-accessibility](https://github.com/vue-a11y/eslint-plugin-vuejs-accessibility) ・ [Lightning CSS](https://github.com/parcel-bundler/lightningcss) ・ [Storybook](https://github.com/storybookjs/storybook) ・ [OXC](https://github.com/oxc-project/oxc)
## Sponsors
This project is maintained by [@ubugeeei](https://github.com/ubugeeei). If you find Vize useful, please consider [sponsoring](https://github.com/sponsors/ubugeeei).
## License
[MIT](./LICENSE)