WelsonJS - Build a Windows app on the Windows built-in JavaScript engine
Go to file
Namhyeon, Go 4fbd0970ed
Some checks are pending
CodeQL / Analyze (csharp) (push) Waiting to run
CodeQL / Analyze (javascript) (push) Waiting to run
CodeQL / Analyze (python) (push) Waiting to run
Update llm-code-review.yml
2025-03-11 14:54:29 +09:00
.github Update llm-code-review.yml 2025-03-11 14:54:29 +09:00
app Update test.html 2025-02-11 17:00:43 +09:00
data Update test-oss-korea-2023.json 2025-02-11 16:53:26 +09:00
examples Create hanoi.ai.js 2025-01-22 13:55:45 +09:00
lib Update language-inference-engine.js 2025-02-15 16:09:39 +09:00
tmp Create README.md 2022-04-15 14:44:06 +09:00
WelsonJS.Toolkit Reduce complexity: Splitting the GetResource method into separate methods 2025-03-10 00:16:42 +09:00
.appveyor.yml Update .appveyor.yml 2024-11-05 20:45:21 +09:00
.gitignore Update .gitignore 2025-01-15 14:00:57 +09:00
.gitmodules Update ScreenMatch.cs 2024-09-04 13:26:20 +09:00
.sonarcloud.properties Create .sonarcloud.properties 2024-07-10 15:20:48 +09:00
app.hta Update app.hta, app/index.js, app/signin.html, app/test.html 2023-10-30 16:58:29 +09:00
app.js Update LIE(Language Inference Engine) integraton of the app.js 2025-01-28 09:53:55 +09:00
bgloader.js Update bgloader.js 2020-12-10 11:27:05 +09:00
bootstrap.bat Change the toolkit binary download path 2025-02-20 14:19:54 +09:00
bootstrap.js Update app.js and clean up files 2024-07-23 04:26:38 +09:00
CITATION.cff Update CITATION.cff 2024-05-30 12:08:59 +09:00
CODE_OF_CONDUCT.md Add files via upload 2024-05-27 17:49:50 +09:00
CONTRIBUTING.md Update CONTRIBUTING.md 2024-05-27 17:59:55 +09:00
defaultService.example.js Update defaultService.example.js 2024-10-15 03:00:06 +09:00
encryptor.js Change the API name DecryptStringHIGHT to DecryptString and EncryptStringHIGHT to EncryptString 2024-11-05 20:01:34 +09:00
helloworld.coffee Add support LiveScript 2022-11-29 14:42:34 +09:00
helloworld.js Update WelsonJS.Service and related files 2024-07-23 13:13:33 +09:00
helloworld.js.enc Remove the package: html5media 2024-01-27 13:51:32 +09:00
helloworld.ls Add support LiveScript 2022-11-29 14:42:34 +09:00
helloworld.re [app] Add support ReasonML/Rescript #77 2023-08-02 16:06:08 +09:00
helloworld.ts Add support TypeScript 2022-12-22 16:17:10 +09:00
installService.bat Update installService.bat 2025-02-11 23:00:27 +09:00
LICENSE Change GPLv2 to GPLv3 2023-09-09 01:33:02 +09:00
LICENSE_MSRL Rename LICENSE to LICENSE_MSRL 2023-07-18 16:03:23 +09:00
officeloader.js msoffice #93 2023-12-19 06:47:48 +09:00
package-lock.json Bump requirejs from 2.3.6 to 2.3.7 2024-07-26 08:25:56 +00:00
package.json Update package.json 2024-11-07 23:39:51 +09:00
README.md Update README.md 2025-03-09 18:44:03 +09:00
SECURITY.MD Update SECURITY.MD 2025-01-09 16:59:31 +09:00
settings.example.ini Add the Bitmap Comparison with CRC32 hashing 2024-09-19 03:29:43 +09:00
setup.iss Update setup.iss 2024-07-31 16:19:08 +09:00
shoutcut.js msoffice #93 2023-12-19 06:47:48 +09:00
startInteractiveService.bat Add startInteractiveService.bat, uninstallService.bat 2024-07-30 18:17:26 +09:00
testloader.js Update testloader.js 2025-01-15 16:18:06 +09:00
uninstallService.bat Add startInteractiveService.bat, uninstallService.bat 2024-07-30 18:17:26 +09:00
uriloader.js Remove non-free, non-microsoft, and no-updates in uriloader.js 2024-08-27 01:03:24 +09:00
webloader.js Update webloader.js and the screenshot 2024-09-26 18:45:23 +09:00

welsonjs

FOSSA Status AppVeyor Status DOI 10.5281/zenodo.11382384 ChatGPT available Anthropic available Grok available Google Gemini available slideshare.net presentation YouTube promotion video Discord chat Open to work

WelsonJS - Build a Windows app on the Windows built-in JavaScript engine.

A Cover Image: Windows in 1999

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

😽 Download Latest WelsonJS Launcher (ics.catswords.net)

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.

Sponsors

System Requirements

  • Operating Systems: Windows XP SP3 or later (Currently, Windows 11 24H2)
  • For systems running Windows 2000 or earlier versions (e.g., 95, 98, Me), please contact us separately.

Why Choose WelsonJS?

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.

Key Features

  • 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.

Use Cases

  • 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.

Structure

The structure of the WelsonJS framework can be extended based on whether it operates in a console (command prompt) environment, a GUI (with HTML/CSS) environment, or a service environment, with the app.js file at its core.

Specifications

Quick start

1. Write a file lib/sayhello.js

// lib/sayhello.js
function say() {
    console.log("hello");
}

exports.say = say;

exports.VERSIONINFO = "SayHello (sayhello.js) version 0.1";
exports.AUTHOR = "abuse@catswords.net";
exports.global = global;
exports.require = global.require;

2. Write a file sayhello.js

// sayhello.js
var SayHello = require("lib/sayhello");

function main() {
    console.log("calling say()");
    SayHello.say();
    console.log("ended say()");
}

exports.main = main;

3. Execute script on the console

C:\Users\JohnDoe\Documents\GitHub\welsonjs> cscript app.js sayhello
calling say()
hello
ended say()

How to release my application?

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. The setup profile (the setup.iss file) is already included.
  • Copy all directories and files: This is the simplest and most straightforward method.

Screenshots

(Screenshot 1) GUI environment

(Screenshot 2) Command-line environment

(Screenshot 3) WelsonJS with Microsoft Excel

(Screenshot 4) Write a Windows Services with JavaScript

(Screenshot 5) Template Matching on the computer screen

(Screenshot 6) The Launcher for WelsonJS Application Packages

Thanks to

  • ❤️ Artwork (Logo image): @druidesse
  • ❤️ Artwork (Cover image): @_bag0@x.com
  • 😎 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

Report abuse

Join the community

I am always open. Collaboration, opportunities, and community activities are all welcome.

Special channels

License

FOSSA Status