scrap
웹어셈블리를 활용한 유망한 프로그래밍 언어 프로젝트 10가지 - 20210604
단돈백이원
2022. 5. 11. 08:51
웹어셈블리를 활용한 유망한 프로그래밍 언어 프로젝트 10가지 - 20210604
- 웹어셈블리를 활용한 프로젝트가 아니고 활용할 수 있도록 하는 언어 프로젝트 10가지다
- emscript 같이 c,c++을 wasm으로 컴파일해주는 컴파일러 프로젝트
- 바이너리엔(Binaryen) - C/C++
- 바이너리엔은 웹어셈블리를 위한 컴파일러 툴체인 인프라 라이브러리다.
- 병렬 코드 생성과 최적화를 위해 모든 CPU 코어를 활용한다.
- 블레이저 웹어셈블리(Blazor WebAssembly) - C#
- 닷넷을 사용해 인터랙티브한 클라이언트 측 단일 페이지 웹을 구축 ... 호스팅하기 위한 프레임워크다.
- 블레이저 웹어셈블리 앱이 브라우저에서 실행되면 C# 코드 파일과 레이저(Razor) 파일이 닷넷 어셈블리로 컴파일되고, 이 어셈블리가 닷넷 런타임과 함께 브라우저로 다운로드된다.
- 치어프(Cheerp) - C/C++
- 오픈소스 또는 유료 라이센스
- 웹을 위한 엔터프라이즈급 C/C++ 컴파일러로, C와 C++(C++ 17까지)를 웹어셈블리, 자바스크립트 또는 이 둘의 조합으로 컴파일한다.
- LLVM/클랭(Clang) 인프라에 통합되며 맞춤형 최적화는 성능을 개선
- 치어프J(CheerpJ) - Java
- 치어프와 같음.
- Java용.
- “웹용 자바 컴파일러”를 표방하는 LLVM 기반 컴파일러로, 자바 클라이언트 애플리케이션을 웹어셈블리, 자바스크립트, HTML로 변환해 자바 클라이언트 애플리케이션이 현대 브라우저에서 실행되도록 한다.
- 엠스크립튼(Emscripten) - C/C++ 외 그래픽 관련명령
- 오픈소스 컴파일러 툴체인이며 C와 C++ 또는 LLVM 컴파일러 기술을 사용하는 기타 언어를 웹어셈블리로 컴파일해서 웹, Node.js 또는 Wasmer와 같은 Wasm 런타임에 배포할 수 있게 해준다.
- 언리얼 엔진(Unreal Engine) 4 게임 엔진 및 유니티(Unity) 3D 플랫폼과 같은 상용 코드베이스를 포함한 다양한 코드베이스를 웹어셈블리로 변환하는 데 사용됐다. C 및 C++ 표준 라이브러리, C++ 예외, 오픈GL/웹GL 그래픽 명령을 지원한다.
- 포리스트(Forest) - 함수형언어
- 웹어셈블리로 컴파일되는 함수형 프로그래밍 언어다.
- 존스톤은 복잡한 게임을 빌드할 수 있을 만큼 포리스트의 속도를 높여 일반적인 웹 앱은 “엄청나게 빠르게” 실행되도록 하는 데 목표를 두고 있다.
- 개발중, 하스켈의 영향을 받았다고 하는걸 보니 접근하긴 힘들듯.
- 그레인(Grain) - 함수형언어
- 학계 및 함수형 언어의 특징을 21세기에 맞게 구현한다.
- 개발자가 소스에서 그레인을 빌드하려면 Node.js와 얀(Yarn)이 필요하다.
- 개발중
- J웹어셈블리(JWebAssembly) - Java/Kotlin 등 ( 클래스 파일 - 바이트코드 )
- 웹어셈블리에 대한 자바 바이트코드로, 자바 클래스 파일을 입력으로 받아 웹어셈블리 바이너리 형식(.wasm 파일) 또는 텍스트 형식(.wat 파일)을 출력으로 생성한다.
- 개발중, 아이-넷 소프트웨어는 올해 J웹어셈블리 1.0을 출하한다는 계획이다.
- 파이오다이드(Pyodide) - 파이썬
- 최근 모질라에서 나와 독립 프로젝트로 출범한 파이오다이드 프로젝트는 파이썬 및 파이썬 과학 스택을 웹어셈블리로 컴파일에서 파이썬 3.8 런타임, 넘파이(NumPy), 사이파이(SciPy), 매트플롯라이브러리(Matplotlib), 사이킷-런(Scikit-learn)과 기타 십여 가지의 패키지를 브라우저에 제공한다.
- 브라우저의 REPL에서 파이오다이드를 사용해볼 수 있다.
- 브라우저에서의 데이터 과학 작업을 위해 시작됐다.
- 티VM(TeaVM) - Java/Kotlin 등 ( 클래스파일 - 바이트코드 )
- 자바 바이트코드를 위한 AOT 컴파일러인 티VM은 브라우저에서 실행되는 웹어셈블리와 자바스크립트를 출력한다. 단, 웹어셈블리 지원은 현재 실험 단계다.
- 티VM은 기본적으로 웹 개발 툴이다. 즉, 자바 또는 코틀린으로 된 대규모 코드베이스를 가져와 자바스크립트를 생성하는 용도로 설계된 것이 아니다.
- 티VM 하위 프로젝트인 플레이버(Flavour)는 단일 페이지 웹 애플리케이션을 작성하기 위한 프레임워크 역할을 한다.