Quick StartTryGuideAPICommunityBlogGitHub

Standard Library

Below is the API for the OCaml standard library. It's directly copied over from the OCaml Manual, formatted to the Reason syntax and styled accordingly. The API docs are work-in-progress; we'll be polishing these gradually!

If you're targeting JavaScript, the API docs for BuckleScript includes all of below, plus JS-specific APIs.

Module Digest

module Digest: sig .. end
MD5 message digest.

This module provides functions to compute 128-bit 'digests' of arbitrary-length strings or files. The digests are of cryptographic quality: it is very hard, given a digest, to forge a string having that digest. The algorithm used is MD5. This module should not be used for secure and sensitive cryptographic applications. For these kind of applications more recent and stronger cryptographic primitives should be used instead.


type t = string;
The type of digests: 16-character strings.
let compare: (t, t) => int;
The comparison function for 16-character digest, with the same specification as Pervasives.compare and the implementation shared with String.compare. Along with the type t, this function compare allows the module Digest to be passed as argument to the functors Set.Make and Map.Make.
Since 4.00.0
let string: string => t;
Return the digest of the given string.
let bytes: bytes => t;
Return the digest of the given byte sequence.
Since 4.02.0
let substring: (string, int, int) => t;
Digest.substring s ofs len returns the digest of the substring of s starting at index ofs and containing len characters.
let subbytes: (bytes, int, int) => t;
Digest.subbytes s ofs len returns the digest of the subsequence of s starting at index ofs and containing len bytes.
Since 4.02.0
let channel: (Pervasives.in_channel, int) => t;
If len is nonnegative, Digest.channel ic len reads len characters from channel ic and returns their digest, or raises End_of_file if end-of-file is reached before len characters are read. If len is negative, Digest.channel ic len reads all characters from ic until end-of-file is reached and return their digest.
let file: string => t;
Return the digest of the file whose name is given.
let output: (Pervasives.out_channel, t) => unit;
Write a digest on the given output channel.
let input: Pervasives.in_channel => t;
Read a digest from the given input channel.
let to_hex: t => string;
Return the printable hexadecimal representation of the given digest.
let from_hex: string => t;
Convert a hexadecimal representation back into the corresponding digest. Raise Invalid_argument if the argument is not exactly 32 hexadecimal characters.
Since 4.00.0