この記事では、まだ知らないかもしれないJavaScript の世界から 7 つの新しいプロジェクトを紹介します。これらのツールとフレームワークは幅広い機能をカバーしており、 JavaScript 開発のトレンドがどこに向かっているのかについての洞察を提供します。
1.タウリ
Tauri は、デスクトップ アプリケーションを開発するための JavaScript フレームワークです。この「メタフレームワーク」により、React や Svelte などのフロントエンド Web フレームワークを使用できるようになり、クロスプラットフォームの「リッチ」クライアントに変わります。

Tauri の共同創設者の 1 人 (ユーザー名Denjell )は、デスクトップ フレームワークの目的を次のように要約しています。「Tauri は、アプリケーション開発プロセスを合理化するために存在します。まず、Tauri は Mac、 Windows 、 Linux用のアプリケーションを作成します。この夏、iOS とAndroidも含まれるバージョン 2.0 をリリースする予定です。」
Tauri を使用した開発プロセスは興味深いものです。このフレームワークを使用すると、既存のパイプラインを使用して開発でき、JavaScript と HTML で構築されたあらゆるスタックを処理できます。開発サーバーに対して実行され、その場でネイティブ デスクトップ クライアントを生成します。共同創設者のデンジェル氏は開発プロセスを次のように説明しています。
-
Svelte、Solid.js、React、Vue などを使用して開発サーバーを起動します。
-
tauri.conf適切なポートに設定します。 -
Tauri 開発ウィンドウを開始します。
Tauri のコードはシステム指向で Rust で書かれていますが、開発者はほぼすべて JavaScript で書かれた API を操作します。 Tauri は、JavaScript 開発者の世界向けにネイティブ デスクトップ アプリケーションを構築するための魅力的なアプローチです。同様の試みを行ってきた古いフレームワークとは異なり、Tauri は実際に JavaScript を使用したマルチプラットフォーム開発の約束を実現したいと考えています。

2.tRPC
tRPC は、 TypeScript に基づいて API を構築するための魅力的なアプローチを提供します。 tRPC は GraphQL と同じテクノロジー ファミリに属していますが、フロントエンド コードとバックエンド コードの間の対話を自動化するため、際立っています。また、TypeScript の強制入力機能による「スーパーパワー」も備えています。
tRPC の発明者Alex Johanssonに、tRPC を開発した理由を尋ねました。彼の答えは次のとおりです。「私は長年の GraphQL のファンですが、独自の製品を開発するときは、GraphQL のせいで作業が遅くなるように感じることがよくあります。フロントエンドとバックエンドには TypeScript を使用します。外部スキーマを組み込む代わりに言語自体を使用できないのはなぜですか?」
この「スーパーパワー」は、tRPC によってスタック全体に型が強制され、割り当てられるという事実に現れています。これは一種の双方向型推論を提供し、メタデータの介在や、API 定義をコードに接続するための追加のビルド ステップなしで機能します。
ここでは、 tRPC チームが StackBlitz を使用して作成した React アプリケーションを見てみましょう。この例では、公開されたエンドポイントが IDE で利用可能な情報を制御します。たとえば、フロントエンドでは、結果変数にカスタム tRPC useQueryフックが設定されます。

const result = trpc.greeting.useQuery({ name: 'client' }); 。
バックエンドでは、これは tRPC ルーターによって処理されます。
フロントエンドは、この変数を{result.data.text}のように使用できます。 IDE (および TypeScript のコンパイル手順) はこれを「認識」しており、 result.dataの型定義を提供できます。同様に、tRPC ルーター エンドポイントは、クエリで指定されたパラメーターなどのフロントエンドを認識します。 GitHub 上の 20,000 を超えるスターが示すように、tRPC は開発者コミュニティ内でますます関心を集めています。
3.Bun.js
Bun.js は、このフレームワークが 1 つのパッケージで複数の面で攻撃できるため、JavaScript 界の新星です。作成者の 1 人、Jarred Sumner は、Bun を作成した動機を次のように要約しています。
「私たちは JavaScript をより高速に実行し、より簡単に記述できるようにしたいと考えていました。この中で重要なのは、エコシステムの互換性です。 Bun は、Node.js のドロップイン代替品として設計されています。 Bun を使用するためにコードを書き直す必要はありません。 Node のネイティブ モジュール API (NAPI)、 fs 、 path 、 processなどの多くの Node.js API が Bun に統合されています。
ただし、Bun は Webpack、Vite、Babel などの二次ツールの代替でもあり、主にその驚くべき速度が特徴です。 Bun のパフォーマンス上の利点は、コードの大部分が JavaScript ではなく、低レベル言語の Zig およびC++に保存されているという事実から生じます。
Bun の高速処理とオールインワン アプローチにより、Bun は従来のバックエンド サーバー側 JavaScript スタックに代わる魅力的な代替手段となります。開発者もこの点を高く評価しており、これまでのところ GitHub でこのフレームワークに 40,000 個以上の星を付けています。
4.ジャコウネコ

TypeScript と CoffeeScript のアイデアを組み合わせて、いくつかの微妙な点を追加すると、 Civetのようなものになります。より強力な TypeScript コードを簡単に作成できるフレームワークです。
興味深いことに、Civet は TypeScript の改善に限定されず、JSX も処理します。 開発者の Erik Demaine は次のように説明しています。「Civet には、パイプ演算子、さまざまな JSX の改善、そして間もなくパターン マッチング スイッチなど、待望の言語機能が追加されます。 TypeScript に基づいているため、既存のツールとの互換性が非常に高いです。」
以下は Civet の動作の簡単な例です (公式ドキュメントより)。
// Civet syntax
i .= 0
loop
i++

break if i > 5
// TS output
let i = 0;
while (true) {
i++;
if (i > 5) {
break;

}
}
詳細については、「 ジャコウネコのチートシート」を参照してください。
5.タビー
Tabby は、 cmd 、 powershell 、ターミナルなどのネイティブ アプリケーションを置き換える、完全に機能するクロスプラットフォーム ターミナルです。また、Putty スタイルの SSH および WinSCP スタイルの SFTP もサポートします。
Twitter ユーザーの Eugeny はTabby の作成者であり、このツールの背後にある動機を次のように説明しています。今後もコミュニティを成長させ続け、スペースとパフォーマンスを最適化するために Electron ではなく Tabby を Tauri に切り替えたいと考えています。」
6.Pixi.js
Pixi は、WebGL および HTML5 Canvas とのインターフェイスを作成するためのパフォーマンス指向の高度な API を提供します。 NPM パッケージはここにあります。
Pixi.js は主にブラウザ ゲームに役立つように見えますが、図や珍しい効果など、パフォーマンスを重視するグラフィックスが必要な場合には、その使用が理にかなっています。 Tauri などのフレームワークと組み合わせると、Pixi をデスクトップ プラットフォームなどの開発に使用できます。 このオンライン プレイグラウンドは実験のためのスペースを提供します。
7.PM2

厳密に言えば、 PM2 はJavaScript ライブラリではなく、JavaScript で開発されたシステム指向のツールです。これは、コマンド ラインから高度なプロセス監視および管理プロセスを開始できるようにするアプリケーション監視ツールです。
Unix には、 bg/fg 、 nohup 、 screenなどの監視および管理ツールがあります。PM2 は、それらすべてとそれ以上のものを、よりユーザーフレンドリーなパッケージで提供します。 Node.js プロセス管理のさまざまなニーズを満たす必要がある場合、このツールは一見の価値があります。 (FM)
