Skip to content

ubugeeei/vize

Repository files navigation

Vize Logo

Vize

Unofficial High-Performance Vue.js Toolchain in Rust

/viːz/ — Named after Vizier + Visor + Advisor: a wise tool that sees through your code.

Playground

Warning

This project is under active development and is not yet ready for production use. APIs and features may change without notice.


Crates

Crate Description
vize_carton Shared utilities & arena allocator
vize_relief AST definitions, errors, options
vize_armature Parser & tokenizer
vize_atelier_core Transforms & code generation
vize_atelier_dom DOM (VDom) compiler
vize_atelier_vapor Vapor mode compiler
vize_atelier_sfc SFC (.vue) compiler
vize_vitrine Node.js / WASM bindings
vize Command-line interface
vize_canon TypeScript type checker
vize_patina Vue.js linter
vize_glyph Vue.js formatter
vize_maestro Language Server Protocol
vize_musea Component gallery (Storybook)

Naming Theme

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

Architecture

Vize Architecture

Quick Start

mise install && mise setup
mise cli      # Enable `vize` CLI command
mise dev      # Playground

Usage

CLI

vize [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 help

Examples:

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 / WASM

// 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' });

Performance

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

License

MIT

About

Unofficial High-Performance Vue.js Toolchain in Rust

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published