Rumah > pembangunan bahagian belakang > C++ > Menyusun C di Bun dengan TypeScript: Cepat, Asli, dan Mudah

Menyusun C di Bun dengan TypeScript: Cepat, Asli, dan Mudah

Barbara Streisand
Lepaskan: 2025-01-25 10:04:10
asal
636 orang telah melayarinya

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

Memanfaatkan FFI Bun untuk kompilasi C yang pantas dalam projek TypeScript. Saya pada mulanya percaya menyepadukan kod C dengan TypeScript akan menjadi satu usaha yang rumit, tetapi Antara Muka Fungsi Asing Bun (FFI) memudahkan proses dengan luar biasa. Berikut ialah cara untuk mencapai prestasi C asli secara langsung dalam kod TypeScript anda.

Persediaan Awal: Mencegah Ralat TypeScript

Mulakan dengan memulakan projek baharu dengan Bun, memastikan persediaan TypeScript yang betul:

<code class="language-bash">bun init -y  # Skips interactive prompts</code>
Salin selepas log masuk

Mengapa Kompilasi C dalam TypeScript?

Pendekatan ini membolehkan anda memanfaatkan kelajuan mentah C dalam persekitaran JavaScript. Bun v1.2 bun:ffi membolehkan kompilasi C terus ke TypeScript, menghapuskan keperluan untuk WebAssembly atau node-gyp – menghasilkan kelajuan pelaksanaan asli.

Satu "Hello, Dunia!" Contoh

Mari kita cipta fungsi C asas:

<code class="language-c">// hello.c
#include <stdio.h>
void hello(const char* name) {
  printf("Hello %s from C!\n", name);
}</code>
Salin selepas log masuk

Sekarang, kod TypeScript yang sepadan (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>
Salin selepas log masuk

Laksanakan dengan:

<code class="language-bash">bun run main.ts</code>
Salin selepas log masuk

Prestasi dan Aplikasi Dunia Nyata

Penanda aras mendedahkan kelajuan yang mengagumkan: kira-kira 6.26ns setiap panggilan (termasuk overhed Bun 2ns).

Kes penggunaan praktikal termasuk:

  • Mengantaramuka dengan API sistem pengendalian (cth. MacOS Keychain, Windows Registry).
  • Mengoptimumkan tugasan intensif pengiraan (cth., pengiraan nombor perdana, pengekodan video).

Pertimbangan Penting

  • Batasan TinyCC: Pelaksanaan semasa menggunakan TinyCC, yang tidak mempunyai keupayaan pengoptimuman GCC atau Clang.
  • Ciri Eksperimen: Keselamatan benang dan sokongan panggil balik tak segerak masih dalam pembangunan.
  • Pengekodan Rentetan: Pengekodan UTF-8 ialah pengekodan lalai.

Panduan Permulaan Pantas

  1. Pasang Bun:
<code class="language-bash">curl -fsSL https://bun.sh/install | bash</code>
Salin selepas log masuk
  1. Mulakan projek anda (penting untuk penyepaduan TypeScript):
<code class="language-bash">bun init -y</code>
Salin selepas log masuk
  1. Tambah fail hello.c dan main.ts daripada contoh di atas.

Untuk tutorial dan kemas kini lanjut, ikuti blog saya!

Bacaan Lanjut: Dokumentasi Bun FFI, Blog Bun.

Atas ialah kandungan terperinci Menyusun C di Bun dengan TypeScript: Cepat, Asli, dan Mudah. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan