NaCl, родной клиент
NaCl - устаревшая технология, теперь замененная WebAssembly. Она не поддерживается браузером Chrome от Google с 2018 года. Эта статья имеет чисто исторический интерес.
Собственный клиентский API-интерфейс Native Client хочет ускорить веб-приложения до такой степени, чтобы дать им скорость 3D-игр, позволяя вращать запрограммированное программное обеспечение на языке C или C++ или другом языке в браузере.
Это позволяет веб-приложениям выполнять компилируемый собственный код. Он защищен так же, как JavaScript. Это может позволить браузеру составить альтернативу интерфейсу Metro в Windows 8.
Родной клиент, сокращенно NaCl, был поддержан в браузере Chrome. Firefox поддерживала его и плагином. Google поощряла разработчиков игр делать версию своей игры для Chrome. Платформа Unity 3D автоматически создает версию для браузера.
Google сама портировала купленное в 2012 году офисное ПО QuickOffice на NaCl, предоставив таким образом альтернативу Office в браузере.

Чтобы сделать код более переносимым, разработчики связали NaCl с компилятором LLVM, производящим промежуточный код, компилируемый, в свою очередь, в машинный код. Эта версия, Portable NaCl, выглядит удобнее во всех отношениях.
Обратите внимание, что NaCl также является формулой хлорида натрия, то есть поваренной соли. Соль в ваших приложениях...
В июне 2015 года Google объявила об участии вместе с другими редакторами браузеров в работающем в браузере проекте bytecode WebAssembly. Этот новый бэкенд сочетает в себе преимущества Asm.js с преимуществами NaCl, с которым можно спрогнозировать, кого Google перестанет поддерживать NaCl в ближайшем будущем.
Создать платформу программирования для собственного клиента
Для разработки на родном клиенте тебе может понадобиться это программное обеспечение (конечному пользователю оно не нужно).
- Местный сервер, как Wamp.
- GNU Make для компиляции примеров или Visual Studio Express под Windows.
- Собственный клиент SDK.
- Python для некоторых сценариев.
LLVM сблизился с «Родным клиентом» со 2 декабря 2011 года. Новая версия платформы разработки C++ упрощает создание приложений под Native Client. Его уже можно было использовать в этих рамках, но в его конструкции этого не было предусмотрено. Всё изменилось.
Этот способ работы может со временем меняться. Загляните в руководство Getty Started за последней версией.
- Загрузите собственный клиент для Windows, Linux или MacOS.
- Создать каталог, например nacl, и отменить архивирование содержимого.
- Читайте руководство Getty started. (Английский ).
- Попробуйте одну из демонстраций командной строки.
- Букмаркер страницы nacl/build/native_client.
nacl - это ваш каталог установки. - Закройте браузеры, поддерживающие собственный клиент .
- Установить плагин командной строки с scon.bat под Windows и scon под Unix.
Для этого запустите scon.bat или scon в/ nacl/build/native_client/ - Запуск локального сервера типа Wamp.
- Проверить с помощью тестовой страницы:
http ://localhost: 5103/scons-out/nacl-x86-32/staging/examples.html
Кто в директории/ nacl/build/native_client/.
Подробные инструкции см. в учебнике C для собственного клиента.
С Chrome 14 у NaCl есть интерфейс между HTML 5 и нативным кодом под названием Pepper (Piment) или, точнее, Pepper Plugin API - новой системой плагинов, которая заменяет нынешнюю систему, изобретенную Netscape. Но эта система является фирменной и является одной из причин, почему NaCl никогда не носил Firefox, кроме того, что Mozilla имеет альтернативу в Asm.js.
На старых версиях Chrome нужно активировать NaCl. Введите about: flags в адресной строке Chrome и перейдите в раздел собственный клиент. Нажмите кнопку enable .
PNaCl, одна компиляция для всех систем
Portable Native Client, где PNaCl произносится как pinnacle и является дополнением к NaCl, которое должно устранить недостаток компилирования приложения для каждой системы. Это набор инструментов, который преобразует приложение NaCl в биткод LLVM. Последний, который содержится в файле .pexe, при выполнении может быть автоматически преобразован в двоичный код.
Можно сразу запустить LLVM виртуальной машиной после реализации в браузере. Это делает PNaCl альтернативой Asm.js.
Компилятор PNaCl встроен в 31-ю версию Chrome. Он преобразует код LLVM на сервере в машинный язык на клиентском компьютере. Поэтому возможно наличие кода C++ или любого другого языка, работающего в браузере, например JavaScript!
Запуск приложений в браузере, еще один простой способ...
Это может быть альтернативой NaCl, если ты хочешь запускать в браузере нативные приложения.
С помощью эмулятора, полностью написанного на JavaScript, можно запускать программы Linux в командной строке с помощью JSLinux.
Например, попробуйте:
tcc -run hello.c
Затем введите ls, чтобы увидеть файлы в каталоге.
Или для правки файла:
emacs hello.c
Было придумано еще одно решение - запустить в Canvas нативное приложение GTK. (Английский). Начиная с версии 3.2, GTK позволяет запускать нативные приложения в браузере, априори на Linux-системе, со специальным бэкендом под названием Broadway. Это не так мобильно.
См. также...
- Asm.js. Какой-то байтекод, производный от JavaScript, работающий на всех браузерах... Альтернатива PNaCl, которая также требует LLVM, но кажется более простой в реализации.