Skip to content
Namhyeon, Go edited this page Mar 20, 2024 · 18 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 are 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 heavy industrial company in Republic of 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, compliance audit services, 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 ES3+. We are using a polyfill library to elevate this to ES5 and ES6 levels, but there are a few unsupported keywords.

Chakracore is not currently integrated with HTML rendering engines and therefore not supported at the moment. Instead, it experimentally supports the Chakra mode (using the Chakra engine built into the Windows operating system). Instructions on how to use this method are provided in the app's source code. Feel free to try it out if needed and report any issues you encounter.

Security

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

Report abuse