close
Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3,429 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Vize

High-Performance Vue.js Toolchain in Rust

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

DocumentationPlaygroundSponsor

Real World Testing — Wanted

▶ Watch the Real World Testing PV

Warning

Vize is experimental and in its Real World Testing phase — not a completely production-ready toolchain yet. Breaking changes and behavior that diverges from Vue are expected. Review the stability guide, production-readiness checklist, and support policy before adopting it.

What Is Vize?

Vize is a Rust-native toolchain for Vue — one fast, vertically integrated lane for single-file components. A single shared parser powers compilation, linting, type-checking, formatting, and editor tooling, so your whole Vue workflow runs on the same high-performance core instead of a patchwork of disconnected tools.

It plugs into where you already work: @vizejs/vite-plugin (Vite), the vize npm package (project scripts and shared config helpers), the native vize binary (LSP / profiling / specialized CLI workflows), @vizejs/vite-plugin-musea (Musea), and oxlint-plugin-vize (Oxlint).

To add Vize to an existing Vite or Nuxt project, run:

vpx vize init

vize init detects your bundler, package manager, and language, then installs and configures the features you pick. It is scriptable too — vize init --yes --lint --vite --fmt --typecheck --editor. See Project Setup.

Everything lives in the documentation — start with Getting Started.

Vize is in its Real World Testing phase: fix requests and PRs are very welcome, and we are looking for reasonably large Vue projects to use as test beds.

Benchmarks

Measured on Blacksmith blacksmith-32vcpu-ubuntu-2404, median of 5 runs. The corpus is not the same size for every row — it is given per row below, and only SFC compile, Lint, and Format run at 15,000 SFCs.

Surface Files Existing tool Existing Vize Speedup
SFC compile 15,000 @vue/compiler-sfc 17.15s 329.2ms 52.1×
Lint 15,000 eslint-plugin-vue 56.20s 324.8ms 173.0×
Format 15,000 Prettier 143.13s 2.83s 50.6×
Type check 500 vue-tsc 5.57s 498.1ms n/a (cross-engine)
Vite build 1,000 @vitejs/plugin-vue 1.71s 631.7ms 2.7×
Nuxt build 500 Nuxt compiler 6.83s 6.59s 1.0×

Every row is taken from one committed snapshot, bench/results/tool-benchmark-latest.json (run 30557718030) — the same artifact the published Blacksmith benchmark snapshot renders — and tests/tooling/readme-benchmark-rows.test.ts pins them to it so the two cannot drift apart again.

The type-check row publishes no single speedup on purpose: vue-tsc runs the JavaScript TypeScript compiler while vize check runs native tsgo (Corsa), so one ratio would credit TypeScript's Go rewrite to the Vue layer. Both timings above are real and were measured in the same run; they are ranked within each engine class in the snapshot instead.

The Nuxt row is a genuine but diluted comparison: both variants run the same Nitro/Vite/Rollup pipeline and differ only in the SFC compiler, and SFC compilation is roughly 2% of that build, so end-to-end time is dominated by work neither compiler owns. It is published because it is what a Nuxt user actually experiences, not because it isolates Vize.

See the Blacksmith benchmark snapshot for methodology and per-variant numbers.

Credits

This project draws inspiration from Volar.js, vuejs/language-tools, eslint-plugin-vue, eslint-plugin-vuejs-accessibility, Lightning CSS, Storybook, and OXC.

Special thanks to:

  • Blacksmith for sponsoring high-performance CI/CD runners and Testbox infrastructure for frequent benchmarks and real-project compatibility checks.
  • Mates Inc. for allowing ubugeeei, its employee, to dedicate discretionary work time to OSS and for adopting Vize in the build for the company's engineering website.
  • OpenAI Codex for Open Source for supporting open-source maintainers through a program that helps keep critical OSS development moving.
  • かっこかり for continuously testing Vize's compiler and Vite Plugin on Misskey (~103k lines of Vue across 586 SFCs), with timely reports as the implementation changed (report).
  • ushironoko for compiler, linter, and CLI fix reports, reference implementations, and reproduction repositories.
  • dannote for bringing Vize into the Elixir community through Volt, an Elixir-native frontend toolchain built on Vize, and for reporting missing pieces and sending PRs as Volt adopted Vize as a foundation.
  • n13u and #frontend_phpcon_do for persistently reporting fix cases while building a Nuxt-based conference website with Vize, then carrying that validation all the way to production adoption (report, write-up).
  • yamanoku for accessibility-focused feedback around Vize and for using the project in the Vue Fes Japan speaker-site migration documented in the v-tokyo Meetup #25 LT notes (write-up).
  • sevenc-nanashi for using the VOICEVOX editor (~26k lines of Vue across 128 SFCs) as a real-world target for improving compiler precision (report).
  • Everyone who has mentioned, shared, tested, or amplified Vize across the community.

Vize is a personal project by ubugeeei, licensed under the MIT License and maintained as a non-commercial OSS effort. It is not owned by any specific company, is intended to remain open, and is not being built with a buyout in mind.

License

MIT

About

Blazing fast Vue.js Toolchain. Compiler, Linter, Type Checker, Formatter, LSP, Story System, Editor Extensions. This already passed 10k+ test suites, includes real world E2E.

Topics

Resources

Contributing

Security policy

Stars

868 stars

Watchers

3 watching

Forks

Releases

Sponsor this project

Packages

Used by

Contributors

Languages