Balanced_reducerA Balanced_reducer.t stores a mutable fixed-length sequence of optional values, and incrementally maintains the result of folding an associative operation (reduce) over the sequence as its elements change.
Library core_kernel.binary_packing
Binary_packingPacks and unpacks various types of integers into and from strings.
Library core_kernel.bounded_int_table
Bounded_int_tableA Bounded_int_table is a table whose keys can be mapped to integers in a fixed range, 0 ... num_keys - 1, where num_keys is specified at table-creation time. The purpose of Bounded_int_table is to be faster than Hashtbl in situations where one is willing to pay a space cost for the speed.
Library core_kernel.bus
BusA Bus is a publisher/subscriber system within the memory space of the program. A bus has a mutable set of subscribers, which can be modified using subscribe_exn and unsubscribe.
Force_onceA "force_once" is a thunk that can only be forced once. Subsequent forces will raise an exception.
Library core_kernel.hash_heap
Hash_heapA hash-heap is a combination of a heap and a hashtable that supports constant time lookup, and log(n) time removal and replacement of elements in addition to the normal heap operations.
Library core_kernel.int_set
Int_setAn implementation of compressed integer sets using lists of integer ranges. Operations such as adding and membership are O(n) where n is the number of contiguous ranges in the set. For data that is mostly serial, n should remain very small.
Library core_kernel.iobuf
IobufA non-moving (in the GC sense) contiguous range of bytes, useful for I/O operations.
Library core_kernel.limiter
LimiterImplements a token-bucket-based throttling rate limiter. This module is useful for limiting network clients to a sensible query rate, or in any case where you have jobs that consume a scarce but replenishable resource.
Library core_kernel.moption
MoptionA Moption is a mutable option, like 'a option ref, but with a more efficient implementation; in particular, set_some does not allocate.
RopeA rope is a standard data structure that represents a single string as a tree of strings, allowing concatenation to do no work up front. See the README.md file for details and motivating examples.
Unpack_bufferA buffer for incremental decoding of an input stream.
Library core_kernel.uopt
UoptA Uopt.t is an unboxed option. This module is tricky and potentially unsafe. It should mostly not be used, and when it is, one must keep the Uopt.t inside their module, and not expose them (not even if they are given an abstract type).
Library core_kernel.uuid
UuidImplements universally unique identifiers based on version 3 of the UUID specification. Identifier generation is thread safe, and fast.
Library core_kernel.version_util
Version_utilThis module gives access to the same version/build information returned by Command-based executables when called with the -version or -build-info flags by $0 version (-build-info | -version) or $0 (-build-info | -version).
Library core_kernel.weak_array
Weak_arrayModule for dealing with weak pointers, i.e., pointers that don't prevent garbage collection of what they point to.
Library core_kernel.weak_hashtbl
Weak_hashtblA hashtable that keeps a weak pointer to each key's data and uses a finalizer to detect when the data is no longer referenced (by any non-weak pointers).
Library core_kernel.weak_pointer
Weak_pointerA weak pointer is a pointer to a heap block that does not cause the heap block to remain live during garbage collection.