GeneWeb library overview

Def lib

Adef

This module exposes base types and functions used by many other geneweb’s libraries. It defines the types and manipulation functions for:

  • Consanguinity degrees

  • Dates

  • Compressed dates

  • Polymorphic couple that regroups parents (father and mother).

Def

Util lib

Buff

Module that defines extenisable buffer and auxilarry functions to store charcacters and strings and get buffer’s content. The reason to define this module instead of using standard Buffer module is that its
storing functions are more simple to use as an argument to the recursive functions over strings that are very common throughout GeneWeb library.

Name

Module that defines some useful functions to construct, format, compress and adopt the strings to represent them as being person surnames/first names.

Utf8

Utf8 is a module that regroups some standard and useful functions dealing with UTF-8 encoded strings, which differs to standard OCaml module Stdlib.String, that internally considers the string as a table of bytes (Utf8 consider it as a table of UTF-8 encoded character). The major difference of this module comparing to the similar (like Camomile) is that sometimes it makes use of OCaml implementation for Unidecode library, that is used to convert encoded UTF-8 character to its ASCII representation.

Secure

This module grants additional security layer and controls which directories can be read by the webserver, to prevent malicious users from reading/writing on the server disk. Allowed directories are composed of list of assets and the base directory.

Opt

Module that defines/redefines some useful functions over option type.

Lock

Module that define the flag and the functions that allow to manage simultaneous accesses to the files by puting a lock on them with Unix.lockf.

ProgrBar

Module that provides printing functions that helps to iterate over collections with progressive bar that shows current iteration stage (proportion of current index to total number). Here is an exemple how does it used for iteration over collection with 240 elements :

# start ()
............................................................

# run 0 240
|...........................................................

# run 1 240
/...........................................................

# run 2 240
-...........................................................

# run 3 240
\...........................................................

# run 4 240
o|..........................................................

# sucessive runs

# run 120 240

oooooooooooooooooooooooooooooo|.............................

Mutil

The main module inside Util library that regroups many type of useful functions dealing with :

  • File system

  • Lists

  • Arrays

  • Names

  • Letters

  • IO

  • System calls

  • Parsing different formats (like lexicon.txt or HTTP header)

  • Encoding/decoding

Calendar

This module defines bindings to calendars package that allows to manage different calendar’s date. Module exposes functions that:

  • Convert SDN (serial day number) to and from one of the date for supported calendars (gregorian, julian, french andhebrew).

  • Convert any supported calendar’s date to and from gregorian’s date.

  • Give information about moon’s phase and about lunar calendar for the given day (SDN).

Date

Date provides usefull functions that helps to compare and to count time elapes between two dates.

Pqueue

This module implements priority queues. All operations are purely applicative (no side effects). The implementation uses binomial queues from Chris Okasaki. Functions add, take and union are in O(log n) in the worst case.

Futil

This module regroups some usefull functions dealing with polymorphic data types (starts with gen_). Particulary it exposes functions that map values inside gen_ data type. Aditionally it provide gen_person_misc_names that computes list of various mix between all kind of name of the person.

Gwdb-legacy lib

Btree

Module that is equivalent to Stdlib.Map except some added in output signature functions dealing with keys.