About the Chilkat.Js JavaScript Engine
Chilkat.Js is a minimal, standards-compliant JavaScript engine designed to embed JavaScript inside applications with very small footprint and fast startup. It executes JavaScript code inside an application without requiring a browser or large runtime like Node.js.
The Chilkat.Js JavaScript engine was originally derived from the open-source QuickJS project created by Fabrice Bellard. QuickJS provided an excellent lightweight JavaScript interpreter that served as a strong starting point.
Because Chilkat.Js is based on QuickJS, it is designed to be:
- Tiny
- Fast to start
- Easy to embed
- Fully standards compliant
Key Characteristics
- Small and Lightweight
- No external dependencies
- Works with any programming language supported by Chilkat
- Works across all operating systems supported by Chilkat
- Sandboxed by default
- Selectively enable use of Chilkat classes within the Javascript.
Full ECMAScript Support
QuickJS implements the ECMAScript specification with excellent coverage.
It supports modern JavaScript features including:
- ES2023 features
- modules (
import/export) - async / await
- generators
- proxies
- BigInt
- typed arrays
- standard library objects
Fast Startup
Unlike large engines such as Google V8, Chilkat.Js/QuickJS prioritizes instant startup rather than long-running JIT performance.
Sandboxed by Default
Designed for Embedding in Applications
A core purpose of QuickJS is to embed JavaScript inside applications.
Typical architecture:
Application
│
│ Chilkat.Js API
▼
Chilkat.Js Runtime
│
▼
JavaScript Execution
Sandboxed Environment
By default, Chilkat.Js is sandboxed because the core engine provides only a pure ECMAScript runtime and no operating-system APIs. The engine executes JavaScript but has no built-in capability to interact with the outside world unless the embedding application explicitly exposes those capabilities.
In other words, Chilkat.JS runs JavaScript in a closed environment where the only available functionality is the standard JavaScript language and standard library.
However, applications can enable selected Chilkat classes to be used within the Javascript.
All Chilkat classes are disabled by default. Prior to running a JavaScript, individual Chilkat classes can be enabled in sandbox, read-only, write-only, or read/write modes.
For more information, see Chilkat.Js is Sandboxed by Default
Origins
The Chilkat Js JavaScript engine was originally derived from the open-source QuickJS project. QuickJS provided an excellent lightweight JavaScript interpreter that served as a strong starting point.
However, the Chilkat Js engine has since undergone extensive modifications and architectural changes to meet Chilkat’s internal development standards and architectural requirements.
Key changes include:
- Converted from C to C++ The original QuickJS codebase was written in C. The Chilkat engine was refactored into C++ to better align with the rest of the Chilkat codebase and to enable stronger type safety and object-oriented design.
- Extensive refactoring and restructuring Portions of the code were rewritten to follow Chilkat’s internal coding conventions, naming standards, and architecture.
- Additional safety and reliability hardening Memory management, error handling, and internal APIs were updated to improve robustness and reduce the risk of undefined behavior or misuse.
- Integration with Chilkat runtime infrastructure The engine was adapted to integrate with Chilkat’s internal architecture.
Because of the scale of these changes, the Chilkat Js engine is now effectively a separate fork of the original QuickJS project.
It is closed-source and independently maintained by Chilkat, and it does not track or merge future changes from the upstream QuickJS repository.
In short:
The Chilkat Js engine began as QuickJS, but after extensive redesign, refactoring, and hardening, it has evolved into a separate JavaScript engine maintained as part of the Chilkat platform.