DEV Community

Cover image for Aube là gì? Trình quản lý Package Node.js nhanh nhất 2026
Sebastian Petrus
Sebastian Petrus

Posted on • Originally published at apidog.com

Aube là gì? Trình quản lý Package Node.js nhanh nhất 2026

Việc cài đặt Node đã chậm trong nhiều năm. Bạn chạy npm install, đi uống cà phê, quay lại, và CI vẫn đang giải quyết @types/node. Aube thay đổi điều đó: hoàn thành một lần cài đặt CI "warm" cho dự án thực tế 1.400 gói chỉ trong 139 mili giây, nhanh hơn pnpm khoảng 7.3 lần và nhanh hơn Bun 3 lần trên cùng một hệ thống. Điều quan trọng là: Aube đọc và ghi lockfile hiện có, bạn có thể dùng thử ngay mà không cần cả nhóm phải chuyển đổi.

Dùng thử Apidog ngay hôm nay

Hướng dẫn này sẽ giúp bạn nắm được Aube là gì, cách nó đạt tốc độ benchmark ấn tượng, cách cài đặt, so sánh thực tế với pnpm/npm/yarn/Bun, và cách áp dụng Aube nếu bạn build API với Apidog mỗi ngày.

Aube là gì?

Aube là trình quản lý gói Node.js cực nhanh từ en.dev, phát hành MIT. Tên gọi nghĩa là “bình minh” trong tiếng Pháp, đọc là “ohb”. Dự án đang beta (v1.0.0-beta.10), hướng đến tương thích pnpm v11.

Aube dùng cùng mô hình trên đĩa như pnpm: global content-addressable store kết hợp với bố cục symlink cô lập, nhưng quá trình cài đặt được viết bằng ngôn ngữ native, tận dụng luồng hệ thống thay vì JavaScript. Nhờ đó, Aube có thể nhanh hơn Bun ở nhiều kịch bản, vẫn ghi đúng vào pnpm-lock.yaml.

Aube đọc trực tiếp các file lock phổ biến: pnpm-lock.yaml, package-lock.json, npm-shrinkwrap.json, yarn.lock, bun.lock. Bạn có thể dùng thử local trong khi CI vẫn dùng pnpm – không ảnh hưởng đồng đội.

Điểm chuẩn Aube: Nhanh đến mức nào?

Dưới đây là benchmark thực tế trên ~1.400 gói sử dụng hyperfine. Các kịch bản đều giả định đã có lockfile cam kết. "Warm" là xóa node_modules nhưng giữ cache; "cold" là xóa sạch mọi thứ.

Số liệu từ điểm chuẩn chính thức (aube 1.0.0-beta.3, bun 1.3.12, pnpm 10.33.0, npm 11.12.1, yarn 1.22.22, node 24.15.0):

Kịch bản aube bun pnpm yarn npm
Cài đặt CI (cache warm, không có node_modules) 139ms 416ms 1.01s 2.43s 2.78s
Cài đặt CI (cache cold, không có node_modules) 1.12s 935ms 1.57s 6.60s 4.21s
install && run test (đã cài đặt) 21ms 42ms 453ms 351ms 615ms
Thêm phụ thuộc (add is-odd) 209ms 414ms 1.33s 2.55s 2.89s

Thời gian CI "warm" là điểm nổi bật: Aube nhanh hơn pnpm 7.3 lần, nhanh hơn Bun 3 lần ở trường hợp phổ biến nhất của pipeline thực tế.

Kịch bản install && run test đo vòng lặp dev thường ngày. Aube bỏ qua cài đặt nếu trạng thái mới, chỉ mất 21ms – các tool khác vẫn tốn 400-600ms.

Ở cache cold, Bun nhanh hơn Aube (935ms vs 1.12s) do tối ưu fetch tarball; nhưng warm-cache là thực tế hàng ngày.

Bạn có thể tự benchmark với mise run bench trong repo Aube.

Vì sao Aube nhanh hơn pnpm và Bun?

Ba điểm then chốt:

  • Cài đặt native, đa luồng: npm, pnpm, yarn chạy cài đặt trong Node.js nên mọi thao tác băm, giải nén, symlink đều phải qua JS engine. Aube dùng native runtime, tách khỏi V8. Bun cũng native nhưng mang cả JS runtime bên trong; Aube chỉ tập trung cho cài đặt, nên vượt Bun ở cài đặt "warm".
  • Global virtual store mặc định: pnpm v11 đã có enableGlobalVirtualStore, nhưng không mặc định cho project. Aube bật mặc định, các project chia sẻ các phụ thuộc nặng (React, Vite, TypeScript...) qua symlink, giảm ~90% dung lượng đĩa cho mono-repo thông thường.
  • Ngắn mạch cài đặt với state file: aube run test kiểm tra hash của package.json và lockfile. Nếu trùng, chỉ cần một lần stat, gửi script ngay lập tức – lý do vòng lặp install && test chỉ mất 21ms.

Tóm lại: lấy layout của pnpm, bỏ startup JS, thiết kế CLI cho giả định "99% cài đặt là không thay đổi".

Cách cài đặt Aube

Cách đề xuất là dùng mise:

mise use -g aube
Enter fullscreen mode Exit fullscreen mode

Kiểm tra version:

aube --version
Enter fullscreen mode Exit fullscreen mode

Nếu thích npm:

npm install -g @endevco/aube
Enter fullscreen mode Exit fullscreen mode

macOS/Linux với Homebrew:

brew install endevco/tap/aube
Enter fullscreen mode Exit fullscreen mode

Ghim version Aube local cho project:

mise use aube
Enter fullscreen mode Exit fullscreen mode

Câu lệnh này ghi aube vào mise.toml, đảm bảo mọi shell vào thư mục dự án dùng cùng version. Không còn "máy tôi cài pnpm năm ngoái nên chạy được".

Tài liệu cài đặt có thêm hướng dẫn cài tarball/theo OS.

Các lệnh Aube hàng ngày (thay thế pnpm)

Giao diện gần như pnpm, rất dễ làm quen:

aube install              # cài đặt toàn bộ phụ thuộc
aube add react            # thêm phụ thuộc
aube add -D vitest        # thêm dev dependency
aube remove react         # xóa phụ thuộc
aube update               # cập nhật theo package.json
aube run build            # chạy script trong package.json
aube test                 # chạy script test, auto install nếu cần
aube exec vitest          # chạy binary local
aube dlx cowsay hi        # chạy package dùng một lần
aube ci                   # install sạch, freeze cho CI
Enter fullscreen mode Exit fullscreen mode

Có thể rút gọn:

aubr build       # tương đương aube run build
aubx cowsay hi   # tương đương aube dlx cowsay hi
Enter fullscreen mode Exit fullscreen mode

Sử dụng aube ci trong pipeline: xóa node_modules, xác nhận lockfile mới, cài đặt lại. Nếu lockfile lệch, báo lỗi ngay.

Khả năng tương thích lockfile

Aube đọc/ghi lockfile tại chỗ cho hầu hết hệ sinh thái:

Lockfile Đọc Ghi tại chỗ
aube-lock.yaml
pnpm-lock.yaml v9
package-lock.json v2/v3
npm-shrinkwrap.json
yarn.lock (v1/v2/berry)
bun.lock

Ví dụ thực tế: team bạn dùng pnpm, CI vẫn chạy pnpm install --frozen-lockfile, bạn chạy local aube install. Aube đọc và ghi vào đúng pnpm-lock.yaml. Đồng nghiệp có thể tiếp tục dùng pnpm bình thường.

Lưu ý: pnpm v5/v6 lockfile cần nâng cấp trước; yarn PnP cần chuyển về linker node_modules.

Mặc định bảo mật của Aube

Aube chủ động xem cài đặt là ranh giới bảo mật, không phải tiện lợi:

  1. Tuổi phát hành tối thiểu: Gói mới sẽ phải chờ một khoảng thời gian trước khi có thể cài, tránh trường hợp bị hack rồi gỡ nhanh.
  2. Chặn phụ thuộc kỳ lạ: Tự động chặn các transitive dependency có URL bất thường, patch lạ, hoặc git ref không chuẩn.
  3. Phê duyệt script vòng đời: Script postinstall mặc định bị bỏ qua. Muốn chạy, bạn phải aube approve-builds. Gói nào bị ignore sẽ hiện ở aube ignored-builds.

Các mặc định này giúp bạn chủ động biết gói nào thực sự chạy code trên máy mình.

Tham khảo thêm:

Bố cục node_modules của Aube

Aube dùng layout node_modules cô lập:

  • node_modules/: chỉ chứa phụ thuộc khai báo trong package.json.
  • Phụ thuộc bắc cầu nằm trong node_modules/.aube/.
  • Gói thực tế chỉ lưu một lần tại $XDG_DATA_HOME/aube/store/ (thường là ~/.local/share/aube/store/).

Hệ quả:

  • Dự án trùng package chia sẻ file trên đĩa, không còn hàng chục bản lodash.
  • Không thể require ảo: nếu thiếu, thêm vào package.json.
  • Cài đặt lặp lại chỉ cần hard-link lại từ store.

Nếu chuyển từ npm/yarn classic, có thể gặp một số package hỏng do import ảo – chỉ cần thêm vào package.json là xong.

Workspaces & Monorepos

Aube hỗ trợ workspaces & workspace::

aube install -r
aube run test -r
aube add zod --filter @acme/api
Enter fullscreen mode Exit fullscreen mode

Aube đọc/ghi pnpm-workspace.yaml nếu có. Các workspace mới có thể dùng aube-workspace.yaml. Các flag -r, --filter tương tự pnpm, đảm bảo chơi đẹp với turborepo/nx.

Trong monorepo API, CI cache warm cực kỳ quan trọng. Nếu pipeline mỗi lần merge đều install, build, test, publish contract cho 10 package, giảm install từ 1 giây xuống 139ms cho mỗi package là tiết kiệm lớn.

Aube trong vòng đời phát triển API

Nếu bạn build API, mỗi lần refactor đều phải install lại. Tốc độ install không còn là con số phụ – nó là thời gian giữa "tôi thay đổi" và "biết có lỗi hay không".

Vòng lặp hiệu quả:

  1. Thiết kế, mock API với Apidog. Schema-first luôn tốt hơn code-first với dự án teamwork.
  2. Tạo client typed hoặc chạy contract test với mock Apidog trong Node project.
  3. Dùng Aube local để install trong mili giây khi lặp client.
  4. Kết nối CI với cùng bộ test và aube ci.

Xem thêm:

Nếu bạn đã dùng Apidog, thêm Aube chỉ cần 1 dòng mise use, tiết kiệm vài giây mỗi lần reload.

Di chuyển từ các trình quản lý gói khác

npm: Chạy aube install trong dự án. Aube đọc và ghi package-lock.json, tạo layout node_modules cô lập. Nếu gặp lỗi require, chỉ cần thêm vào package.json. Xem hướng dẫn npm users.

pnpm: Dễ nhất vì layout giống nhau. Aube đọc trực tiếp pnpm-lock.yaml v9, hỗ trợ workspace:, bộ lọc... Xem thêm tại pnpm-users.

yarn: Đọc cả lockfile v1 (classic), v2+ (berry). Nếu đang dùng Yarn PnP, chuyển về nodeLinker: node-modules trước.

Bun: Đọc được bun.lock. Khác biệt lớn nhất: Bun gắn liền với JS runtime của Bun, Aube là tool cài đặt độc lập, chạy với bất kỳ Node version nào. Nếu bạn dùng mise để quản lý Node, Aube cũng tương thích hoàn toàn.

Lưu ý thực tế

  • Beta: Tháng 4/2026, Aube là v1.0.0-beta.10, hướng đến tương thích pnpm v11 nhưng chưa thử nghiệm rộng. Khuyến nghị dùng local trước, giữ nguyên lockfile cũ, chỉ chuyển CI sau khi ổn định.
  • Phạm vi: Aube không làm quản lý runtime. Các lệnh registry helper (whoami, token, owner, search, pkg, set-script) chỉ là stub, hãy giữ npm dự phòng nếu CI cần.
  • Hỗ trợ nền tảng: mise hỗ trợ macOS, Linux, Windows qua WSL. Windows native cài qua tarball, còn đang hoàn thiện – xem trang cài đặt để biết chi tiết.
  • Cộng đồng: Có Discord (trên homepage), 325 stars GitHub, CI dùng Buildkite.

Câu hỏi thường gặp

"aube" là gì?

  • "Bình minh" tiếng Pháp. Đọc là “ohb”. Slogan: “một bình minh mới cho cài đặt Node”.

Aube thay thế được pnpm không?

  • Gần như hoàn toàn. Tương thích pnpm v11, đọc lockfile pnpm. Một số lệnh đặc thù runtime, registry helper nằm ngoài phạm vi.

Dùng Aube trong CI, giữ pnpm local được không?

  • Được. Aube đọc/ghi lockfile tại chỗ, dùng chung với pnpm. Team thường bắt đầu local Aube, CI vẫn pnpm rồi chuyển dần.

Aube vs Bun?

  • Cài đặt "warm", Aube nhanh hơn Bun ~3 lần do Bun validate nhiều hơn. "Cold" thì Bun nhỉnh hơn. Bun mang JS runtime, Aube chỉ lo cài đặt. Nếu bạn dùng Node, không cần runtime của Bun để tận dụng Aube. So sánh bố cục kiểu pnpm để hiểu tác động các lựa chọn layout.

Aube có chạy trên Windows không?

  • Có, qua WSL. Windows native vẫn đang hoàn thiện. mise là cách đơn giản nhất để cài & update trên mọi hệ điều hành.

Aube open source chứ?

  • Có, MIT, code tại GitHub.

Lockfile pnpm cũ có bị mất không?

  • Không. Aube đọc, cài đặt, và ghi lại chính lockfile đó. Đồng nghiệp dùng pnpm vẫn thấy diff lockfile bình thường.

Kết luận

Cài đặt Node giờ không cần chậm nữa. Aube là trình quản lý gói Node.js nhanh nhất cho các cài đặt "warm", lặp lại – 139ms cho 1.400 package, 21ms cho install && test khi không thay đổi, tiết kiệm 90% dung lượng đĩa với nhiều dự án. Đọc lockfile cũ, bảo mật mặc định tốt hơn, thử chỉ với một dòng mise use aube.

Nếu bạn đã dùng Apidog cho phát triển API, hãy thử kết hợp thêm Aube ở khâu cài đặt. Tải về Apidog nếu chưa có, kết hợp với Aube cho dự án Node kế tiếp và cảm nhận vòng lặp phản hồi thực sự nhanh.

Top comments (0)