Skip to content
Namhyeon, Go edited this page Nov 24, 2023 · 22 revisions

Welcome to the WelsonJS wiki!

Background

Many of the clients I have collaborated with have expressed the need for an environment where an app can be developed solely using a "text editor" program, without the dependency on an integrated development environment (IDE). However, in the Windows development environment, IDEs like Visual Studio were considered essential tools and widely utilized.

Within Windows, a robust foundation for scripting-based app development has existed for a considerable period, although it has often been treated as somewhat of an Easter egg.

Recently, I extracted this functionality and observed various attempts to develop a system app. Based on these observations, I initiated the WelsonJS project.

The first entity to request a practical demonstration of this concept was a major industrial company in Korea. They operate their own cloud computing center and manage a variety of Windows versions, ranging from Windows 2000 (server family) to Windows 10 (PC family). We successfully developed a metric collection agent, addressing version differences.

The WelsonJS project began with the experiential knowledge gained during this time. Subsequently, we continuously improved the project by incorporating requirements from virtual private network companies, information security firms, asset valuation companies, live commerce enterprises, and others.

Technical Benefits

You can leverage full ES5 support and partial ES6 support on JavaScript engines built into Windows. This includes WebAssembly support using WebAssembly runtimes (e.g., WAMR, Wasmtime, ...).

Moreover, you can utilize various Windows APIs with JavaScript.

Technical Limitations

The specification level of the ECMAScript engine built into Windows is estimated to be between 3.5 and 4.5. We are using a polyfill library to elevate this to ES5 and ES6 levels, but there are a few unsupported keywords.

Although we are aware of Chakracore, known as an improved version of JScript, it cannot be used in projects with web-based GUI because it has not integrated with HTML rendering engines (e.g., MSHTML, EdgeHTML).

However, it will be included in future work because it is highly utilized for special purposes.

Security

I have outlined the security policy in the SECURITY.MD file to minimize the misuse cases of this project.

Contact us

Clone this wiki locally