Skip to content

Latest commit

 

History

1,018 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Utoo Logo

Utoo

Unified Toolchain: Open & Optimized

license PRs Welcome Ask DeepWiki

npm npm npm

downloads downloads downloads

PM CI Pack CI


Utoo is a modern, high-performance frontend toolchain designed to provide a unified and optimized experience. It combines a fast package manager, a powerful bundler, and a flexible command system into a single, cohesive ecosystem.

💡 Why Utoo?

Feature Description
Unified One tool for package management, building, and workflow automation.
Performance Core logic in Rust + Turbopack for extreme speed.
Compatible Seamless migration with Webpack compatibility mode.
Universal Run anywhere: Local, CI, or Browser (via WASM).

📦 Core Components

  • utoo (alias ut): High-performance Rust package manager (Fast, Parallel, npm compatible).
  • @utoo/pack: Next-gen bundler powered by Turbopack (HMR, TS/JSX, Less/Sass, and more).
  • @utoo/pack-cli: Command-line interface for the bundler (dev server, build). A lightweight wrapper to run up commands — up is a shortcut alias for utoopack.
  • @utoo/web: Web-compatible version of the toolchain (WASM, Browser-based bundling).

🚀 Quick Start

1. Install

# Install the core toolchain (pick one)
brew install utooland/tap/utoo   # macOS / Linux via Homebrew
npm install -g utoo              # cross-platform via npm
cargo install utoo-pm            # build from source via Cargo

# Install the bundler in nodejs environment
ut install @utoo/pack --save-dev

# Install the bundler cli in nodejs environment(Optional)
ut install @utoo/pack-cli --save-dev

# Install the web version
ut install @utoo/web --save

2. Use

Package Management

ut install          # Install dependencies (or use `ut install`)
ut add lodash       # Add a package (or use `ut add`)
ut x create-react   # Execute a package (npx style, or use `ut x`)

Pin the project to an exact Utoo release so every contributor and CI runner uses the same package-manager implementation:

{
  "packageManager": "utoo@1.1.8"
}

When a local dependency command runs with another Utoo version, Utoo downloads the matching supported platform package, verifies the registry checksum, caches it under ~/.cache/nm.utoo-self-pin/<platform>/<version>, and hands the command off with the same arguments, working directory, and exit behavior. Warm caches work offline. An invalid cached release is never executed and is reprovisioned from the registry when available. This applies to local install/add, uninstall, update, rebuild, and deps commands; scripts, ut x, query commands, and global installs keep using the current executable. Set UTOO_SELF_PIN=0 to bypass the handoff temporarily. These entries can be removed with, for example, utoo clean _utoo-self-darwin-arm64@1.1.8.

Bundling via @utoo/pack-cli

utx up dev          # Start dev server with HMR
utx up build        # Production build
utx up build --webpack # Build using webpack.config.js

✨ Key Features

  • Rust Powered: Maximum performance for dependency resolution and bundling.
  • 🛠️ Turbopack Inside: Incremental builds and instant HMR.
  • 🔌 Webpack Friendly: Partial support for existing Webpack configurations.
  • 📦 Monorepo First: Built-in workspace management.
  • 🌐 Web Ready: Run the entire toolchain in the browser via WASM.

📂 Project Structure

  • crates/: Rust core (Package Manager, Bundler Core, WASM/NAPI bindings).
  • packages/: TypeScript packages (CLI, Web version, Shared utilities).
  • next.js/: Turbopack source integration (Git submodule).
  • examples/: Demo projects (React, Ant Design, Webpack-compat, etc.).

🤝 Contributing

We love contributions! Check out CONTRIBUTING.md to get started.

📄 License

Utoo is licensed under the MIT License.

About

A unified toolchain for web development

Topics

Resources

Contributing

Stars

2.5k stars

Watchers

19 watching

Forks

Releases

Packages

Used by

Contributors

Languages