We are proud to announce the first public release of core, Jane Street’s own alternative to OCaml’s standard library. We use this library as the base for our own development, and we hope people on the outside will find some use for it as well. People should be warned that

core is still in flux: there are interfaces that we have plans to change, so if you’re not willing to come along for the ride, you shouldn’t use it. Also, be warned that conformance with the OCaml standard library is not a goal, and we have already deviated from it in a number of ways. It’s also worth noting that we have only used and tested this library on x86 and x86-64 on Linux, and we make no claims about other platforms.

You can find the library here, along with three other libraries that you will need to use along with it: type-conv, sexplib and bin-prot. These three libraries provide macros for generating functions for serializing and deserializing types. sexplib uses a human-readable s-expression format, and bin-prot uses a high-performance binary protocol, and type-conv is the common base of the other two libraries. This is also the first public release of bin-prot, and like sexplib, that library can be used independently of core.

(Update: as was noted by some commentors, the packages ounit and res are also required to build core.)

If you have any comments or patches, we’d love to hear about it. The blog is a great place for comments, and patches should be sent to opensource@janestcapital.com.

All of the released libraries are licensed under the LGPL-plus-linking-exception that is used by the OCaml standard library.

ADDENDUM: Core and the related libraries have been relicensed under the Apache2 license.