본문으로 건너뛰기
0
r/jeffnews HN 약 3분

Swift에서 FFI 없이 C++ 라이브러리 Dear ImGui 래핑하기

open-source

요약

Swift 5.9의 C++ interoperability 기능을 활용해 Dear ImGui를 FFI 없이 Swift에서 직접 래핑하는 과정을 보여주는 글. Clang Importer의 C++ 키워드 문제를 interoperabilityMode 설정 하나로 해결함.

기사 전체 정리

Swift에서 FFI 없이 C++ 라이브러리 Dear ImGui 래핑하기

  • 이전에 Swift로 C 프로젝트(Raylib)를 연동하는 글을 썼는데, C++ 프로젝트 연동도 보여달라는 요청이 많았음
  • 이번엔 Dear ImGui(C++ GUI 라이브러리)를 Swift 프로젝트에 통합해봤음. Raylib은 윈도우 초기화와 텍스트 렌더링, ImGui는 GUI 드로잉 담당
  • 프로젝트 구조는 Raylib 때와 거의 동일함. 정적 빌드된 Dear ImGui와 rlImGui(Raylib-ImGui 브릿지) 헤더를 포함시키고, module.modulemap으로 Clang 모듈과 Swift 사이를 연결해줌
  • 문제는 Swift의 Clang Importer가 C++ 키워드(namespace, class, template 등)를 만나면 패닉을 일으킨다는 것. C는 되는데 C++은 안 되는 이유가 이거였음
  • Swift 5.9부터 interoperabilityMode 빌드 설정으로 C++ 상호운용이 가능해짐. 패키지 설정에서 해당 옵션만 켜주면 컴파일이 정상적으로 됨
  • 결론적으로 C++ 프로젝트인 Dear ImGui 래핑도 Raylib 래핑만큼 간단했음. 차이점은 C++ interoperability 설정 한 줄 추가한 것뿐

원문 링크

핵심 포인트

  • Dear ImGui(C++)를 Swift 프로젝트에 통합하는 데모
  • Clang Importer가 C++ 키워드를 인식 못하는 문제 발생
  • Swift 5.9의 interoperabilityMode 설정으로 C++ 상호운용 활성화
  • C 프로젝트 래핑과 거의 동일한 수준의 간단한 과정

인사이트

Swift의 C++ 상호운용성이 5.9부터 실용적 수준에 도달했으며, 설정 한 줄로 C++ 라이브러리를 네이티브처럼 사용할 수 있다는 점이 인상적

댓글

댓글

댓글을 불러오는 중...

open-source

AI 버그 리포트가 하룻밤 사이에 쓰레기에서 진짜로 바뀌었다 — 리눅스 커널 메인테이너 인터뷰

Greg Kroah-Hartman에 따르면 한 달 전부터 AI가 생성한 보안 리포트의 품질이 갑자기 점프했으며, 모든 오픈소스 프로젝트가 같은 현상을 겪고 있음. Google이 개발한 AI 리뷰 도구 Sashiko가 Linux Foundation 프로젝트로 기증됨.

open-source

Velxio 2.0 — 브라우저에서 Arduino, ESP32, Raspberry Pi 3까지 에뮬레이션하는 오픈소스 프로젝트

19개 보드와 5개 CPU 아키텍처를 브라우저에서 에뮬레이션하는 오픈소스 프로젝트. Arduino C++/Python 코드 작성부터 48개 전자 부품과의 시뮬레이션까지 설치 없이 가능함.

open-source

Dolby가 Snapchat을 AV1 코덱 특허 침해로 고소 — '로열티 프리' 약속이 흔들림

Dolby가 Snap을 상대로 AV1 코덱이 자사 특허 4건을 침해했다고 소송을 제기함. AOMedia가 로열티 프리로 개발한 AV1이 실제로는 HEVC와 동일한 기술을 재사용하고 있어 특허 라이선스 의무에서 자유롭지 않다는 주장이며, 이 소송 결과가 AV1 채택 전반에 큰 영향을 줄 수 있음.

open-source

Microsoft가 공개한 Rust 트레이닝 자료 — 초급부터 전문가까지 7개 코스

Microsoft가 배경 언어별 입문서 3권과 심화/전문가/실무 과정 4권으로 구성된 Rust 트레이닝 자료를 GitHub에 공개했다. 각 권마다 15-16개 챕터, Mermaid 다이어그램, Playground 연습문제를 포함한다.

open-source

RK3588 GPU 안에 숨어있는 Cortex-M7 MCU를 뜯어보고 Rust/gdb/MicroPython까지 올려본 이야기

RK3588의 Mali-G610 GPU 내부에 990MHz로 동작하는 Cortex-M7 MCU가 있으며, 이 펌웨어가 커널 대신 GPU 작업을 관리함. 메모리 접근의 3단 계층 구조, 인터럽트 시스템, 펌웨어 이미지 포맷을 분석하고, 실제로 Rust 정적 라이브러리, gdb 디버깅, MicroPython까지 MCU 위에서 구동하는 과정을 상세히 다룸.