Core_kernel
Core_kernel is the system-independent part of Core, Jane Street's industrial-strength alternative to the OCaml standard library. It is aimed for cases when the full Core is not available, such as in Javascript. It provides an overlay on the usual namespace, so the best way to use it is to start your file with:
open Core_kernel
The full API is browsable here.
Relationship to Core and Base
In sum:
Base
: Minimal stdlib replacement. Portable and lightweight and intended to be highly stable.Core_kernel
: Extension of Base. More fully featured, with more code and dependencies, and APIs that evolve more quickly. Portable, and works on Javascript.Core
: Core_kernel extended with UNIX APIs.
While Core is an extension of Core_kernel, you can think of Core_kernel as an extension of Base. Many of Core_kernel's modules are extensions of modules in Base, where the Core_kernel version adds bin_io support or locks in an API with Stable. Some modules, like Map
, extend their Base equivalents to follow Core conventions for the use of comparators.