qt — портирование кода c ++ (нативный клиент) в браузер (веб-приложение)

У меня есть модуль C ++, написанный с использованием Qt-creator SDK. Я хочу портировать этот код для запуска на любой веб-странице без ущерба для исходного кода для конечного пользователя. Пользователь должен иметь возможность видеть выходные данные этого модуля в любом браузере (Chrome, Firefox, Safari, Explorer) без необходимости устанавливать какой-либо дополнительный плагин для браузера. Каковы лучшие варианты для достижения этой цели. Я гуглил и нашел несколько таких вариантов:

  1. Собственный клиент Google (NaCl) — но он работает только в Chrome. Это будущее веб-приложений?
  2. PPAPI — Не уверен, что он такой же, как NaCl
  3. NPAPI — почти депортированный
  4. Emscripten — конвертирует c ++ в js. Таким образом, исходный код виден пользователю.
  5. WebAssembly

Есть ли другие варианты, чтобы достичь того, что я ищу? Если нет, то какой я должен выбрать из вышеупомянутых вариантов !? Спасибо заранее.

2

Решение

Некоторые уточнения:

  1. NaCl не будет поддерживаться другими браузерами, кроме Chrome. Мы (команда Google NaCl / WebAssembly) больше ориентируемся на WebAssembly в будущем.
  2. PPAPI — это набор API, используемых NaCl.
  3. NPAPI: на выходе и требует установки плагинов в любом случае.
  4. Emscripten. Он компилирует C ++ в JS, но я бы не сказал, что он раскрывает ваш исходный код для пользователя. Он был значительно преобразован в процессе обычной компиляции и оптимизации, и я бы сказал, что он ближе к машинному коду, чем к исходному коду. Кроме того, мы добавляем поддержку WebAssembly в emscripten, чтобы с одним и тем же источником вы могли создавать WebAssembly для тех браузеров, которые его поддерживают, и asm.js для тех, которые этого еще не сделали.
  5. WebAssembly — это будущее, которое будет отвечать всем вашим критериям, с той оговоркой, что API и возможности браузера, доступные для wasm, такие же, как и для JavaScript. Так, например, вы не сможете получить неограниченный доступ к файловой системе пользователя. Все 4 основных производителя браузеров внедряют веб-сборку, но сначала она должна появиться в Chrome и Firefox, потому что графики выпуска этих браузеров отсоединены от соответствующих операционных систем.

Мое предложение было бы попробовать портировать ваш код с emscripten. Вы можете начать это сегодня и использовать asm.js, а когда WebAssembly запускается, вы можете нацеливаться на это с минимальными дополнительными усилиями. В будущем появятся другие наборы инструментов и языки, поддерживающие wasm, но сегодня emscripten действительно единственный готовый вариант.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]