An experimental JavaScript runtime built with OxCaml and JavaScriptCore
OCaml
95
18 commits
updated Jan 20, 2026
sirocco is a lightweight and experimental JavaScript runtime written in OxCaml that embeds Apple's JavaScriptCore engine and provides Node.js APIs.
The event loop is powered by libuv (via the luv bindings), implementing the same async I/O model that Node.js (setTimeout, setInterval, and non-blocking filesystem operations).
Built with OxCaml, Jane Street's compiler fork and a set of extensions to OCaml focused on performance-oriented programming. It provides safe and predictable control over allocation, memory layout, and concurrency, while remaining fully backwards-compatible with OCaml. We don't leverage much of it yet (just nativeint for FFI pointers), but it might be the foundation for future performance work and a great learning playground for modes, unboxed types, and stack allocation.
console, fs, process, path, Buffer, URL, EventEmitter, TextEncoder/TextDecoderfs.readFile and fs.promises.readFile styles work18 commits
OCaml
73.5%
C
12.2%
JavaScript
9.7%
Shell
3.4%
An experimental JavaScript runtime built with OxCaml and JavaScriptCore
OCaml
95
18 commits
updated Jan 20, 2026
sirocco is a lightweight and experimental JavaScript runtime written in OxCaml that embeds Apple's JavaScriptCore engine and provides Node.js APIs.
The event loop is powered by libuv (via the luv bindings), implementing the same async I/O model that Node.js (setTimeout, setInterval, and non-blocking filesystem operations).
Built with OxCaml, Jane Street's compiler fork and a set of extensions to OCaml focused on performance-oriented programming. It provides safe and predictable control over allocation, memory layout, and concurrency, while remaining fully backwards-compatible with OCaml. We don't leverage much of it yet (just nativeint for FFI pointers), but it might be the foundation for future performance work and a great learning playground for modes, unboxed types, and stack allocation.
console, fs, process, path, Buffer, URL, EventEmitter, TextEncoder/TextDecoderfs.readFile and fs.promises.readFile styles work18 commits
OCaml
73.5%
C
12.2%
JavaScript
9.7%
Shell
3.4%