프로젝트 소개
Slint는 임베디드 시스템, 데스크톱, 모바일 플랫폼, 그리고 WebAssembly를 통한 웹을 위한 네이티브 사용자 인터페이스를 구축하기 위한 오픈소스 선언형 GUI 툴킷입니다. UI는 선언형 마크업 언어인 `.slint`로 한 번 작성하고, Rust, C++, JavaScript, Python으로 작성된 비즈니스 로직과 연결합니다.
이름에 담긴 설계 목표: Scalable(반응형 디자인, 크로스 플랫폼, 다중 언어), Lightweight(최소한의 메모리와 처리 요구사항), Intuitive(일관된 API와 디자이너 친화적 도구), Native(머신 코드로 컴파일되고 OS API, CPU/GPU 코어, 주변기기에 접근).
주요 특징:
- 독립적인 UI 디자인: 선언형 언어가 UI를 비즈니스 로직과 분리하므로 디자이너와 개발자가 병렬로 작업할 수 있습니다.
- 도구: 라이브 미리보기, 편집기 통합, LSP 서버, VS Code 확장, 자동 리로드가 있는 slint-viewer 도구, 온라인 SlintPad 편집기, Figma to Slint 플러그인.
- 신중한 발전을 거치는 안정적인 1.x API.
아키텍처: `.slint` 파일은 렉싱, 파싱, 최적화, 코드 생성을 거쳐 미리 컴파일되며, C++, Rust 및 기타 대상용 백엔드와 동적 언어용 인터프리터가 있습니다. 런타임 엔진은 컴포넌트, 요소, 아이템, 속성을 단일 메모리 영역에 배치하여 할당을 줄입니다. 렌더링 백엔드와 스타일은 컴파일 시 구성할 수 있습니다: femtovg(OpenGL ES 2.0), skia, CPU 기반 소프트웨어 렌더러; Qt가 설치되어 있으면 Qt 스타일을 사용할 수 있습니다.
저장소에 문서화된 언어 바인딩에는 C++, Rust, JavaScript/NodeJS(Beta), Python(Beta)이 있으며, 각각 문서와 시작하기 템플릿이 있습니다. 예제와 데모는 임베디드 대상(Raspberry Pi, STM32, RP2040), 데스크톱(Windows, macOS, Linux), 그리고 프린터 데모, 슬라이드 퍼즐, 에너지 모니터, 위젯 갤러리, 날씨 데모 같은 웹 데모를 다룹니다.
라이선스는 독점 데스크톱/모바일/웹 애플리케이션을 위한 로열티 없는 라이선스, 오픈소스 애플리케이션을 위한 GNU GPLv3, 독점 임베디드/데스크톱/모바일/웹 애플리케이션을 위한 상용 라이선스 중에서 선택할 수 있습니다. 이 프로젝트는 SixtyFPS GmbH가 유지 관리하며 코드, 버그 보고, 피드백을 환영합니다.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.