An open API service indexing awesome lists of open source software.

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

Awesome Lists containing this project

README

          


Vize


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


crates.io
npm
npm
npm
License

> [!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)