Skip to content

Latest commit

 

History

History
169 lines (134 loc) · 14 KB

README.md

File metadata and controls

169 lines (134 loc) · 14 KB

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

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

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 Library (sayhello.js) version 0.1";
exports.AUTHOR = "[email protected]";   // e.g. YOUR EMAIL ADDRESS
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\knh94\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. 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.

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): @[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

Report abuse

Join the community

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

Special channels

License

FOSSA Status