wasm-opt 도구와 JavaScript 빌드(binaryen.js)를 제공하는 WebAssembly용 C++ 컴파일러 및 최적화 라이브러리입니다.
emscripten-core/emscripten
C와 C++ 코드를 WebAssembly로 컴파일해 브라우저, Node.js 및 기타 Wasm 런타임에서 실행할 수 있게 하는 컴파일러 툴체인입니다.
- 스타
- 27,734
- 포크
- 3,572
- 열린 이슈
- 2,527
- 마지막 커밋
- 3시간 전
어떤 프로젝트인가요?
Emscripten은 LLVM과 Binaryen을 사용해 C와 C++를 WebAssembly로 컴파일합니다. 생성된 출력물은 웹, Node.js 및 독립형 Wasm 런타임에서 실행할 수 있습니다. emcc 명령은 gcc나 clang처럼 사용할 수 있으며, WebAssembly 모듈과 JavaScript 로더 또는 샘플 HTML 페이지를 생성합니다.
OpenGL 및 SDL2 같은 이식성 있는 API의 웹 구현을 제공하므로 기존 네이티브 그래픽 애플리케이션을 브라우저로 포팅할 수 있습니다. Unity 게임 엔진과 Google Earth 같은 대규모 프로젝트가 이러한 포팅의 사례로 소개됩니다.
Clang을 통한 C와 C++ 지원에 중점을 두지만, Rust의 wasm32-unknown-emscripten 타깃처럼 다른 LLVM 기반 컴파일러와도 통합할 수 있습니다.
핵심 기능
- 01LLVM과 Binaryen을 통해 C와 C++를 WebAssembly로 컴파일합니다.
- 02브라우저, Node.js, Deno, Bun 및 독립형 Wasm 런타임에서 출력물을 실행합니다.
- 03OpenGL 및 SDL2 API의 웹 구현을 제공합니다.
- 04emcc 명령을 사용해 gcc나 clang의 대체 도구로 사용할 수 있습니다.
- 05로더가 포함된 HTML 페이지 또는 독립 JavaScript 파일을 생성할 수 있습니다.
활용 사례
- 기존 C 또는 C++ 데스크톱 애플리케이션이나 게임을 브라우저에서 실행할 수 있도록 포팅합니다.
- Node.js 프로젝트 안에서 네이티브 C 또는 C++ 라이브러리를 실행합니다.
- 다른 Wasm 런타임에서 사용할 C 코드 기반 WebAssembly 모듈을 빌드합니다.
빠른 시작
- 1
다운로드 페이지에서 Emscripten SDK(emsdk)를 설치합니다
- 2
hello.c를 JavaScript 파일로 컴파일합니다
emcc hello.c -o hello.js - 3
생성된 JavaScript를 Node.js로 실행합니다
node hello.js
사용 전 알아둘 점
- 여기서 설정은 단일 패키지를 설치하는 것이 아니라 다운로드 페이지에서 emsdk 툴체인을 설치하는 것을 의미합니다.
토픽
자주 묻는 질문
- emscripten은(는) 무엇인가요?
- C와 C++ 코드를 WebAssembly로 컴파일해 브라우저, Node.js 및 기타 Wasm 런타임에서 실행할 수 있게 하는 컴파일러 툴체인입니다. Emscripten은 LLVM과 Binaryen을 사용해 C와 C++를 WebAssembly로 컴파일합니다. 생성된 출력물은 웹, Node.js 및 독립형 Wasm 런타임에서 실행할 수 있습니다. emcc 명령은 gcc나 clang처럼 사용할 수 있으며, WebAssembly 모듈과 JavaScript 로더 또는 샘플 HTML 페이지를 생성합니다.
- emscripten은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
- emscripten은(는) Other 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
- emscripten은(는) 아직 유지보수되고 있나요?
- 활발히 유지보수 중. emscripten의 마지막 커밋은 2026년 10월 21일입니다.
- emscripten은(는) 어디에 사용할 수 있나요?
- 기존 C 또는 C++ 데스크톱 애플리케이션이나 게임을 브라우저에서 실행할 수 있도록 포팅합니다. Node.js 프로젝트 안에서 네이티브 C 또는 C++ 라이브러리를 실행합니다. 다른 Wasm 런타임에서 사용할 C 코드 기반 WebAssembly 모듈을 빌드합니다.
- emscripten는 어떻게 설치하나요?
- 다운로드 페이지에서 Emscripten SDK(emsdk)를 설치합니다 hello.c를 JavaScript 파일로 컴파일합니다: emcc hello.c -o hello.js 생성된 JavaScript를 Node.js로 실행합니다: node hello.js
- emscripten은(는) 어디서 받을 수 있나요?
- 소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/emscripten-core/emscripten
요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.
관련 프로젝트
브라우저에서 동영상과 오디오를 녹화·변환·스트리밍할 수 있는 순수 WebAssembly 및 JavaScript 기반 FFmpeg 포트입니다.
LLVM 코어, Clang C/C++ 프런트엔드, libc++ 및 LLD 링커를 포함하는 모듈형 컴파일러·툴체인 기술 모음입니다.
타입이 지정된 TypeScript 부분집합을 WebAssembly 모듈로 컴파일하는 TypeScript 유사 언어이자 컴파일러입니다.
LLVM 기반 Go 컴파일러로, 마이크로컨트롤러, WebAssembly(WASM/WASI), 명령줄 도구를 대상으로 합니다.
Node.js 없이 실행되는 네이티브 실행 파일이나 WebAssembly를 만드는 실험적인 TypeScript·JavaScript 컴파일러입니다.