Emscripten

Emscripten是一個基於LLVM的完整編譯器工具鏈到WebAssembly,用於將C和C++代碼編譯為WebAssembly。它由Mozilla的開發人員Alon Zakai開發,項目始於2010年。

Emscripten最初旨在將C/C 編譯為JavaScript,以便在瀏覽器中運行。2011年正式發布後,其編譯目標演進為asm.js,最終成為將C/C++等語言編譯為WebAssembly的工具。

基本介紹

  • 外文名:Emscripten
研發背景,發展歷程,核心技術,運營模式,核心團隊,重要事件,

研發背景

Emscripten項目始於2010年,由Mozilla的開發人員Alon Zakai發起。當時,Alon Zakai在創業失敗後加入Mozilla,希望將自己用C++開發的遊戲運行在瀏覽器中,但又不想手動用JavaScript重寫,因此開始利用業餘時間開發一個能將C/C++代碼編譯為JavaScript的編譯器。
2011年,Emscripten正式發布。該項目利用LLVM將C/C 編譯為位元組碼,再轉換為JavaScript,成功將遊戲運行於瀏覽器。到2011年,Emscripten已經具備編譯像Python以及DOOM等中大型項目的能力,並在JSConfEU會議上首次亮相,取得了一定的影響力。
Emscripten的誕生源於將現有C/C++代碼在Web時代重用的需求,旨在簡化這一過程。它很快發展成客觀標準,甚至成為了後續WebAssembly技術的開發靈感。Mozilla看到了該項目的巨大潛力,邀請Alon Zakai全職負責開發。

發展歷程

2010年,Alon Zakai在結束創業項目後加入Mozilla,並開始利用業餘時間開發一個能將C/C++代碼編譯為JavaScript的編譯器項目,Emscripten由此誕生。
2011年,Emscripten正式發布,並成功將Python、SQLite、DOOM等中大型項目編譯運行在瀏覽器中,證明了其可行性。同年,該項目在JSConfEU會議上首次亮相,獲得了廣泛關注。
Mozilla看到了Emscripten項目的巨大潛力,其CTOBrendan Eich(JavaScript語言的創造者)邀請項目創始人Alon Zakai全職加入Mozilla的Research團隊,負責Emscripten的後續開發。
項目早期的編譯目標是asm.js(一種高性能的JavaScript子集),通過添加類型註解等方式大幅提升了生成代碼的執行速度。隨著WebAssembly標準的出現和發展,Emscripten成為將C/C++等語言編譯為WebAssembly的關鍵工具鏈,並逐步將支持重點轉向WebAssembly。
Emscripten項目持續保持活躍開發與更新。例如,在2026年2月發布了5.0.1版本,項目在GitHub上擁有大量的關注者和貢獻者。

核心技術

Emscripten是一個基於LLVM編譯器基礎設施和Binaryen工具鏈的完整編譯器工具鏈,用於將C、C++以及其他使用LLVM的語言編譯為WebAssembly,其輸出可在Web、Node.js及各類Wasm運行時中運行。
Emscripten使用LLVM將C/C 編譯為WebAssembly。在技術演進上,Emscripten歷史上曾通過其定製的fastcomp LLVM分支先將代碼編譯為asm.js,再通過名為asm2wasm的工具轉換為WebAssembly。現代版本則主要使用LLVM原生的WebAssembly後端直接生成WebAssembly,這是當前默認和推薦的技術路徑。
Emscripten通過一個配置檔案來管理工具鏈路徑、編譯器後端選擇及其他關鍵設定,該檔案通常在安裝或激活Emscripten SDK時自動生成和配置。
除了生成WebAssembly模組,Emscripten通常還會生成一份JavaScript膠水代碼,該代碼提供了Wasm模組運行所需的、對非標準系統接口的實現,確保編譯後的程式能在Web等宿主環境中正確執行。

運營模式

Emscripten是一個開源軟體項目,採用MIT許可證,實踐中也兼容伊利諾伊大學/NCSA開源許可證。項目在GitHub上託管,由社區共同維護,擁有27.2k stars、3.5k forks和887名貢獻者,且更新頻繁。項目擁有活躍的開發者社區,提供詳細的官方文檔。項目發展迅速,已成為將C/C++代碼移植到Web平台的客觀標準,並對WebAssembly標準的誕生產生了直接影響和啟發。

核心團隊

Emscripten項目的創始人和核心開發者是Mozilla的開發人員Alon Zakai。他於2010年加入Mozilla,並利用業餘時間啟動該項目,旨在將C/C++代碼編譯為JavaScript以便在瀏覽器中運行。2011年項目正式發布後,Mozilla看到了其巨大潛力,時任Mozilla CTO的Brendan Eich及Mozilla Research負責人Andreas Gal邀請Alon Zakai全職加入Mozilla Research團隊,專職負責Emscripten的開發。目前,該項目由核心團隊“emscripten-core”及廣大的開源社區貢獻者共同維護。

重要事件

2010年,Alon Zakai在加入Mozilla後開始開發Emscripten,旨在將C/C 代碼編譯為JavaScript。2011年,Emscripten正式發布並在JSConfEU會議上首次公開演示,成功將Python、SQLite乃至遊戲等大型套用編譯到瀏覽器中運行。其成功實踐證明了將低級語言高效編譯到Web的可行性,直接啟發並推動了後續WebAssembly標準的誕生。Emscripten最初以生成asm.js為目標,後成為將C/C++編譯為WebAssembly的官方推薦工具鏈。

相關詞條

熱門詞條

聯絡我們