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
713 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:

bun init -y  # Skips interactive prompts
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:

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

Sekarang, kod TypeScript yang sepadan (main.ts):

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!"
Salin selepas log masuk

Laksanakan dengan:

bun run main.ts
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:
curl -fsSL https://bun.sh/install | bash
Salin selepas log masuk
  1. Mulakan projek anda (penting untuk penyepaduan TypeScript):
bun init -y
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!

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