在打字稿專案中,利用BUN的FFI將BUN的FFI用於命中率。 我最初認為將C代碼與打字稿整合在一起是一項複雜的工作,但是BUN的外國功能介面(FFI)顯著簡化了該過程。 這是直接在您的打字稿程式碼中實現本機C效能的方法。
初始設定:防止打字稿錯誤>
先用BUN初始化一個新項目,以確保正確的打字稿設定:
<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>
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>
實用用例包括:
>與作業系統API的介面(例如MacOS鍵鏈,Windows登錄)。
>>最佳化計算密集的任務(例如,質數計算,視訊編碼)。
>tinycc限制:
>初始化您的專案(對於打字稿整合至關重要):
><code class="language-bash">curl -fsSL https://bun.sh/install | bash</code>
<code class="language-bash">bun init -y</code>
hello.c
以上是使用 TypeScript 在 Bun 中編譯 C:快速、原生且簡單的詳細內容。更多資訊請關注PHP中文網其他相關文章!