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
Freigeben: 2025-01-25 10:04:10
Original
636 Leute haben es durchsucht

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>
Nach dem Login kopieren
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>
Nach dem Login kopieren
):

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>
Nach dem Login kopieren
aus

<code class="language-bash">bun run main.ts</code>
Nach dem Login kopieren
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>
Nach dem Login kopieren
Initialisieren Sie Ihr Projekt (entscheidend für die Typenkriptintegration):
<code class="language-bash">bun init -y</code>
Nach dem Login kopieren
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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage