CPython 바인딩 없이 Python 코드를 실행하고 WebAssembly와 임베딩을 지원하는 Rust 기반 Python 3 인터프리터입니다.
WebAssembly/binaryen
wasm-opt 도구와 JavaScript 빌드(binaryen.js)를 제공하는 WebAssembly용 C++ 컴파일러 및 최적화 라이브러리입니다.
- 스타
- 8,666
- 포크
- 899
- 열린 이슈
- 580
- 마지막 커밋
- 8시간 전
어떤 프로젝트인가요?
Binaryen은 C++로 작성된 WebAssembly용 컴파일러 및 툴체인 인프라 라이브러리입니다. 간단한 C API와 JavaScript 인터페이스를 제공하며, WebAssembly와 유사한 형식의 입력뿐 아니라 일반 제어 흐름 그래프도 처리합니다. 내부 IR은 WebAssembly로 빠르게 컴파일하고 최적화 패스를 병렬로 실행하도록 설계되었습니다.
최적화기에는 코드 크기를 줄이고 실행 속도를 높이는 다양한 패스가 포함되어 있으며, 로컬 레지스터 할당, 데드 코드 제거, 인라이닝, 데이터 세그먼트 패킹 등 WebAssembly에 특화된 변환에 중점을 둡니다. 주요 도구인 wasm-opt는 wasm 파일에 이러한 패스를 적용합니다. 관련 도구로는 wasm 조립 및 역어셈블, wasm2js를 통한 wasm의 JavaScript 변환, 모듈 병합, 테스트 사례 축소, wasm 인터프리터가 있습니다.
Emscripten, wasm-pack, Kotlin/Wasm, Dart의 Flutter 웹 빌드 등 여러 툴체인이 Binaryen을 구성 요소로 사용하며, AssemblyScript와 Grain은 라이브러리로 사용합니다.
핵심 기능
- 01코드 크기를 줄이고 실행 속도를 높이는 WebAssembly 특화 패스를 다수 포함한 최적화기
- 02wasm 파일을 최적화하고 변환하는 명령줄 도구 wasm-opt
- 03WebAssembly를 ES6 JavaScript 모듈로 변환하는 컴파일러 wasm2js
- 04코드에서 모듈을 만들고 최적화할 수 있는 간단한 C API와 binaryen.js
- 05wasm 파일을 번들링하고 정리하거나 축소하는 wasm-merge, wasm-metadce, wasm-reduce 유틸리티
활용 사례
- C, C++, Rust 또는 Kotlin 툴체인에서 생성한 WebAssembly 결과물의 크기를 줄이고 실행 속도를 높이기
- 네이티브 wasm을 지원하지 않는 환경에서 사용할 수 있도록 WebAssembly를 JavaScript로 컴파일하기
- 배포 전에 여러 wasm 모듈을 하나의 파일로 병합하기
- JavaScript 또는 C에서 프로그래밍 방식으로 WebAssembly 모듈 만들기
사용 전 알아둘 점
- 기본 텍스트 출력이 항상 유효한 WebAssembly 텍스트 형식인 것은 아닙니다. 유효한 텍스트를 출력하려면 --generate-stack-ir --print-stack-ir를 사용하세요.
토픽
자주 묻는 질문
- binaryen은(는) 무엇인가요?
- wasm-opt 도구와 JavaScript 빌드(binaryen.js)를 제공하는 WebAssembly용 C++ 컴파일러 및 최적화 라이브러리입니다. Binaryen은 C++로 작성된 WebAssembly용 컴파일러 및 툴체인 인프라 라이브러리입니다. 간단한 C API와 JavaScript 인터페이스를 제공하며, WebAssembly와 유사한 형식의 입력뿐 아니라 일반 제어 흐름 그래프도 처리합니다. 내부 IR은 WebAssembly로 빠르게 컴파일하고 최적화 패스를 병렬로 실행하도록 설계되었습니다.
- binaryen은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
- binaryen은(는) Apache-2.0 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
- binaryen은(는) 아직 유지보수되고 있나요?
- 활발히 유지보수 중. binaryen의 마지막 커밋은 2026년 10월 21일입니다.
- binaryen은(는) 어디에 사용할 수 있나요?
- C, C++, Rust 또는 Kotlin 툴체인에서 생성한 WebAssembly 결과물의 크기를 줄이고 실행 속도를 높이기 네이티브 wasm을 지원하지 않는 환경에서 사용할 수 있도록 WebAssembly를 JavaScript로 컴파일하기 배포 전에 여러 wasm 모듈을 하나의 파일로 병합하기 JavaScript 또는 C에서 프로그래밍 방식으로 WebAssembly 모듈 만들기
- binaryen은(는) 어디서 받을 수 있나요?
- 소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/WebAssembly/binaryen
요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.
관련 프로젝트
RPG, 플랫폼 게임, 브레이크아웃 클론 등 타일 기반 게임의 맵을 제작하는 범용 타일 맵 에디터입니다.
Node.js 없이 실행되는 네이티브 실행 파일이나 WebAssembly를 만드는 실험적인 TypeScript·JavaScript 컴파일러입니다.
타입 검사와 emit을 위한 TypeScript 7 컴파일러 및 언어 서버의 Rust 포팅 버전으로, 기존 제품을 그대로 대체해 사용할 수 있습니다.
이미지에서 텍스트를 추출하는 오픈 소스 OCR 엔진(libtesseract) 및 명령줄 도구로, LSTM 기반 인식과 100개 이상의 언어를 지원합니다.
물리, 애니메이션, 타일맵, 대화 기능을 내장한 D 언어용 간편한 2D 게임 엔진입니다.