Skip to content

Latest commit

 

History

History
129 lines (77 loc) · 7.36 KB

File metadata and controls

129 lines (77 loc) · 7.36 KB

Join WelsonJS

Korean (한국어) version available

Making JavaScript Run Longer, and Go Further on Windows

WelsonJS is an open-source project focused on extending and modernizing an industrial JavaScript runtime environment for Windows.

Windows has been used for decades in a wide range of business and industrial environments. Even when new technologies become available, replacing existing systems, devices, data, and workflows all at once is often not practical.

WelsonJS aims to connect existing Windows systems with newer technologies through JavaScript, and make long-standing execution environments useful in new ways.

At the same time, the runtime technology behind WelsonJS does not have to be limited to Windows. We are interested in exploring how JavaScript runtime environments can be extended to different operating systems and hardware platforms, including Linux and mobile environments, as well as developing runtime technologies that can be shared across platforms.

Your Experience May Be a Great Fit

WelsonJS is not a project that requires a specific background or career path. We welcome contributors with different experiences, from Windows and JavaScript development to industrial equipment and legacy systems.

Experience or interest in any of the following can be useful in different areas of the project:

  • Windows desktop application development
  • JavaScript or script runtime development
  • Windows development with C# or .NET Framework
  • WinForms or WPF application development
  • Windows APIs and operating system features
  • RDBMS, NoSQL, and local databases
  • Offline data management and synchronization
  • REST APIs or socket-based system integration
  • USB and serial communication
  • RS-232 / RS-485 device integration
  • Ethernet / TCP/IP-based system integration
  • Industrial protocols such as Modbus RTU / Modbus TCP
  • Industrial communication and messaging such as OPC UA and MQTT
  • PLCs and other industrial equipment
  • Input and output devices such as printers, card readers, and barcode readers
  • POS systems or similar business terminal applications
  • Legacy system maintenance and modernization
  • Large-scale data processing and performance optimization
  • System design and development for traffic spikes or isolated and closed-network environments
  • System design and development for industrial control using mobile networks such as LTE and tethering
  • Development for Linux, Android, iOS, and other platforms
  • Understanding of traffic management and operations in high-traffic environments such as online video streaming, e-commerce, and social media services
  • Applying emerging AI technologies, including LLMs, to industrial systems
  • Code review and open-source collaboration through GitHub

You do not need experience in all of these areas.

Experience or interest in just one area can be enough to make a meaningful contribution. Contributions are not limited to writing code. Bug reports, testing, documentation, examples, benchmarks, bug fixes, and new ideas are all valuable contributions to WelsonJS.

Problems WelsonJS Explores

WelsonJS is not limited to a single industry or use case. We work on a range of problems that arise when modern software meets long-running systems and real-world environments.

Legacy Systems and Modernization

Instead of replacing long-running Windows systems outright, we explore how existing environments can be preserved while introducing new technologies and capabilities.

Local Data and Offline Environments

We work on ways to reliably store and process data in environments that cannot always depend on network connectivity, including synchronization with remote systems when connectivity is available.

Restricted Network Environments

We explore how applications and systems can remain useful and maintainable in environments with limited connectivity, including isolated and closed networks.

Connecting Windows Systems with External Devices

We work with USB, RS-232, RS-485, Ethernet, and other interfaces, as well as communication methods and protocols such as Serial, TCP/IP, HTTP, Modbus RTU/TCP, OPC UA, and MQTT.

This includes connecting Windows applications with a wide range of equipment, from PLCs and other controllers to output devices such as printers and input devices such as card readers and barcode readers.

Supporting Diverse Windows Environments

We care about compatibility and stability across different generations and configurations of Windows.

Runtime and Platform Expansion

We are interested in extending the runtime technologies developed through WelsonJS beyond a single operating system.

This includes exploring Linux, mobile platforms, and other operating systems and hardware environments, as well as investigating how different system APIs and execution environments can be connected through a common runtime architecture.

We are also interested in how ideas and experience gained from Windows can be applied to other platforms.

Performance and Reliability

We consider performance, resource usage, and unexpected operating conditions so that applications can remain reliable under a wide range of real-world environments.

Who We'd Like to Build With

People who enjoy understanding existing technologies and connecting them with new ones, rather than only working with the latest technology.

People who are curious about why systems that have been used in the real world for many years were built the way they were.

People who want to explore Windows as a platform.

People who are interested in using JavaScript beyond the web browser.

People who enjoy understanding how industrial equipment, peripherals, local systems, and software work together.

Experience developing or operating POS and other business terminal systems, or designing systems for isolated and closed-network environments, can be particularly relevant to the kinds of problems WelsonJS explores.

We are also interested in people who want to explore runtime technology itself and its potential across platforms such as Linux and mobile operating systems.

Above all, we welcome people who enjoy reading code, running experiments, finding problems, and working together to build solutions through open-source development.

Start Small

You do not need to implement a major feature to get started with WelsonJS.

You can begin by fixing a small bug, testing the project on a particular Windows environment, adding an example, or improving the documentation.

Trying WelsonJS on a new platform or experimenting with the runtime on another operating system can also be a meaningful contribution.

Your experience with different environments can itself become valuable knowledge for the project.

If you enjoy working with Windows and JavaScript, or want to explore how far JavaScript runtime technology can go, that is already a good place to start.

Join us in building WelsonJS.

Developer Support

WelsonJS does not currently offer formal employment or hiring arrangements.

However, we may be able to provide bug bounties or other forms of developer support for meaningful contributions to the project.

If you would like to discuss a particular contribution or support arrangement, feel free to reach out at any time. The scope and form of support can be discussed and negotiated depending on the contribution and the circumstances of the project.

Contact