Show HN: Nub - Node.js用のオールインワン・ツールキット(Bun風の)

2026/06/24 23:14

Show HN: Nub - Node.js用のオールインワン・ツールキット(Bun風の)

RSS: https://news.ycombinator.com/rss

要約

Japanese Translation:

Nub は、フルランタイムへの移行を必要とせずに現代的な機能(TypeScript 対応、Temporal などを含むポリフィル、node:sqlite や vm.Module などの実験的なフラグ解除など)を追加する、Rust で記述された高パフォーマンスのツールキットであり、標準の Node.js を強化します。Nub は卓越した速度を提供します:スクリプト実行(

nub run
)は
pnpm run
の約 24 倍速く、パッケージ実行(
nubx
)は Rust バイナリディスパッチを用いてローカルバイナリを最初に解決することにより、
npx
/
pnpm exec
より最大 19 倍高速です。Nub は
nub install
コマンドで依存関係を管理し(Aube エンジン、pnpm 互換)、デフォルトで危険なポストアンスインストールスクリプトをブロックします。追加のセキュリティ機能には osv.dev に対する自動チェックと、パッケージの最低リリース年齢 24 時間の強制があります。Nub は
.node-version
.nvmrc
、または
package.json#engines
から自動的に Node バージョンを推測し、マニュアル制御用の Node バージョンマネージャ(
nub node
)を提供し、URLPattern や RegExp.escape といった現代の API をサポートし、依存関係グラフと無効化トリガー(
.env*
tsconfig.json
など)を追跡するためのウォッチモード(
nub watch
)を提供します。Nub は互換性モードを通じて npm、pnpm、Yarn、Bun とシームレスに統合でき、macOS/Linux では curl/PowerShell 経由で、Windows では PowerShell/Homebrew/npm 経由で、または глобальный npm パッケージとしてインストール可能です。GitHub Actions へのサポートは
nubjs/setup-nub
が提供します。これらの機能により、インフラストラクチャを変更せずにマルイシスなパッケージからのリスクを軽減しつつ、開発ワークフローを大幅に簡素化します。

本文

Nub: Node.js の高速オールインワンツールキット

Node.js を置き換えるのではなく、Rustで構築された拡張機能による開発体験(DX)を提供するツールキットです。


特徴と概要

  • 目的: Node.js の機能を拡張し、Bun や Deno に匹敵する高速な動作を実現します。
  • 哲学: 新しいランタイムは不要です。
  • ロックイン: ベンダー固有の API サージ面はなく、プラットフォーム依存性はありません。
  • 統合機能: ファイル実行、依存関係管理、Node.js 自体の運用までを単一のツールで完結させます。

クイックスタート

以下のコマンドで主要なタスクを高速度に処理できます。

nub index.ts             # TypeScript ファーストの Node.js ランタイム
nub run dev              # pnpm run の約 24 倍高速化
nubx prisma generate     # npx の約 19 倍高速化
nub install              # pnpm install の約 2.5 倍高速化
nub watch src/server.ts  # ネイティブなウォッチモード
nub pm shim              # Corepack 風シャイム登録
nub node install 26      # Node.js バージョン管理
nub upgrade              # ツールの自己更新

機能比較表

アクションデフォルトのツールNub コマンド
ファイル実行
node
,
tsx
など
nub <file>
スクリプト実行
npm run
,
pnpm run
nub run <script>
パッケージ実行
npx
,
pnpm dlx
nubx
依存関係インストール
npm
,
pnpm
nub install
ウォッチモード
nodemon
,
node --watch
nub watch
バージョン管理
nvm
,
fnm
,
volta
nub node
シャイム機能
corepack
nub pm

インストール方法

macOS / Linux (curl)

curl -fsSL https://nubjs.com/install.sh | bash

Windows (PowerShell)

irm https://nubjs.com/install.ps1 | iex

Homebrew (macOS / Linux)

brew install nubjs/tap/nub

npm / pnpm / yarn

npm install -g --ignore-scripts=false @nubjs/nub
# 注:pnpm や yarn でもグローバルインストールに対応しています。

GitHub Actions

actions/setup-node@v4
の代わりに以下のアクションを使用してください(互換性 1:1)。

- uses: nubjs/setup-nub@v0

ファイルランナー (
nub <file>
)

ファイルを実行します。TypeScript (

.ts
,
.tsx
) や JSX をサポートし、ビルドステップなしで動作させます。 標準 Node.js と互換性が高く、Bun/Deno の機能を追加しています。

基本コマンド

nub index.ts                 # 単一ファイル実行
nub --watch app.ts           # 変更時に自動再起動

主な機能と拡張点

  • 🦆 完全な TypeScript 対応: Enum や Namespace をサポート。
  • 🧭 高度なリゾリューション: エクスポートなしインポート、
    tsconfig.json#paths
    対応。
  • ⚛️ JSX / TSX 実行。
  • 🎂 Decorators 対応 (
    emitDecoratorMetadata
    )。
  • 🆕 現代の構文:
    using
    構文サポート(自動トランスパイル)。
  • 🔐 自動
    .env*
    ロード
    (Next.js / Vite と同等)。
  • 🗂️ バイルトインローダー: YAML, TOML, JSONC, TXT など多様なデータ形式。
  • 🌐 Polyfills 対応: Temporal, Worker, URLPattern など(必要に応じて自動付与)。
  • 🔥 実験的機能フラグ解除:
    node:sqlite
    , WebSocket, EventSource などをネイティブに。
  • 高速起動: tsx よりも約 2.9 倍高速。

Node.js バージョンの自動推論

プロジェクトの設定に基づき、最適な Node.js バージョンを自動的にインストールして実行します(優先順位に従う)。

  1. NODE_EXECUTABLE
    (オーバーライド)
  2. package.json#devEngines
  3. .node-version
  4. .nvmrc
  5. package.json#engines
$ echo 26 > .node-version
$ nub hello.ts
Using Node.js 26.3.0 (resolved from .node-version)
Installed in 9.8s
Hello world!

モダンな API のサポート状況

APIステータス
TemporalNode <26: Polyfill / ≥26: ネイティブ
URLPatternNode <24: Polyfill / ≥24: ネイティブ
RegExp.escapeNode <24: Polyfill / ≥24: ネイティブ
Error.isErrorNode <24: Polyfill / ≥24: ネイティブ
Promise.tryNode <24: Polyfill / ≥24: ネイティブ
Float16ArrayNode <24: Polyfill / ≥24: ネイティブ
navigator.locksNode <24.5: Polyfill / ≥24.5: ネイティブ
reportErrorPolyfill
vm.Moduleフラグなしで動作
ShadowRealmフラグなしで動作
Wasm module importsNode <24.5: フラグなし / それ以上: ネイティブ
WebSocketNode 20.10: フラグなし / 22+: ネイティブ
EventSourceNode 20.18: フラグなし / それ以上: ネイティブ
node:sqliteNode 22.5: フラグなし / 22.13: ネイティブ

スクリプトランナー (
nub run
)

npm run
pnpm run
の高速化版です。JavaScript の起動を伴わない Rust バイナリのため、スクリプトディスパッチを大幅に高速化します(約 24 倍)。

nub run build
nub run -r --filter "@org/*" test

パフォーマンス比較 (ベンチマーク: macOS)

コマンド時間 (ms)相対性能
nub run
14.7
npm run
329.9約 22 倍遅い
pnpm run
442.7約 30 倍遅い

主な機能

  • 🚀 高速化: npm/pnpm の検知ラグ(300ms+)を除去。14ms での起動。
  • 🔁 ライフサイクル対応:
    pre/post
    ハックと完全な
    npm_*
    環境をサポート。
  • 🧰 引数転送: ローカルの bin ファイルを PATH に持ち、
    --
    セパレータなしで処理。
  • 🗃️ pnpm ワークスペース対応:
    -r
    ,
    --filter
    ,
    --parallel
    ,
    --workspace-concurrency
    等。
  • 🎯 文法互換性: pnpm のグラフおよび変更セレクター(例:
    [main]
    )を完全サポート。

パッケージランナー (
nubx
)

npx
pnpm dlx
を置き換えます。ダウンロードとレジストリフォールバック機能を保持しつつ、Node.js の起動ペナルティを排除します(約 19 倍高速)。

nubx eslint . --fix
nubx -y cowsay@1.5.0 "hi"  # レジストリから自動フェッチ

パフォーマンス比較 (ベンチマーク: esbuild)

コマンド時間 (ms)相対性能
nubx
11
pnpm exec
191約 17 倍遅い
npx
226約 19 倍遅い

主な機能

  • 高速化: ローカル bin の直接実行により、Node.js ラッパーによるラグを回避。
  • 🔎 bin ファイル解決: どのマネージャーでインストールされたかを問わず
    node_modules/.bin
    を探ります。
  • 🌐 レジストリフォールバック: インストールされていないパッケージはフェッチして即座に実行し、破棄します(npx と同等)。
  • 🧩 フル互換性: pnpm exec/dlx のすべてのフラグとシェルモードをサポート。
  • 🪜 ディレクトリ探索チェーン:
    .bin
    → ワークスペースルート → 上位ディレクトリを検索。

パッケージマネージャー (
nub install
)

Aube エンジンにより動作するパッケージマネージャーです。pnpm と互換性があり、約 2.5 倍高速

nub install
nub ci
nub add -E -D --save-catalog react
nub remove lodash
nub update
nub dedupe

パフォーマンス比較 (ウォーム・フローズンインストール)

ツール時間 (ms)相対性能
nub
1122
bun
1444約 29% 遅い
pnpm
2847約 2.5 倍遅い
npm
4163約 3.7 倍遅い

セキュリティ強化

  • 🛡️ デフォルトブロック:
    postinstall
    スクリプトを無効化。
  • 🦠 脆弱性チェック: 既知の悪意のあるパッケージを検出(
    osv.dev
    )。
  • 🔻 プロヴェナンス制御: Downgrade をデフォルトで拒否。
  • リリース制限: リリース後の経過時間を最小 24 時間に設定可能。

インキュメントモード (Compatibility Mode)

既存のプロジェクトで

nub install
を実行すると、現在のマネージャー(npm/pnpm/yarn/bun)を検出し、その環境設定を尊重します。

Incumbent読み込む設定ファイル
npm
package-lock.json
,
.npmrc
, ワークスペース, engines など
pnpm
pnpm-lock.yaml
,
pnpm-workspace.yaml
, catalog 等
Yarn (read-only)
yarn.lock
,
.yarnrc.yml
等(読み取り専用)
Bun
bun.lock
,
bunfig.toml
Nub中立な設定のみ (
.npmrc
,
npm_config_*
)

パッケージメタマネージャー (
nub pm
)

Corepack の機能を Rust ネイティブで実装し、プロジェクト固有のパッケージマネージャーバージョンをピン留めします。

nub pm shim

動作:

  1. プロジェクトで使用されているパッケージマネージャーを検出。
  2. 必要な場合は適切なバージョンをインストール。
  3. シャイムエイリアスを通じてコマンドを実行(
    corepack enable
    と同等)。

Corepack は Node.js v25 でアンバンドルされつつありますが、Nub は既存のワークフローを維持するユーザーへの利便性を提供します。


ノードバージョンマネージャー (
nub node
)

Node.js バージョンを手動または自動で管理できます。インストールされたキャッシュは自動的に利用されます。

$ nub node -h 

コマンド:

  • which
    : 解決されたバイナリのパスを出力
  • install [<version>]
    : キャッシュにバージョンを追加
  • ls
    : キャッシュ内のバージョン一覧を表示
  • uninstall <version>
    : キャッシュから削除
  • pin <version>
    : プロジェクトのデフォルトをピン留め

ライセンス

MIT

⭐️ この記事が気に入ったら、リポジトリにスターしていただけると幸いです!

同じ日のほかのニュース

一覧に戻る →

2026/06/25 2:47

OpenAI、ブロードコムによる初自有チップを発表

## Japanese Translation: 要約: OpenAI は、Nvidia ハードウェアへの依存を減らすという戦略的な動きとして、Broadcom と共同で開発した最初の独自の AI 推論チップ「Jalapeño」を発表しました。このチップの主な優位点は、既存の選択肢を上回る卓越したワットあたりの性能であり、これは OpenAI の大規模言語モデルが直接、チップおよび全体の基盤スタック(アーキテクチャ、カーネル、メモリスистем、ネットワーク、デプロイメントシステムなど)の最適化に参加するという独自のプロセスを通じて実現されています。事前学習タスクは既存のシステムで引き続き行われますが、10 月の公式パートナーシップ発表以降およびさらなるテストを経て、推論ワークロードが Jalapeño へ迅速に移転する見込みです。このチップは推論用に特別に設計されており、より高速で信頼性が高くコスト効率の良い AI エクスペリエンスを実現するとともに運用コストを削減することを可能にします。これは OpenAI の財務の底線を改善する方法として強調されており、エージェント型製品(例:Codex)やリアルタイムモデルを取り扱う専用データセンターなどの目的builtアプリケーションを動かすために適しています。

2026/06/25 7:39

PostgreSQL で十分です

## Japanese Translation: 主要な要点は、GitHub Desktop で特定のクローニングタスクが必要なユーザーは、コントリビューター「cpursley」から提供される専用のスクリプトを使用すべきであるということです。Gist の URL—`https://gist.github.com/cpursley/c8fb81fe8a7e5df038158bdfe0f06dbb.js`—はスクリプトを提供しており、ユーザーは GitHub Desktop 内での使用のために「cpursley/c8fb81fe8a7e5df038158bdfe0f06dbb」をローカルに保存するよう指示されています。内容は、背景や今後のアップデートなしに直ちに実装することに焦点を当てています。

2026/06/24 23:41

RubyLLM:すべての主要 AI プロバイダーに対応する Ruby フレームワーク

## 日本語翻訳: RubyLLM は、OpenAI、xAI、Anthropic、Gemini、Ollama を含むローカルモデルに至るまで主要なすべての AI プロバイダーをサポートする統一された Ruby フレームワークです。多様な API とレスポンス形式を単一のインターフェースに統合することで開発を簡素化するのがその主たる価値であり、このことでチームはチャットボット、AI エージェント、RAG システム、コンテンツ生成器、および様々な AI ワークフローを構築できます。インストールは簡単です:Gemfile に RubyLLM を追加し、`config/initializers/ruby_llm.rb` で API キーを設定し、必要であれば generator コマンドで Rails と統合し、`localhost:3000/chats` でローカルチャット UI を起動できます。開発者は RAG システムやコンテンツ生成器などの複雑なアプリケーションをわずか 2 分で構築でき、Ruby エコシステム内でこの機能を拡張しています。JPG(画像)、MP4(ビデオ)、WAV(音声)、PDF(文書)、RB(コード)を含む広範なファイル解析をサポートしており、`RubyLLM.paint` を介した画像生成、`RubyLLM.embed` を介した埋め込み生成、`RubyLLM.transcribe` を介した音声書き起こしが可能となります。また、`RubyLLM.moderate` を用いたコンテンツモデレーション機能も含まれており、テキストの安全性を確認できます。ユーザーは `.with_tool` を使用して AI エージェントが特定の指示に基づいて実行するカスタム Ruby クラスツールを定義でき、`RubyLLM::Agent` を用いて特定の指示、モデル、ツールの関連付けを持つエージェントを作成できます。さらに、このフレームワークは `RubyLLM::Schema` で定義されたスキーマによる構造化 JSON 出力をサポートし、`.ask` メソッドに渡されるブロックを通じてストリーミングレスポンスを提供します。このアプローチにより、高度なモデルを使用して複雑なタスクを実行する洗練されたエージェントの迅速なデプロイが可能となり、ネイティブ Ruby 環境内で堅牢な人工知能ソリューションの作成が著しく加速されます。