Unofficial High-Performance Vue.js Toolchain in Rust
/viːz/ — Named after Vizier + Visor + Advisor: a wise tool that sees through your code.
Warning
This project is under active development and is not yet ready for production use. APIs and features may change without notice.
| Crate | Description |
|---|---|
| Shared utilities & arena allocator | |
| AST definitions, errors, options | |
| Parser & tokenizer | |
| Transforms & code generation | |
| DOM (VDom) compiler | |
| Vapor mode compiler | |
| SFC (.vue) compiler | |
| Node.js / WASM bindings | |
| Command-line interface | |
| TypeScript type checker | |
| Vue.js linter | |
| Vue.js formatter | |
| Language Server Protocol | |
| Component gallery (Storybook) |
Vize crates are named after art and sculpture terminology, reflecting how each component shapes and transforms Vue code:
| Name | Origin | Meaning |
|---|---|---|
| Carton | /kɑːˈtɒn/ | Artist's portfolio case — stores and organizes tools |
| Relief | /rɪˈliːf/ | Sculptural technique projecting from a surface — AST structure |
| Armature | /ˈɑːrmətʃər/ | Internal skeleton supporting a sculpture — parsing framework |
| Atelier | /ˌætəlˈjeɪ/ | Artist's workshop — compiler workspaces |
| Vitrine | /vɪˈtriːn/ | Glass display case — bindings exposing the compiler |
| Canon | /ˈkænən/ | Standard of ideal proportions — type checking |
| Patina | /ˈpætɪnə/ | Aged surface indicating quality — linting |
| Glyph | /ɡlɪf/ | Carved symbol or letterform — formatting |
| Maestro | /ˈmaɪstroʊ/ | Master conductor — LSP orchestration |
| Musea | /mjuːˈziːə/ | Plural of museum — component gallery |
mise install && mise setup
mise cli # Enable `vize` CLI command
mise dev # Playgroundvize [COMMAND] [OPTIONS]| Command | Description |
|---|---|
build |
Compile Vue SFC files (default) |
fmt |
Format Vue SFC files |
lint |
Lint Vue SFC files |
check |
Type check Vue SFC files |
musea |
Start component gallery server |
lsp |
Start Language Server Protocol server |
vize --help # Show help
vize <command> --help # Show command-specific helpExamples:
vize # Compile ./**/*.vue to ./dist
vize build src/**/*.vue -o out # Custom input/output
vize build --ssr # SSR mode
vize build --script_ext=preserve # Keep .ts/.tsx/.jsx extensions
vize fmt --check # Check formatting
vize lint --fix # Auto-fix lint issues
vize check --strict # Strict type checking// Node.js
const { compileSfc } = require('@vize/native');
const { code } = compileSfc(`<template><div>{{ msg }}</div></template>`, { filename: 'App.vue' });
// Browser
import init, { compileSfc } from '@vize/wasm';
await init();
const { code } = compileSfc(`...`, { filename: 'App.vue' });Compiling 15,000 SFC files (36.9 MB):
| @vue/compiler-sfc | Vize | Speedup | |
|---|---|---|---|
| Single Thread | 16.21s | 6.65s | 2.4x |
| Multi Thread | 4.13s | 498ms | 8.3x |
MIT