선언형 DSL을 중심으로 GLFW/SDL2 윈도우 백엔드와 OpenGL/Vulkan 렌더링을 지원하는 크로스 플랫폼 C++17 UI 프레임워크입니다.
pg83/solo
완전 정적 musl Linux 바이너리에서 Vulkan ICD 같은 호스트의 glibc 링크 GPU 드라이버를 불러오는 dlfcn 스타일 .so 로더입니다.
- 스타
- 643
- 포크
- 15
- 열린 이슈
- 15
- 마지막 커밋
- 23일 전
어떤 프로젝트인가요?
SoLo는 특정 배포 문제를 해결합니다. 완전 정적으로 musl에 링크된 실행 파일은 일반적으로 호스트에 설치된 GPU 드라이버 공유 객체를 `dlopen()`할 수 없으며, 이런 객체는 대개 glibc를 기준으로 빌드됩니다. SoLo는 x86-64와 aarch64용 자체 ELF 로더를 기반으로 dlfcn 스타일 API를 제공하고, 프로세스의 musl 런타임 위에 glibc ABI 브리지를 구현합니다. 따라서 여전히 단일 정적 실행 파일로, 머신에 이미 설치된 드라이버를 사용할 수 있습니다.
저장소에는 호스트의 수정되지 않은 Vulkan ICD를 불러와 저장소에 포함된 compute shader를 실행하고 결과를 PNG로 기록하는 종단 간 Vulkan 데모가 들어 있습니다. glibc를 별도의 libc로 로드하지 않고, glibc의 import를 musl 위에 구현한 어댑터에 연결합니다. 구현되지 않은 함수는 심볼 이름과 버전 이름을 표시한 뒤 중단하는 스텁입니다. C++ 예외, 네 가지 TLS 모델, 심볼 버전 관리도 경계를 넘어 처리합니다.
이 프로젝트는 Linux 전용이며 한 번만 로드할 수 있습니다. `dlclose`는 성공하지만 이미지는 언로드하지 않습니다. 두 아키텍처에서 설치 수가 가장 많은 Debian 라이브러리 패키지 1000개의 공유 라이브러리를 불러오는 방식으로 CI에서 지원 범위를 테스트합니다.
핵심 기능
- 01완전 정적 musl 바이너리용 dlfcn 스타일 `dlopen`/`dlsym` API를 제공합니다.
- 02x86-64와 aarch64용 자체 ELF 로더를 포함합니다.
- 03glibc ABI import를 프로세스에 이미 있는 musl 런타임에 연결합니다.
- 04컨테이너나 AppImage 없이 호스트의 Vulkan ICD 드라이버를 불러옵니다.
- 05compute shader로 PNG를 생성하는 사전 빌드 Vulkan 데모 바이너리를 제공합니다.
활용 사례
- 호스트의 Vulkan 또는 OpenGL 드라이버가 필요한 단일 정적 Linux 바이너리를 배포할 때
- 정적 musl 애플리케이션에서 GPU 컴퓨팅 또는 그래픽 작업을 실행할 때
- 배포판을 함께 묶지 않고 musl 정적 프로그램에서 glibc로 빌드된 공유 라이브러리를 불러올 때
- 사용자 공간 ELF 로더와 glibc-musl ABI 브리지가 구현된 방식을 살펴볼 때
빠른 시작
- 1
릴리스 페이지에서 미리 빌드된 Vulkan 데모 바이너리를 다운로드합니다
curl -LO https://github.com/pg83/solo/releases/latest/download/vulkan-x86_64 - 2
바이너리에 실행 권한을 부여합니다
chmod +x vulkan-x86_64 - 3
데모를 실행해 호스트의 Vulkan 드라이버를 사용하여 512x512 PNG를 작성합니다
./vulkan-x86_64 hello.png
사용 전 알아둘 점
- x86-64 및 aarch64 아키텍처의 Linux만 지원합니다.
- GPU 데모를 실행하려면 호스트에 Vulkan 드라이버가 설치되어 있어야 합니다.
- glibc에 링크된 호스트 라이브러리를 로드하는 아직은 틈새의 실험적인 접근 방식입니다.
토픽
자주 묻는 질문
- solo은(는) 무엇인가요?
- 완전 정적 musl Linux 바이너리에서 Vulkan ICD 같은 호스트의 glibc 링크 GPU 드라이버를 불러오는 dlfcn 스타일 .so 로더입니다. SoLo는 특정 배포 문제를 해결합니다. 완전 정적으로 musl에 링크된 실행 파일은 일반적으로 호스트에 설치된 GPU 드라이버 공유 객체를 `dlopen()`할 수 없으며, 이런 객체는 대개 glibc를 기준으로 빌드됩니다. SoLo는 x86-64와 aarch64용 자체 ELF 로더를 기반으로 dlfcn 스타일 API를 제공하고, 프로세스의 musl 런타임 위에 glibc ABI 브리지를 구현합니다. 따라서 여전히 단일 정적 실행 파일로, 머신에 이미 설치된 드라이버를 사용할 수 있습니다.
- solo은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
- solo은(는) MIT 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
- solo은(는) 아직 유지보수되고 있나요?
- 활발히 유지보수 중. solo의 마지막 커밋은 2026년 9월 29일입니다.
- solo은(는) 어디에 사용할 수 있나요?
- 호스트의 Vulkan 또는 OpenGL 드라이버가 필요한 단일 정적 Linux 바이너리를 배포할 때 정적 musl 애플리케이션에서 GPU 컴퓨팅 또는 그래픽 작업을 실행할 때 배포판을 함께 묶지 않고 musl 정적 프로그램에서 glibc로 빌드된 공유 라이브러리를 불러올 때 사용자 공간 ELF 로더와 glibc-musl ABI 브리지가 구현된 방식을 살펴볼 때
- solo는 어떻게 설치하나요?
- 릴리스 페이지에서 미리 빌드된 Vulkan 데모 바이너리를 다운로드합니다: curl -LO https://github.com/pg83/solo/releases/latest/download/vulkan-x86_64 바이너리에 실행 권한을 부여합니다: chmod +x vulkan-x86_64 데모를 실행해 호스트의 Vulkan 드라이버를 사용하여 512x512 PNG를 작성합니다: ./vulkan-x86_64 hello.png
- solo은(는) 어디서 받을 수 있나요?
- 소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/pg83/solo
요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.
관련 프로젝트
Vulkan/Metal/WebGPU 렌더러, ECS, 크로스 플랫폼 에디터, 브라우저용 WebGPU 빌드를 갖춘 MIT 라이선스 C++20 게임 엔진입니다.
AI 업스케일링 모델로 저해상도 이미지를 확대하고 화질을 개선하는 무료 오픈소스 데스크톱 앱으로, Linux, macOS, Windows에서 실행됩니다.
라우팅된 전문가를 디스크에서 스트리밍해 일반 하드웨어에서 초대형 MoE 모델을 실행하는 순수 C 추론 엔진입니다.
모바일, 임베디드 및 데스크톱 기기에서 딥러닝 모델을 실행하기 위한 고성능 C++ 신경망 추론 프레임워크입니다.
Android에서 작고 효율적으로 동작하도록 설계된 Android, iOS, Linux, macOS, Windows 및 WebGL2용 실시간 물리 기반 렌더링 엔진입니다.