ホームページ > バックエンド開発 > C++ > TypeScript を使用した Bun での C のコンパイル: 高速、ネイティブ、シンプル

TypeScript を使用した Bun での C のコンパイル: 高速、ネイティブ、シンプル

Barbara Streisand
リリース: 2025-01-25 10:04:10
オリジナル
636 人が閲覧しました

Compiling C in Bun with TypeScript: Fast, Native, and Simple

タイプスクリプトプロジェクト内での燃えるようなCコンピレーションのために、BunのFFIを活用します。 私は当初、CコードをTypeScriptと統合することは複雑な取り組みになると信じていましたが、Bunの外部関数インターフェイス(FFI)はプロセスを著しく簡素化します。 タイプスクリプトコードでネイティブCのパフォーマンスを直接実現する方法は次のとおりです。

初期セットアップ:タイプスクリプトエラーの防止

BUNで新しいプロジェクトを初期化し、適切なタイプスクリプトのセットアップを確保することから始めます。

なぜ型にcをコンパイルしますか?
<code class="language-bash">bun init -y  # Skips interactive prompts</code>
ログイン後にコピー

このアプローチを使用すると、JavaScript環境内のCの生の速度を活用できます。 BUN v1.2のは、直接cコンパイルをタイプスクリプトに有効にし、WebAssemblyの必要性を排除するか、

- ネイティブの実行速度になります。

bun:ffi単純な「こんにちは、世界!」例node-gyp

基本的なc関数を作成しましょう:

さて、対応するタイプスクリプトコード(

):

<code class="language-c">// hello.c
#include <stdio.h>
void hello(const char* name) {
  printf("Hello %s from C!\n", name);
}</code>
ログイン後にコピー

with:main.tsを実行します

<code class="language-typescript">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!"</code>
ログイン後にコピー

パフォーマンスと現実世界のアプリケーション

<code class="language-bash">bun run main.ts</code>
ログイン後にコピー

ベンチマークは印象的な速度を明らかにします:通話ごとに約6.26ns(2NSパンのオーバーヘッドを含む)。 実際のユースケースには以下が含まれます オペレーティングシステムAPIとのインターフェース(たとえば、MacOSキーチェーン、Windowsレジストリ)。

計算的に集中的なタスクを最適化する(例:プライムナンバーの計算、ビデオエンコーディング)。

重要な考慮事項

  • tinyccの制限:
  • 現在の実装は、GCCまたはClangの最適化機能がないtinyCCを利用しています。

実験的機能:スレッドの安全性と非同期コールバックサポートはまだ開発中です。

文字列エンコーディング:
    utf-8エンコードはデフォルトです。
  • クイックスタートガイド
  • bun:
  • のインストール
プロジェクトを初期化します(タイプスクリプト統合には重要):

    上記の例から
  1. および
  2. ファイルを追加します。
<code class="language-bash">curl -fsSL https://bun.sh/install | bash</code>
ログイン後にコピー
さらなるチュートリアルと更新については、私のブログをフォローしてください!
  1. さらなる読み取り:
bun ffiドキュメント、bun blog。
<code class="language-bash">bun init -y</code>
ログイン後にコピー

以上がTypeScript を使用した Bun での C のコンパイル: 高速、ネイティブ、シンプルの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート