
Native Shell(NSH)은 Rust와 TSX로 앱을 만들고, iOS·Android·데스크톱·웹에서 각 플랫폼의 UI로 렌더링하는 런타임이다. 기존 앱에 삽입하거나 독립 앱으로 패키징할 수 있으며, TSX 화면을 서명된 패키지로 실행 중에 전달하는 기능도 제공한다.
앱은 Rust, TSX 또는 두 언어를 함께 사용해 작성할 수 있다. TSX 화면은 Rust 컴포넌트와 모듈을 가져올 수 있고, 실행 중 업데이트를 적용할 때 상태를 유지한다. 호스트 앱은 전달된 TSX 모듈을 플러그인처럼 불러오며, 실행 권한을 호스트가 설정하는 샌드박스에서 실행한다. AI가 생성하는 화면을 위해 TSX와 Tailwind, 생성된 TypeScript 선언, 모델이 읽을 수 있는 문서도 지원한다.
플랫폼별 렌더링과 삽입 방식은 다음과 같다.
| 플랫폼 | 렌더링 | 삽입 방식 | 요구 조건 |
|---|---|---|---|
| iOS | UIKit, CoreText | NshAppView (Swift, NativeShell.xcframework) | iOS 15+ |
| Android | Android views, StaticLayout | NshView (Java / Kotlin, nsh.aar) | Android 9 (API 28)+ |
| macOS | AppKit, Core Animation, CoreText | AppView (Rust, nsh-platform-macos) | macOS 14+ |
| Windows | Win32, Direct2D, DirectWrite | AppView (Rust, nsh-platform-windows) | Windows 10 1809+ |
| Linux | GTK 4, Pango | AppView (Rust, nsh-platform-linux) | GTK 4.14+ |
| GPUI (macOS, Windows, Linux) | GPUI (GPUI Fast) | AppView (Rust, a GPUI view, nsh-platform-gpui) | macOS, Windows; Linux with Vulkan |
| Web | HTML, CSS | createPlayer (JavaScript) 또는 iframe | 최신 브라우저 |
GPUI 백엔드는 세 데스크톱 플랫폼에서 GPUI로 앱을 그리며 GPUI 및 GPUI Kit 앱에 삽입할 수 있다. 웹 플랫폼은 앱을 정적 사이트로 배포하고 웹 데모를 실행한다.
설치와 실행
nsh 명령은 다음 방법으로 설치할 수 있다. 다른 설치 방법은 설치 문서에서 확인할 수 있다.
curl -fsSL https://nsh.dev/install.sh | sh
brew install longbridge/tap/nsh
irm https://nsh.dev/install.ps1 | iex
앱은 Rust 또는 TSX 템플릿으로 시작할 수 있다. Rust 템플릿에는 src/lib.rs를 루트 컴포넌트로 하는 Cargo 프로젝트가 포함된다. TSX 템플릿에는 App.tsx, nsh.json, tsconfig.json이 들어가며, 편집기용 TypeScript 선언은 .nsh/types에 생성된다. Rust 프로젝트에는 Rust 설치 도구 체인이 필요하고, TSX 프로젝트에는 nsh만 필요하다. 두 방식을 섞어 쓸 수도 있다.
nsh init my-app --rust
nsh init my-app
실행 대상은 --target으로 지정한다. iOS 시뮬레이터에는 Xcode가, Android 에뮬레이터나 기기에는 Android SDK가 필요하다. 플랫폼별 도구 요구 사항은 설치 안내에 나와 있다.
nsh run my-app --target ios # iOS simulator; requires Xcode
nsh run my-app --target catalyst # Mac Catalyst window on macOS
nsh run my-app --target android # emulator or device; requires the Android SDK
nsh run my-app --target macos # AppKit window
nsh run my-app --target windows # Win32 window
nsh run my-app --target linux # GTK 4 window
nsh run my-app --target gpui
nsh run my-app --target web # open in the browser
문서와 가이드, 라이브 데모는 nsh.dev에서 볼 수 있다. 저장소에는 UI 요소를 둘러보는 갤러리, 최소 앱인 카운터, 대시보드, 데스크톱 앱, 기존 iOS·Android 앱에 삽입하는 예제 등이 있다. NSH는 Apache License 2.0으로 배포된다.
댓글 (0)
로그인하면 이 기사에 내 생각을 남길 수 있어요