首頁 > 後端開發 > 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

在打字稿專案中,利用BUN的FFI將BUN的FFI用於命中率。 我最初認為將C代碼與打字稿整合在一起是一項複雜的工作,但是BUN的外國功能介面(FFI)顯著簡化了該過程。 這是直接在您的打字稿程式碼中實現本機C效能的方法。

初始設定:防止打字稿錯誤>

先用BUN初始化一個新項目,以確保正確的打字稿設定:

<code class="language-bash">bun init -y  # Skips interactive prompts</code>
登入後複製
為什麼在打字稿中編譯C?

這種方法讓您可以在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>
登入後複製
>執行:

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 bun頭開銷)。

實用用例包括:

>與作業系統API的介面(例如MacOS鍵鏈,Windows登錄)。

>

>最佳化計算密集的任務(例如,質數計算,視訊編碼)。

  • 重要的考慮因素

>tinycc限制:目前的實作利用了TinyCC,它缺乏GCC或Clang的最佳化功能。 > >

實驗特徵:
    線程安全性和非同步回調支援仍在開發中。
  • 字串編碼: utf-8編碼是預設的。
  • 快速啟動指南
  • >安裝bun:

>初始化您的專案(對於打字稿整合至關重要):

>
>從上面的範例新增
<code class="language-bash">curl -fsSL https://bun.sh/install | bash</code>
登入後複製
>
    檔案。
  1. >更多教學和更新,請關注我的部落格!
>
<code class="language-bash">bun init -y</code>
登入後複製
    進一步閱讀:
  1. bun ffi文檔,bun博客。 hello.c

以上是使用 TypeScript 在 Bun 中編譯 C:快速、原生且簡單的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板