back to home

lynx-family / primjs

JavaScript Engine Optimized for Lynx

1,103 stars
50 forks
36 issues
C++AssemblyJavaScript

AI Architecture Analysis

This repository is indexed by RepoMind. By analyzing lynx-family/primjs in our AI interface, you can instantly generate complete architecture diagrams, visualize control flows, and perform automated security audits across the entire codebase.

Our Agentic Context Augmented Generation (Agentic CAG) engine loads full source files into context on-demand, avoiding the fragmentation of traditional RAG systems. Ask questions about the architecture, dependencies, or specific features to see it in action.

Source files are only loaded when you start an analysis to optimize performance.

Embed this Badge

Showcase RepoMind's analysis directly in your repository's README.

[![Analyzed by RepoMind](https://img.shields.io/badge/Analyzed%20by-RepoMind-4F46E5?style=for-the-badge)](https://repomind.in/repo/lynx-family/primjs)
Preview:Analyzed by RepoMind

Repository Overview (README excerpt)

Crawler view

PrimJS 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. Key features include: • **Optimized Interpreter:** PrimJS introduces a template interpreter leveraging stack caching and register optimizations, significantly enhancing performance. • **Seamless Object Model Integration:** The engine's object model integrates efficiently with the Lynx object model, reducing data communication overhead and improving rendering performance. • **Advanced Memory Management:** Utilizing a Garbage Collector (GC) instead of QuickJS's Reference Counting, PrimJS offers better performance, improved memory analyzability, and reduced risk of memory leaks. • **Comprehensive Debugging Support:** Full implementation of the Chrome DevTools Protocol (CDP) enables seamless integration with Chrome Debugger for enhanced debugging capabilities. • **WebAssembly Support:** Built-in WebAssembly runtime with support for multiple WASM engines (wasm3 and Prism), providing seamless interoperability between JavaScript and WebAssembly code. Performance 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. Quick Start Dependencies • **Clone the repository:** • **Install dependencies:** Building on Linux and macOS PrimJS uses and for building. Follow these steps to generate the binary: To enable the template interpreter and garbage collector, use the following arguments (for example, on the arm64 platform, these arguments configure the build system to target ARM64 architecture while enabling the bytecode-based template interpreter and automatic memory management): Release Build For a release build, set the argument during configuration. Running PrimJS The primary binary is , located at . Use it to run JavaScript files: Running Tests Run the following steps from the root directory to build and execute unit tests: Build Unit Tests Run Unit Tests How to Contribute [Code of Conduct][coc] We are devoted to ensuring a positive, inclusive, and safe environment for all contributors. Please find our [Code of Conduct][coc] for detailed information. [coc]: CODE_OF_CONDUCT.md [Contributing Guide][contributing] 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][contributing] for details. [contributing]: https://github.com/lynx-family/lynx/blob/develop/CONTRIBUTING.md Open Source Roadmap Discussions Large discussions and proposals are discussed in Github Discussions [License][license] PrimJS is Apache licensed, as found in the [LICENSE][license] file. [license]: LICENSE