Slint는 Rust, C++, JavaScript, Python 앱에서 네이티브 UI를 만들 수 있는 선언형 GUI 툴킷입니다.
lvgl/lvgl
소형 MCU부터 Linux 기반 MPU까지, 임베디드 기기용 그래픽 인터페이스를 만드는 무료 MIT 라이선스 C UI 라이브러리입니다.
- 스타
- 24,983
- 포크
- 4,406
- 열린 이슈
- 164
- 마지막 커밋
- 그저께
어떤 프로젝트인가요?
LVGL(Light and Versatile Graphics Library)은 외부 의존성 없이 이식성 높은 C로 작성된 UI 라이브러리입니다. 다양한 제조사의 마이크로컨트롤러와 마이크로프로세서를 대상으로 하며, 베어메탈 환경이나 Zephyr, NuttX, RT-Thread 같은 RTOS에서 실행됩니다. 일반적인 UI에는 RAM 약 100 kB와 플래시 메모리 200~300 kB가 필요하며, 최소 구성은 RAM 32 kB에서도 실행할 수 있습니다.
이 라이브러리는 30개가 넘는 기본 위젯, 100개 이상의 속성을 갖춘 스타일 시스템, Flexbox 및 Grid와 유사한 레이아웃 엔진, 데이터 바인딩을 제공합니다. 렌더링 기능은 2D 도형, 그라데이션, 안티앨리어싱, 그림자, 벡터 그래픽, SVG, Lottie 애니메이션, OpenGL을 통한 glTF 3D 모델을 지원합니다. 텍스트는 CJK, 태국어, 힌디어, 아랍어, 페르시아어 문자를 포함해 UTF-8을 지원합니다. SDL, X11, Wayland 시뮬레이터와 일반적인 SPI 및 MIPI 디스플레이, Linux framebuffer 및 DRM/KMS, 여러 GPU용 드라이버가 포함되어 있습니다.
LVGL Pro는 라이브러리 위에 구축된 별도의 상용 지향 툴체인입니다. XML로 작업하고 일반 LVGL C 코드를 내보내는 비주얼 에디터, 브라우저 기반 뷰어, Figma 플러그인, 코드 생성 및 CI 테스트용 CLI를 제공합니다. Community 및 Evaluation 등급은 비상업적 용도로 무료입니다.
핵심 기능
- 01외부 의존성이 없는 이식성 높은 C 라이브러리로, 모든 MCU 또는 MPU에서 사용할 수 있습니다.
- 02100개가 넘는 속성을 갖춘 스타일 시스템과 30개 이상의 기본 위젯을 제공합니다.
- 03반응형 배치를 위한 Flexbox 및 Grid와 유사한 레이아웃 엔진을 제공합니다.
- 042D 렌더링, 벡터 그래픽, SVG, Lottie, glTF 3D 모델을 지원합니다.
- 05SDL/Wayland 시뮬레이터, 일반적인 LCD, 여러 GPU용 드라이버가 기본 제공됩니다.
- 06MIT 라이선스에 따라 상용 제품에서도 사용할 수 있습니다.
활용 사례
- STM32, ESP32 또는 NXP 보드에서 터치스크린 HMI 패널을 제작합니다.
- OLED 또는 전자종이 디스플레이를 사용하는 스마트홈 및 웨어러블 기기의 화면을 만듭니다.
- 하드웨어가 준비되기 전에 PC에서 SDL 시뮬레이터로 기기 UI를 프로토타이핑합니다.
- LVGL Pro에서 UI를 시각적으로 설계하고 C 코드를 내보내 기존 펌웨어 프로젝트에 통합합니다.
빠른 시작
- 1
C 및 XML 예제를 살펴보세요
- 2
lv_conf_template.h를 lv_conf.h로 복사하고 첫 번째 #if 0 블록을 활성화하세요
- 3
프로젝트에 LVGL을 추가하고 lv_init()을 호출한 다음 디스플레이와 입력 장치를 생성하고, 루프에서 lv_timer_handler()를 실행하세요
사용 전 알아둘 점
- 내장 드라이버가 적합하지 않다면 하드웨어에 맞는 디스플레이 flush 콜백과 입력 read 콜백을 직접 작성하거나 설정해야 합니다.
- Pro 툴체인은 비상업적 사용 및 평가 목적으로만 무료입니다.
토픽
자주 묻는 질문
- lvgl은(는) 무엇인가요?
- 소형 MCU부터 Linux 기반 MPU까지, 임베디드 기기용 그래픽 인터페이스를 만드는 무료 MIT 라이선스 C UI 라이브러리입니다. LVGL(Light and Versatile Graphics Library)은 외부 의존성 없이 이식성 높은 C로 작성된 UI 라이브러리입니다. 다양한 제조사의 마이크로컨트롤러와 마이크로프로세서를 대상으로 하며, 베어메탈 환경이나 Zephyr, NuttX, RT-Thread 같은 RTOS에서 실행됩니다. 일반적인 UI에는 RAM 약 100 kB와 플래시 메모리 200~300 kB가 필요하며, 최소 구성은 RAM 32 kB에서도 실행할 수 있습니다.
- lvgl은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
- lvgl은(는) MIT 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
- lvgl은(는) 아직 유지보수되고 있나요?
- 활발히 유지보수 중. lvgl의 마지막 커밋은 2026년 10월 20일입니다.
- lvgl은(는) 어디에 사용할 수 있나요?
- STM32, ESP32 또는 NXP 보드에서 터치스크린 HMI 패널을 제작합니다. OLED 또는 전자종이 디스플레이를 사용하는 스마트홈 및 웨어러블 기기의 화면을 만듭니다. 하드웨어가 준비되기 전에 PC에서 SDL 시뮬레이터로 기기 UI를 프로토타이핑합니다. LVGL Pro에서 UI를 시각적으로 설계하고 C 코드를 내보내 기존 펌웨어 프로젝트에 통합합니다.
- lvgl는 어떻게 설치하나요?
- C 및 XML 예제를 살펴보세요 lv_conf_template.h를 lv_conf.h로 복사하고 첫 번째 #if 0 블록을 활성화하세요 프로젝트에 LVGL을 추가하고 lv_init()을 호출한 다음 디스플레이와 입력 장치를 생성하고, 루프에서 lv_timer_handler()를 실행하세요
- lvgl은(는) 어디서 받을 수 있나요?
- 소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/lvgl/lvgl
요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.
관련 프로젝트
LLVM 기반 Go 컴파일러로, 마이크로컨트롤러, WebAssembly(WASM/WASI), 명령줄 도구를 대상으로 합니다.
소리를 이용해 기기 간에 소량의 데이터를 주고받는 소형 C++ 라이브러리로, Python, JavaScript, 마이크로컨트롤러에서 사용할 수 있습니다.
선언형 DSL을 중심으로 GLFW/SDL2 윈도우 백엔드와 OpenGL/Vulkan 렌더링을 지원하는 크로스 플랫폼 C++17 UI 프레임워크입니다.
Rust 또는 TSX로 앱을 작성하고 플랫폼별 네이티브 위젯으로 렌더링하는 크로스 플랫폼 UI 엔진입니다.
앱 내 주석 편집, 캡처 단축키 설정, CLI 및 DBus 인터페이스를 지원하는 크로스 플랫폼 C++/Qt 스크린샷 도구입니다.