Heim >Backend-Entwicklung >C++ >C in Bun mit TypeScript kompilieren: Schnell, nativ und einfach

C in Bun mit TypeScript kompilieren: Schnell, nativ und einfach

Barbara Streisand
Barbara StreisandOriginal
2025-01-25 10:04:10640Durchsuche

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

Nutzung von Bun's FFI für die Blazing-schnelle C-Kompilierung innerhalb von TypeScript-Projekten. Ich war zunächst der Ansicht, dass die Integration von C -Code in TypeScript ein komplexes Unternehmen wäre, aber die Fremdfunction Interface (FFI) von Bun vereinfacht den Prozess bemerkenswert. Hier erfahren

Erstes Einrichten: Verhindern von Typscript -Fehlern

Beginnen Sie mit der Initialisierung eines neuen Projekts mit Bun und stellen Sie sicher

<code class="language-bash">bun init -y  # Skips interactive prompts</code>
Warum C in TypeScript kompilieren?

Mit diesem Ansatz können Sie die rohe Geschwindigkeit von C in einer JavaScript -Umgebung nutzen. Bun v1.2s

ermöglicht die direkte C -Kompilierung in TypeScript, wodurch die Notwendigkeit einer WebAssembly oder

entfällt, was zu einer nativen Ausführungsgeschwindigkeit führt. bun:ffi node-gyp

Ein einfaches "Hallo, Welt!" Beispiel

Erstellen wir eine grundlegende C -Funktion:

Nun der entsprechende TypeScript -Code (
<code class="language-c">// hello.c
#include <stdio.h>
void hello(const char* name) {
  printf("Hello %s from C!\n", name);
}</code>
):

main.ts

Führen Sie mit:
<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>
aus

<code class="language-bash">bun run main.ts</code>
Leistung und reale Anwendungen

Benchmarking zeigt eine beeindruckende Geschwindigkeit: ungefähr 6,26 Ns pro Anruf (einschließlich eines 2NS -Brötchen -Overhead).

Praktische Anwendungsfälle umfassen:

Vernetzung mit Betriebssystem -APIs (z. B. MacOS Keychain, Windows Registry).
  • rechnerisch intensive Aufgaben optimieren (z. B. Primzahlberechnungen, Videocodierung).
Wichtige Überlegungen

    Tinycc -Einschränkungen:
  • Die aktuelle Implementierung verwendet Tinycc, dem die Optimierungsfunktionen von GCC oder Clang fehlen.
  • Experimentelle Merkmale:
  • Fadensicherheit und asynchroner Rückrufunterstützung sind noch in der Entwicklung.
  • String-Codierung:
  • UTF-8-Codierung ist die Standardeinstellung.
Schnellstarthandbuch

Brötchen installieren:
<code class="language-bash">curl -fsSL https://bun.sh/install | bash</code>
Initialisieren Sie Ihr Projekt (entscheidend für die Typenkriptintegration):
<code class="language-bash">bun init -y</code>
Fügen Sie die Dateien
    und
  1. aus den obigen Beispielen hinzu. hello.c main.ts
  2. Folgen Sie meinem Blog für weitere Tutorials und Updates!

Weitere Lesen:

Bun ffi Dokumentation, Bun Blog.

Das obige ist der detaillierte Inhalt vonC in Bun mit TypeScript kompilieren: Schnell, nativ und einfach. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn