• [^] # Re: Et WASM ?

    Posté par . En réponse au journal Koffi, un paquet simple, complet et rapide de FFI C pour Node.js. Évalué à 1.

    Pour faire tourner du code non-JS dans un navigateur, le WebAssembly semble être la (bonne ?) solution.

    Koffi ne fonctionne pas dans un navigateur mais avec Node.js, qui est un runtime Javascript (basé sur V8) comme l'est la JVM pour Java ou le CLR .Net pour C#.

    L'intérêt du FFI, que ce soit avec Koffi ou autre chose, c'est :

    • L'appel direct à des fonctions du système d'exploitation, par exemple Win32 (ce que WASM ne fournit pas, et c'est d'ailleurs voulu, les navigateurs se devant de fournir un environnement d'exécution limité et contrôlé)
    • Réutiliser des librairies C déjà compilées, sans avoir à tout wrapper (avec N-API, les API V8, ou autre)

    Je prends un exemple complètement au hasard : lister les fenêtres ouvertes sous Windows en utilisant l'API Win32, depuis une application Node.js. Pour ce faire, il faut appeler EnumWindows(), c'est une fonction fournie par user32.dll, et qui utilise l'ABI C.