gnh1201/welsonjs
WelsonJS - Build apps with the Windows built-in JavaScript engine
WelsonJS란 무엇인가요?
WelsonJS는 Windows 전용 JavaScript 프레임워크로, 내장된 Windows Script Host (cscript/wscript) 엔진에서 실행되는 언어(JavaScript, TypeScript, CoffeeScript 등)를 사용하여 콘솔형 및 GUI형 데스크톱 앱을 개발할 수 있게 해줍니다. 외부 런타임(예: Node.js)을 설치하지 않고도, TypeScript, CoffeeScript, ReScript, LiveScript 등의 트랜스파일러와 풍부한 라이브러리 팩을 제공하여 개발, 패키징, 실행이 가능합니다.
핵심 아이디어
| 아이디어 | 의미 |
|---|---|
| 네이티브 Windows ECMAScript 엔진에서 실행 | Windows에 기본 제공되는 JavaScript 엔진에서 코드를 실행하므로 추가 런타임이 필요하지 않습니다. |
| 자체 포함 앱 | 앱은 zip 파일이나 실행 가능한 .js 파일 형태로 배포 가능하며, WelsonJS 런처가 실행합니다. 네이티브 Windows 프로그램과 유사합니다. |
| 레거시 친화적 | Windows XP SP3 이상에서 작동하므로, 현대적 런타임이 사용 불가능한 오래된 기업 환경에서 유용합니다. |
| 내장 UI 지원 | HTA(HTML Application) 래퍼를 사용해 HTML/CSS/JS와 Windows UI를 결합한 GUI 앱을 작성할 수 있습니다. |
| 풍부한 라이브러리 팩 | jQuery, Monaco 에디터, React, 다양한 폴리필(core-js, json2, yaml), CSS 프레임워크, Windows 서비스, 화면 캡처, 가상 마우스/키보드, ESENT 데이터베이스 접근용 네이티브 모듈을 포함합니다. |
| AI 애드온 | ChatGPT, Google Gemini, Azure AI 서비스 등 LLM API에 대한 선택적 연결이 런처에 미리 통합되어 있습니다. |
| 패키징 및 배포 | 인스턴스 관리를 담당하는 런처, PowerShell 부트스트랩 스크립트, Inno Setup 템플릿, zip 기반 배포 모델을 제공합니다. |
일반적인 사용 사례
- 레거시 PC에서의 자동화 – Node.js 설치가 불가능한 환경에서 Office, 파일 시스템, Windows 서비스와 상호작용하는 스크립트 실행.
- 임베디드 또는 리소스 제한 환경 도구 – 추가 바이너리 없이 가벼운 실행이 가능하며, 산업용 컨트롤러나 토스 클라이언트 기기 등에 적합합니다.
- 보안이 중요한 환경 – 스크립트 실행을 격리하고 네트워크 접근 없이도 작동 가능하며, 필요 시 선택적 AI 서비스도 제공합니다.
- Office 중심 앱 – Excel, Word, Outlook 등을 익숙한 JavaScript 구문으로 자동화할 수 있습니다.
- Windows GUI 프로토타이핑 – HTML/CSS로 HTA 기반 윈도우를 구축하고 단일 패키지로 배포할 수 있습니다.
빠른 시작 (README에서)
- 모듈 생성 –
lib/sayhello.jsfunction say() { console.log("hello"); } exports.say = say; - 엔트리 스크립트 생성 –
sayhello.jsvar SayHello = require("lib/sayhello"); function main() { console.log("calling say()"); SayHello.say(); console.log("ended say()"); } exports.main = main; - 콘솔에서 실행
출력:cscript app.js sayhellocalling say() hello ended say()
앱 배포 방법
- Zip + 런처 – 소스 파일을 아카이브하고, WelsonJS 런처와 함께 zip 파일로 배포.
- Inno Setup 설치 프로그램 – 미리 준비된
setup.iss스크립트 제공. - PowerShell 부트스트랩 –
irm https://catswords.blob.core.windows.net/welsonjs/bootstrap.ps1 | iex로 런타임을 다운로드하고 코드를 실행. - 단순 복사 – 폴더를 타겟 머신에 복사하기만 하면 됩니다.
주목할 만한 통합 기능
- LLM 서비스 – ChatGPT, Google Gemini, Azure AI Services는 WelsonJS 스크립트 내에서 호출 가능.
- Windows 전용 네이티브 모듈 (
WelsonJS.ManagedObject) – 서비스 제어, 윈도우 처리, 비트맵 조작, 가상 입력, 공유 메모리 IPC. - 데이터베이스 – 내장된 ESENT(확장 가능한 스토리지 엔진) 데이터베이스용 래퍼.
- 개발자 도구 – Chrome DevTools Protocol, ADB 지원, gRPC/JSON-RPC 클라이언트, 다양한 HTTP 유틸리티(cURL, BITS, certutil).
- 기타 API – AviationStack, SerpApi 항공 데이터, VMware OVFTool, SEO/SERP 도구.
다운로드 위치
- 런처 다운로드 –
https://catswords.blob.core.windows.net/welsonjs/welsonjs_launcher_latest.zip - PowerShell 부트스트랩 –
irm https://catswords.blob.core.windows.net/welsonjs/bootstrap.ps1 | iex - 커뮤니티 – README에서 Discord, Teams, ActivityPub, XMPP 및 공개 Discord 서버 링크 제공.
개발자 정보
이 프로젝트는 gnh1201 (Catswords)가 유지보수하며 GitHub Sponsors, Liberapay, Buy-Me-A-Coffee를 통해 후원받고 있습니다. SerpApi, Microsoft ISV 프로그램, Tenstorrent 등 여러 기업 협력자가 있으며, 여러 뉴스레터 및 기술 블로그에서 소개되었습니다.
결론
WelsonJS는 Windows에 기본 제공되는 JavaScript 엔진만을 사용하여 Windows 데스크톱 앱을 개발할 수 있는 실제로 사용 가능한 오픈소스 프레임워크입니다. 특히 레거시 또는 엄격히 제어된 Windows 환경에서 JavaScript를 실행해야 할 때 매우 유용하며, 현대적인 생성형 AI 사용 사례를 위한 선택적 AI 서비스 연결도 제공합니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트