JavaScript Engine Optimized for Lynx
See the codePrimJS is a lightweight, high-performance JavaScript engine designed specifically for the Lynx cross-platform framework. Fully supporting ES2019, PrimJS is built on top of QuickJS and delivers superior performance and a better development experience compared to QuickJS.
For detailed performance benchmarks, please refer to performance comparison document. The benchmark results show that PrimJS outperforms QuickJS by approximately 28% in overall score (3735 vs 2904) on the Octane Benchmark suite. We are continuously working on performance optimizations.
Clone the repository:
git clone git@github.com:lynx-family/primjs.git
Install dependencies:
cd primjs
source tools/envsetup.sh
hab sync .
PrimJS uses gn and ninja for building. Follow these steps to generate the qjs binary:
gn gen out/Default
ninja -C out/Default qjs_exe
PrimJS snapshot, compatible memory management, and tracing GC are enabled by
default only for arm64 targets with pre-generated embedded.S files. Currently,
these targets are Android, iOS, and macOS. The features remain disabled on Linux,
other platforms without embedded.S, and non-arm64 targets.
To explicitly target arm64 (on macOS, this also enables these features by default):
gn gen out/Default --args='target_cpu="arm64"'
ninja -C out/Default -j32 qjs_exe
For a release build, set the is_debug = false argument during configuration.
The primary binary is qjs, located at out/Default/qjs. Use it to run JavaScript files:
./out/Default/qjs test.js
Run the following steps from the root directory to build and execute unit tests:
python3 tools/ci/check_test_build.py
python3 tools/ci/check_test_run.py
We are devoted to ensuring a positive, inclusive, and safe environment for all contributors. Please find our Code of Conduct for detailed information.
We welcome you to join and become a member of Lynx Authors. It's people like you that make this project great.
Please refer to lynx contributing guide for details.
Large discussions and proposals are discussed in Github Discussions
PrimJS is Apache licensed, as found in the LICENSE file.
(top 24 of 34)
3,108 followers · starred Mar 2025
1,854 followers · starred Nov 2025
13,166 followers · starred Mar 2025
726 followers · starred Mar 2025
JavaScript Engine Optimized for Lynx
See the codePrimJS is a lightweight, high-performance JavaScript engine designed specifically for the Lynx cross-platform framework. Fully supporting ES2019, PrimJS is built on top of QuickJS and delivers superior performance and a better development experience compared to QuickJS.
For detailed performance benchmarks, please refer to performance comparison document. The benchmark results show that PrimJS outperforms QuickJS by approximately 28% in overall score (3735 vs 2904) on the Octane Benchmark suite. We are continuously working on performance optimizations.
Clone the repository:
git clone git@github.com:lynx-family/primjs.git
Install dependencies:
cd primjs
source tools/envsetup.sh
hab sync .
PrimJS uses gn and ninja for building. Follow these steps to generate the qjs binary:
gn gen out/Default
ninja -C out/Default qjs_exe
PrimJS snapshot, compatible memory management, and tracing GC are enabled by
default only for arm64 targets with pre-generated embedded.S files. Currently,
these targets are Android, iOS, and macOS. The features remain disabled on Linux,
other platforms without embedded.S, and non-arm64 targets.
To explicitly target arm64 (on macOS, this also enables these features by default):
gn gen out/Default --args='target_cpu="arm64"'
ninja -C out/Default -j32 qjs_exe
For a release build, set the is_debug = false argument during configuration.
The primary binary is qjs, located at out/Default/qjs. Use it to run JavaScript files:
./out/Default/qjs test.js
Run the following steps from the root directory to build and execute unit tests:
python3 tools/ci/check_test_build.py
python3 tools/ci/check_test_run.py
We are devoted to ensuring a positive, inclusive, and safe environment for all contributors. Please find our Code of Conduct for detailed information.
We welcome you to join and become a member of Lynx Authors. It's people like you that make this project great.
Please refer to lynx contributing guide for details.
Large discussions and proposals are discussed in Github Discussions
PrimJS is Apache licensed, as found in the LICENSE file.
(top 24 of 34)
3,108 followers · starred Mar 2025
1,854 followers · starred Nov 2025
13,166 followers · starred Mar 2025
726 followers · starred Mar 2025