WelsonJS - Build a Windows app on the Windows built-in JavaScript engine.
Now, You can build a Windows desktop app with JavaScript, TypeScript, CoffeeScript, ReScript, and HTML/CSS on Windows built-in ECMAScript engine.
WelsonJS = Windows + Electron-like + Javascript(JS) + ❤️Contributions
Note: The default license for this project is GPL 3.0. However, if the GPL 3.0 license is not compatible with Microsoft products, it is subject to the MS-RL license.
GitHub Sponsors
Open Software Portal, Korea National Industry Promotion Agency - Awarded Prize
Free code signing provided by SignPath.io, certificate by SignPath Foundation
F1Security provides web security services designed by industry-leading experts.
Microsoft ISV Success Program, Grow your business with powerful tools.
- ⚡ Integrations (ScrapeOps, SearchApi, AviationStack, Coupang...)
WelsonJS is an advanced JavaScript framework designed to operate in extreme conditions where conventional solutions may fail. Unlike traditional JavaScript frameworks, WelsonJS focuses on executing scripts in constrained environments, ensuring reliable performance even with minimal system resources.
- Lightweight and Efficient: Optimized for environments with limited computing power, WelsonJS delivers efficient script execution without unnecessary overhead.
- Windows ECMAScript Compatibility: Designed to run seamlessly on Windows-based systems, adhering to the ECMAScript standard while maintaining lightweight execution.
- Standalone Execution: Unlike well-known JavaScript runtimes, which require external dependencies, a WelsonJS application can operate as a self-contained app, making it suitable for embedded systems and isolated environments.
- Security-Oriented: Built with security in mind, ensuring controlled execution of scripts without compromising system integrity.
- Minimalist Design: WelsonJS strips away unnecessary complexities, focusing on core functionalities that maximize performance and reliability.
- Legacy System Integration: WelsonJS provides a practical solution for running JavaScript on older Windows environments where modern frameworks are not feasible.
- Automation and Scripting: Ideal for executing scripts in constrained environments, enabling automated workflows and system-level scripting.
- Embedded Applications: Suitable for devices and systems with strict resource constraints, such as industrial controllers and embedded platforms.
- Security-Focused Environments: Useful in security-sensitive applications where dependencies on external network connections are limited.
- Office Automation: Suitable for office automation tasks using Microsoft Office and various LLM-based AI (such as ChatGPT).
WelsonJS is tailored for developers who need a reliable, lightweight JavaScript framework in environments where traditional solutions are impractical. Whether working with legacy systems, embedded devices, or security-critical applications, WelsonJS ensures that JavaScript remains a viable and efficient option.
- Built-in transpilers: TypeScript, Rescript, CoffeeScript 2, LiveScript
- Ready to use on Windows machine immediately. No require additional software installation.
- ES5(ECMAScript 5), XML, JSON, YAML compatibility: core-js, JSON2.js, js-yaml
- HTML5, CSS3 compatibility: html5shiv, jquery-html5-placeholder-shim, Respond, selectivizr, ExplorerCanvas, Modernizr
- Classical CSS Frameworks: cascadeframework, golden-layout
- WYSIWYG HTML Editor: summernote
- Included libraries: jQuery, jQuery UI, jquery-toast-plugin, squel, jsrender, linq, pegjs, numbers.js
- Compatible with modern JavaScript specifications: module.exports, CommonJS, UMD compatibility, NPM(Node Pacakge Manager) compatibility
- Support a device debugging protocol clients: Chrome DevTools Protocol, ADB(Android Debug Bridge)
- RPC(Remote Procedure Call) protocol clients: gRPC, JSON-RPC 2.0
- Various types of HTTP clients: XHR(MSXML), cURL, BITS, CERT, Web Proxy, SEO/SERP
- Native module (
WelsonJS.Toolkit
): Write a Windows Service Application with JavaScript, Control a window handle, Cryptography (e.g., ISO/IEC 18033-3:2010 aka. HIGHT), Named Shared Memory based IPC, NuGet package - Generative AI integrations: Multiple LLM and sLLM (e.g., ChatGPT, Claude, ...)
- Aviation Data integrations: AviationStack, SearchApi Google Flight
- VM infrastucture tool integrations: OVFTool for Broadcom/VMware infrastructures
- Everything you can imagine.
// lib/sayhello.js
function say() {
console.log("hello");
}
exports.say = say;
exports.VERSIONINFO = "SayHello Library (sayhello.js) version 0.1";
exports.AUTHOR = "[email protected]"; // e.g. YOUR EMAIL ADDRESS
exports.global = global;
exports.require = global.require;
// sayhello.js
var SayHello = require("lib/sayhello");
function main() {
console.log("calling say()");
SayHello.say();
console.log("ended say()");
}
exports.main = main;
C:\Users\knh94\Documents\GitHub\welsonjs> cscript app.js sayhello
calling say()
hello
ended say()
The WelsonJS framework suggests the following application release methods:
- Compress to Zip, and use the launcher: Compress the files and directories necessary for running the project into a Zip file, and distribute it along with the WelsonJS.Launcher.
- Build a setup file: Use Inno Setup. Information needed to create the setup file (the
setup.iss
file) is already included. - Copy all directories and files: This is the simplest and most straightforward method.
- ❤️ Artwork (Logo image): @druidesse
- ❤️ Artwork (Cover image): @[email protected]
- 😎 Heavy-industry specialized CSP(Cloud Service Provider) in Republic of Korea - Use case establishment
- 😎 Live-commerce specialized online advertisement companies in Republic of Korea - Use case establishment
- 😎 Information security companies in Republic of Korea - Use case establishment
- 👀 Facebook Group "Javascript Programming"(javascript4u)
- 👀 morioh.com
- 👀 CSDN
- 👀 Qiita - Knowledge-base about WSH environment
- 😎 Redsky Software - PoC(Proof of Concept) of the CommonJS on WSH environment
- 😎 Inspired by a small-sized JavaScript payload demonstrated by a cybersecurity related group.
- 😎 Inspired by the use of Named Shared Memory in an inter-language IPC implementation devised by an unidentified developer.
- 👀 Fediverse
- 👀 Hacker News
- 👀 WebToolsWeekly
- 👀 GeekNews in GeekNews Weekly (2024-09-30 ~ 2024-10-06)
- 👀 daily.dev
- 👀 PitchHut
- 👀 Disquiet
I am always open. Collaboration, opportunities, and community activities are all welcome.
- ActivityPub @[email protected]
- XMPP [email protected]
- Join Catswords OSS on Microsoft Teams (teams.live.com)
- Join Catswords OSS #welsonjs on Discord (discord.gg)
- A paid consultation channel (m.expert.naver.com) is available for Korean (한국어) region.
- Join the private operations channel (forms.gle) is available for all regions.