利用 Bun 的 FFI 在 TypeScript 项目中实现超快的 C 编译。 我最初认为将 C 代码与 TypeScript 集成将是一项复杂的任务,但 Bun 的外部函数接口 (FFI) 显着简化了该过程。 以下是如何直接在 TypeScript 代码中实现本机 C 性能。
初始设置:防止 TypeScript 错误
首先使用 Bun 初始化一个新项目,确保正确的 TypeScript 设置:
<code class="language-bash">bun init -y # Skips interactive prompts</code>
为什么要在 TypeScript 中编译 C?
这种方法允许您在 JavaScript 环境中利用 C 的原始速度。 Bun v1.2 的 bun:ffi
可以直接将 C 编译为 TypeScript,从而无需 WebAssembly 或 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>
现在,相应的 TypeScript 代码 (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 开销)。
实际用例包括:
重要注意事项
快速入门指南
<code class="language-bash">curl -fsSL https://bun.sh/install | bash</code>
<code class="language-bash">bun init -y</code>
hello.c
和 main.ts
文件。有关更多教程和更新,请关注我的博客!
进一步阅读:Bun FFI 文档、Bun 博客。
以上是用打字稿在面包中编译C:快速,本地和简单的详细内容。更多信息请关注PHP中文网其他相关文章!