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 11 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 (4 months ago)
- Default Branch: main
- Last Pushed: 2026-04-21T11:44:45.000Z (6 days ago)
- Last Synced: 2026-04-21T12:45:45.488Z (6 days ago)
- Topics: compiler, lint, lsp, parser, performance, semantic-analysis, storybook, toolchain, typechecker, vue, vuejs
- Language: Rust
- Homepage: https://vizejs.dev
- Size: 37.6 MB
- Stars: 679
- Watchers: 2
- Forks: 27
- Open Issues: 29
-
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]
> Vize is under active development. APIs, package boundaries, and editor features are still moving.
> [!IMPORTANT]
> For day-to-day editor support, keep using the official Vue language tools (`vuejs/language-tools`) for now.
> Vize's VS Code extension, Zed extension, and `vize lsp` default to opt-in capabilities so teams can adopt them gradually.
## What Ships Today
- Rust workspace crates for parsing, semantic analysis, compilation, linting, formatting, type checking, LSP, Musea art tooling, and bindings
- A full Rust CLI via the `vize` crate (`build`, `fmt`, `lint`, `check`, `ready`, `upgrade`, `musea`, `lsp`, `ide`)
- npm packages including `@vizejs/vite-plugin`, `@vizejs/native`, `@vizejs/wasm`, `@vizejs/unplugin`, `@vizejs/rspack-plugin`, `@vizejs/nuxt`, `@vizejs/vite-plugin-musea`, `@vizejs/musea-mcp-server`, and `oxlint-plugin-vize`
- The `vize` npm package for shared config utilities and native `build`, `fmt`, `lint`, `check`, `ready`, and `upgrade` commands
## Quick Start
Need `vp` first? Install Vite+ once from the [Vite+ install guide](https://viteplus.dev/guide/install).
### Vite
```bash
vp install -D vize @vizejs/vite-plugin
```
```ts
// vite.config.ts
import { defineConfig } from "vite";
import vize from "@vizejs/vite-plugin";
export default defineConfig({
plugins: [vize()],
});
```
```ts
// vize.config.ts
import { defineConfig } from "vize";
export default defineConfig({
linter: {
preset: "opinionated",
},
lsp: {
lint: true,
typecheck: false,
editor: false,
formatting: false,
},
});
```
### npm CLI
The npm `vize` package exposes native CLI commands plus shared config helpers:
```bash
vp install -D vize
vp exec vize fmt --write src
vp exec vize lint src
vp exec vize check
vp exec vize build src
vp exec vize ready src
```
### Full Rust CLI
For the full native CLI, install the Rust binary:
```bash
cargo install vize
```
```bash
vize build src/**/*.vue
vize fmt --check src
vize lint --profile src
vize check --profile src
vize ready src
vize upgrade
vize lsp
```
You can also run the current workspace build directly:
```bash
nix run github:ubugeeei/vize#vize -- --help
```
## Oxlint Integration
`oxlint-plugin-vize` lets Oxlint execute Vize Patina diagnostics through Oxlint's JS plugin system.
```bash
vp install -D oxlint oxlint-plugin-vize
vp exec oxlint-vize -c .oxlintrc.json -f stylish src
```
This keeps Oxlint's core JS and TS rules active while adding Vue-aware diagnostics under the `vize/*` namespace.
## Editor Integration
Vize editor support is designed for incremental adoption alongside `vuejs/language-tools`.
Start with lint-only mode in VS Code:
```json
{
"vize.enable": true,
"vize.lint.enable": true,
"vize.typecheck.enable": false,
"vize.editor.enable": false,
"vize.formatting.enable": false
}
```
Zed can enable the same capabilities through LSP initialization options:
```json
{
"languages": {
"Vue": {
"language_servers": ["vize", "..."]
}
},
"lsp": {
"vize": {
"initialization_options": {
"lint": true
}
}
}
}
```
The same feature names can be committed in `vize.config.json` or `vize.config.pkl` under `lsp`.
## Local Development
The primary local setup is `Nix + vp`.
```bash
nix develop
vp install --frozen-lockfile
vp check
vp fmt
vp dev
vp build
```
Useful workspace tasks:
```bash
vp check
vp fmt
vp dev
vp build
vp run --workspace-root check:fix
vp run --workspace-root bench:all
```
## Credits
This project draws inspiration from:
[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
Vize is maintained by [@ubugeeei](https://github.com/ubugeeei). If you find it useful, please consider
[sponsoring](https://github.com/sponsors/ubugeeei).
## License
[MIT](./LICENSE)