BUNで新しいプロジェクトを初期化し、適切なタイプスクリプトのセットアップを確保することから始めます。
なぜ型にcをコンパイルしますか?bun init -y # Skips interactive prompts
このアプローチを使用すると、JavaScript環境内のCの生の速度を活用できます。 BUN v1.2のは、直接cコンパイルをタイプスクリプトに有効にし、WebAssemblyの必要性を排除するか、
- ネイティブの実行速度になります。bun:ffi
単純な「こんにちは、世界!」例node-gyp
基本的なc関数を作成しましょう:
さて、対応するタイプスクリプトコード():
// hello.c #include <stdio.h> void hello(const char* name) { printf("Hello %s from C!\n", name); }
with:main.ts
を実行します
import { cc } from "bun:ffi"; const { symbols: { hello } } = cc({ source: "./hello.c", symbols: { hello: { args: ["cstring"], returns: "void" } } as const, }); const name = "World"; const cString = Buffer.from(name); hello(cString); // Output: "Hello World from C!"
パフォーマンスと現実世界のアプリケーション
bun run main.ts
ベンチマークは印象的な速度を明らかにします:通話ごとに約6.26ns(2NSパンのオーバーヘッドを含む)。 実際のユースケースには以下が含まれます オペレーティングシステムAPIとのインターフェース(たとえば、MacOSキーチェーン、Windowsレジストリ)。
計算的に集中的なタスクを最適化する(例:プライムナンバーの計算、ビデオエンコーディング)。
重要な考慮事項
実験的機能:スレッドの安全性と非同期コールバックサポートはまだ開発中です。
文字列エンコーディング:
curl -fsSL https://bun.sh/install | bash
bun init -y
以上がTypeScript を使用した Bun での C のコンパイル: 高速、ネイティブ、シンプルの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。