Introduction

Introduction

Welcome to the OpenQuickJS Documentation!

Introducing OpenQuickJS: A Community-Driven Approach

OpenQuickJS is a community-driven fork of QuickJS (opens in a new tab). We welcome and encourage issues and pull requests from all users.

Our motivation for creating OpenQuickJS was due to the limited openness of the official QuickJS repository bellard/quickjs (opens in a new tab). We recognized that there were numerous exceptional pull requests (opens in a new tab), both open and closed, which deserved attention.

OpenQuickJS provides us with a platform where we can take the time to review these pull requests and apply valuable patches to our version. Our approach to open source is guided by the following principles:

Principles

1. Embracing Modern Contribution Methods

The original QuickJS repository does not accept pull requests, instead favoring a mailing list system that can be challenging for modern contributors. OpenQuickJS, on the other hand, readily accepts pull requests, making it more accessible for community involvement.

2. Supporting Modern Build Tools

The original QuickJS repository does not support CMakeLists.txt. At OpenQuickJS, we acknowledge that cmake and ninja are modern build tools that should be embraced. We have therefore made it a point to accept CMakeLists.txt.

3. Ensuring Transparency

We believe in complete transparency, which is why every commit and modification is tracked in the git history and is available for all users to view.

4. Providing Comprehensive Documentation

We offer comprehensive documentation to guide new users. Whether you're here to use the project or to contribute to its development, our documentation will provide you with the guidance you need.

5. Prioritizing Code Maintainability

OpenQuickJS places a high priority on code maintainability. Unlike the original QuickJS repository, which tends to place large amounts of code within a single C file, OpenQuickJS opts for a well-organized code structure where each section of code has its own dedicated area. This approach not only makes the codebase easier to navigate, but also simplifies the process of maintaining and updating the code.

Acknowledgements

We would like to take a moment to express our deep gratitude towards Fabrice Bellard (opens in a new tab), the creator of the original QuickJS. His tremendous work in creating QuickJS has brought an exceptional JavaScript engine to the world, serving as the foundation upon which OpenQuickJS is built.

While our project is a fork designed to address certain limitations we perceived in the original QuickJS (opens in a new tab) repository, we maintain the utmost respect for Bellard's work and contributions to the field. His innovation and dedication continue to inspire us as we work to improve and expand upon QuickJS in our own way through OpenQuickJS.

To Bellard, and to all who have contributed to QuickJS, we say: thank you!