Si tratta di un progetto libero e aperto rilasciato sotto MIT license e basato su template e macro realizzate ispirandosi al lavoro già eseguito per l’implementazione di embind, una soluzione concepita per il binding di funzioni e classi C++ in JavaScript con lo scopo di generare codice compilato utilizzabile tramite applicazioni basate su quest’ultimo. embind funziona inoltre in modo bidirezionale, supportando la chiamata di classi JavaScript da C++.
Per poter lavorare con nbind è necessario utilizzare il dependency management tool autogypi, esso si occupa infatti di inizializzare la configurazione di un progetto basato su node-gyp e dell’inclusione delle directory per l’impiego degli header di nbind; node-gyp viene così impostato per la compilazione della libreria C++ selezionata senza dover ricorrere a configurazioni manuali, lo sviluppatore non dovrà fare altro che indicare i nome dei file da compilare.
nbind permette di utilizzare API C++ da JavaScript, NodeJS, Electron nonché browser Web come Chrome, Firefox ed Edge con asmJS, non presenta bug di compatibilità con i sistemi operativi maggiormente utilizzati e, soprattutto, non richiede di apportare alcuna modifica al codice C++. Partendo da un sorgente C++ si può concretizzare il binding elencando classi e metodi coinvolti, fatto questo basta indicare i pacchetti da gestire in un file JSON, procedere con l’installazione via NPM e compilare. La libreria diviene così accessibile da JavaScript.
I requisiti minimi prevedono la disponibilità di NodeJS (versioni tra la 0.10.x e la 6.x.x) e Python 2.7 (non la release 3.x). E’ poi necessario un compilatore C++ esperto tra GCC 4.8, Clang 3.6, Emscripten 1.35.0 (o rilasci successivi) e Visual Studio 2015 (compresa la modello Community).
Via charto