C'è un modo per utilizzare C ++ in estensione Chrome?
-
13-09-2019 - |
Domanda
E 'possibile utilizzare C ++ binario in estensione Chrome?
Soluzione
Sì, come con altri browser, è possibile scrivere un plugin NPAPI che comunicare con il proprio interno.
Si veda la relativa pagina di Google a code.google.com
E una descrizione più generica a wikipedia
Altri suggerimenti
NPAPI è stata sconsigliata da Chrome / Opera per problemi di sicurezza.
È comunque possibile utilizzare NPAPI se si prendono di mira firefox, ma se Firefox segue la tendenza si potrebbe disabilitare ad un certo punto pure.
Le opzioni migliori che hai oggi sono
Usa NaCl se si prendono di mira solo Chrome
È possibile utilizzare invece NativeClient (AKA NaCl, AKA PPAPI - Pepper Plugin API)
Tutto il codice corse dentro NaCl funzionalità di modo che è sicuro come un'estensioni JavaScript.
Utilizzo asm.js se come obiettivo tutte le piattaforme
Emscripten è possibile compilare il codice C / C ++ in altamente ottimizzato javascript formato chiamato asm.js. E 'progettato per avere prestazioni quasi native e in questo momento ha supporto decente dal browser del grado-A eccezione di Safari . Anche se le prestazioni è meglio in Firefox che Chrome al momento.
I principali produttori di browser stanno anche lavorando su un nuovo standard chiamato WebAssembly che è parzialmente ispirato asm.js, ma non è pronto per l'uso come primo di questo articolo
Aggiornamento 2018-05-14
Native Client viene deprecato e asm.js sta per essere sostituita da WebAssembly che sta diventando il nuovo standard per la compilazione codice C ++ per il web.
Come detto in alto, è possibile utilizzare NaCl per Chrome e asm.js con Emscripten per tutte le piattaforme, ma è il reverse engineering è più semplice, di binario. Ora c'è una soluzione intermedia: webassembly - bytecode LLVM immerso nelle browser è supportato dalla maggior parte dei browser moderni https: // caniuse .com / # prodezza = wasm . Così Emscripten può compilare C ++ per wasm, per lo più è più veloce di asm.js.