ctypes

Combinators for binding to C libraries without writing any C
Library cstubs
module type INTERNAL = sig ... end
module type BINDINGS = functor (F : INTERNAL) -> sig ... end
val write_c : Format.formatter -> prefix:string -> (module BINDINGS) -> unit

write_c fmt ~prefix bindings generates C stubs for the functions bound with internal in bindings. The stubs are intended to be used in conjunction with the ML code generated by write_ml.

The generated code uses definitions exposed in the header file cstubs_internals.h.

val write_c_header : Format.formatter -> prefix:string -> (module BINDINGS) -> unit

write_c_header fmt ~prefix bindings generates a C header file for the functions bound with internal in bindings. The stubs are intended to be used in conjunction with the C code generated by write_c.

val write_ml : Format.formatter -> prefix:string -> (module BINDINGS) -> unit

write_ml fmt ~prefix bindings generates ML bindings for the functions bound with internal in bindings. The generated code conforms to the INTERNAL interface.

The generated code uses definitions exposed in the module Cstubs_internals.