Emscripten
1. 개요
Emscripten은 C/C++ 코드를 웹Assembly로 변환하는 데 사용되는 컴파일러 도구 모음이다. 언리얼 엔진 3, SQLite, MeshLab, 불릿 물리 엔진, 오토캐드, Qt 애플리케이션 프레임워크 등 다양한 소프트웨어를 웹Assembly로 포팅하는 데 활용되어 왔다. 유니티, Defold, 고도 게임 엔진은 Emscripten을 활용하여 HTML5로 내보내기 옵션을 제공하며, openFrameworks는 네이티브 C++ 애플리케이션을 HTML5로 내보내고, emscripten-qt는 Qt 애플리케이션을 WebAssembly로 컴파일할 수 있도록 한다. 또한, 인터넷 아카이브는 Emscripten으로 컴파일된 DOSBox 에뮬레이터를 통해 브라우저에서 MS-DOS 및 PC 프로그램을 실행할 수 있도록 했다.
| 이름 | Emscripten |
|---|---|
| 종류 | 컴파일러 |
| 개발자 | Alon Zakai |
|---|---|
| 출시일 | 2012년 11월 11일 |
| 최신 안정화 버전 | 3.1.44 |
| 최신 안정화 버전 출시일 | 2023년 7월 25일 |
| 프로그래밍 언어 | C C++ 자바스크립트 |
| 라이선스 | MIT 라이선스 일리노이 대학교/NCSA 오픈 소스 라이선스 |
|---|
| 웹사이트 | Emscripten 공식 웹사이트 |
|---|
-
소스 대 소스 컴파일러 -
스칼라 (프로그래밍 언어)
스칼라는 마틴 오더스키가 설계한 객체 지향 및 함수형 프로그래밍 언어이며, 자바 플랫폼에서 실행되고 자바 코드와 상호 운용이 가능하며, 아파치 스파크 등 다양한 곳에서 활용된다. -
소스 대 소스 컴파일러 -
타입스크립트
타입스크립트는 마이크로소프트에서 개발한 자바스크립트의 상위 집합으로, 정적 타입 지정, 타입 추론 등의 기능을 제공하여 코드의 안정성과 가독성을 높이는 언어이다. -
MIT 라이선스 소프트웨어 -
MS-DOS
MS-DOS는 마이크로소프트가 개발한 개인용 컴퓨터용 디스크 운영 체제로, IBM PC의 표준 운영 체제로 널리 사용되었으며, 단일 작업 환경과 명령줄 인터페이스를 특징으로 한다. -
MIT 라이선스 소프트웨어 -
Zcash
Zcash는 존스 홉킨스 대학교 연구를 기반으로 개발된 익명성 강화 암호화폐로, zk-SNARK 영지식 증명을 통해 거래 당사자의 익명성을 보장하지만, 범죄 악용 우려와 규제 대상 가능성이 존재한다. -
자바스크립트 라이브러리 -
구글 웹 툴킷
구글 웹 툴킷(GWT)은 자바 코드를 자바스크립트로 변환하여 웹 애플리케이션 개발을 지원하는 도구로, 개발자가 자바 언어로 Ajax 애플리케이션을 개발하고 GWT 컴파일러를 통해 최적화된 자바스크립트 파일로 변환할 수 있게 한다. -
자바스크립트 라이브러리 -
AngularJS
AngularJS는 동적 웹 애플리케이션 개발을 용이하게 하기 위해 설계된 오픈 소스 자바스크립트 프레임워크로, MVC 패턴 적용, 의존성 주입, HTML 확장 디렉티브 제공, 양방향 데이터 바인딩 등의 특징을 가지며, 장기 지원은 종료되었지만 웹 개발에 중요한 영향을 미쳤다.
2. 활용 분야
Emscripten은 언리얼 엔진 3, SQLite, MeshLab, 불릿 물리 엔진, 오토캐드, Qt 애플리케이션 프레임워크의 일부 등 다양한 C/C++ 코드 베이스를 웹Assembly로 포팅하는 데 사용되어 왔다.
2.1. 게임 엔진
유니티, Defold, 고도 게임 엔진은 Emscripten을 활용하여 HTML5로 내보내는 옵션을 제공한다. 언리얼 엔진은 이 내보내기 옵션을 가지고 있었지만, 현재는 엔진에서 제거되어 커뮤니티 멤버 플러그인으로 이전되었다.
2.2. 프레임워크 및 툴킷
openFrameworks는 Emscripten을 통해 네이티브 C++ 애플리케이션을 HTML5로 내보낼 수 있게 한다. emscripten-qt는 Qt 애플리케이션 프레임워크로 작성된 애플리케이션을 WebAssembly로 컴파일할 수 있도록 한다.
2.3. 소프트웨어 아카이빙
2014년 12월, 인터넷 아카이브는 MS-DOS 및 PC용으로 보관된 수천 개의 프로그램을 브라우저에서 접근할 수 있도록 Emscripten으로 컴파일된 DOSBox 에뮬레이터를 출시했다.
2.4. 기타 소프트웨어
Emscripten은 언리얼 엔진 3, SQLite, MeshLab, 불릿 물리 엔진, 오토캐드, Qt 애플리케이션 프레임워크 등 다양한 C/C++ 코드 베이스를 웹Assembly로 포팅하는 데 사용되어 왔다.
4. 참고 사항
* asm.js
* 구글 네이티브 클라이언트 (PNaCl)
* Haxe
* WebAssembly