Maison > développement back-end > C++ > Compilation de C en Bun avec TypeScript : rapide, natif et simple

Compilation de C en Bun avec TypeScript : rapide, natif et simple

Barbara Streisand
Libérer: 2025-01-25 10:04:10
original
713 Les gens l'ont consulté

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

Tirer parti de FFI de BUN pour la compilation C-Fast Cast dans les projets TypeScript. Je pensais initialement que l'intégration du code C avec TypeScript serait une entreprise complexe, mais l'interface de fonction étrangère de BUN (FFI) simplifie remarquablement le processus. Voici comment réaliser les performances C natives directement dans votre code de type.

Configuration initiale: prévenir les erreurs de typeScript

Commencez par initialiser un nouveau projet avec BUN, assurant une bonne configuration de typeScript:

bun init -y  # Skips interactive prompts
Copier après la connexion

Pourquoi compiler C dans TypeScript?

Cette approche vous permet d'exploiter la vitesse brute de C dans un environnement JavaScript. BUN V1.2's bun:ffi permet la compilation Cage C directe dans TypeScript, éliminant le besoin de WebAssembly ou node-gyp - résultant en une vitesse d'exécution native.

un simple "bonjour, monde!" Exemple

Créons une fonction C de base:

// hello.c
#include <stdio.h>
void hello(const char* name) {
  printf("Hello %s from C!\n", name);
}
Copier après la connexion

Maintenant, le code TypeScript correspondant (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!"
Copier après la connexion

exécuter avec:

bun run main.ts
Copier après la connexion

Performances et applications du monde réel

Benchmarking révèle une vitesse impressionnante: environ 6,26 ns par appel (y compris un calefrème de chignon 2ns).

Les cas d'utilisation pratiques comprennent:

  • Interfaçage avec les API du système d'exploitation (par exemple, clés macOS, registre Windows).
  • Optimisation des tâches intensives en calcul (par exemple, calculs de nombres premiers, codage vidéo).

Considérations importantes

  • Limitations TINYCC: L'implémentation actuelle utilise TINYCC, qui n'a pas les capacités d'optimisation de GCC ou Clang.
  • Caractéristiques expérimentales: La sécurité du thread et le support de rappel asynchrone sont toujours en cours de développement.
  • Encodage de chaîne: Le codage UTF-8 est la valeur par défaut.

Guide de démarrage rapide

  1. Installer Bun:
curl -fsSL https://bun.sh/install | bash
Copier après la connexion
  1. Initialiser votre projet (crucial pour l'intégration de typeScript):
bun init -y
Copier après la connexion
  1. Ajoutez les fichiers hello.c et main.ts des exemples ci-dessus.

Pour d'autres tutoriels et mises à jour, suivez mon blog!

Lire plus approfondie: Documentation FFI BUN, blog Bun.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal