LLGo - C와 Python 라이브러리를 활용하는 LLVM 기반 Go 컴파일러
2 hours ago
1
- Go로 코드를 작성하면서 C와 Python 생태계의 라이브러리를 함께 사용할 수 있도록 만든 컴파일러
- Go 소스를 LLVM으로 컴파일하며, C 라이브러리와는 C ABI 공통 호출 규약으로 연결
- C 함수를 직접 호출해 일반 Go의 cgo에서 발생하는 스택과 스케줄러 전환 비용을 피함
- NumPy, pandas, PyTorch 같은 Python 라이브러리도 Go에서 호출 가능
- llpyg로 Python 라이브러리의 Go 바인딩을 생성하며, 해당 Python 패키지는 별도 설치 필요
- SQLite, OpenSSL, raylib 등의 바인딩과 데이터베이스 접근, 게임 제작 예제 제공
- Go와는 소스 코드 수준의 호환성을 제공하지만 런타임은 다름
- 네이티브 고루틴은 OS 스레드와 1:1로 대응하며, 기본 가비지 컬렉터로 BDWGC 사용
- C/C++ 라이브러리 바인딩은 현재 수작업으로 관리하며, 자동 생성은 향후 계획
- Linux와 macOS의 amd64/arm64 환경을 지원하고, WebAssembly와 일부 임베디드 보드용 빌드도 제공
- LLVM 19 등 의존성을 설치한 뒤 install.sh로 설치하며, llgo run 등 Go 명령과 비슷한 방식으로 사용
- Apache-2.0 라이선스
-
Homepage
-
Tech blog
- LLGo - C와 Python 라이브러리를 활용하는 LLVM 기반 Go 컴파일러