Skip to content
Library for implementing Disco jobs in ocaml.
Pull request Compare This branch is even with discoproject:master.
Latest commit d4253ce Sep 8, 2013 @pmundkur Avoid constant too large for 32-bit platforms.
Found as part of OPAM regression run tracked in OCamlPro/opam-repository#1029


ODisco is a library for implementing Disco map-reduce jobs in OCaml.
It implements the Disco worker protocol, and provides the plumbing to
connect user-specified computations to Disco data sources and results.


The library has the following dependencies:

. ocaml 3.12.0 or later

. ocaml-findlib (Debian/Ubuntu/Fedora) / godi-findlib (Godi) / findlib (Gentoo, source)

. libzip-ocaml-dev (Debian/Ubuntu) / ocaml-zip (Fedora) / godi-zip (Godi) / camlzip (Gentoo, source)

. Disco 0.4 or later (

. sonet

  This is a simple asynchronous networking library for OCaml.

  $ git clone git://
  $ cd sonet && make && make install

  To uninstall:
  $ cd sonet && make uninstall

The tests have the following dependencies:

. atd    ( / libatd-ocaml-dev (Debian/Ubuntu) / godi-atd (Godi)
. atdgen ( / libatdgen-ocaml-dev (Debian/Ubuntu) / godi-atdgen (Godi)
. biniou ( / libbiniou-ocaml-dev (Debian/Ubuntu) / godi-biniou (Godi)


 $ make


 $ make install


 $ make uninstall


. Write a module implementing the lib/ interface.  Pass
  this module to Worker.start in your main program.  See
  tests/ for an example.

  Read the documentation in lib/task.mli and lib/worker.mli for more

. Build it and link to the ODisco library.  See tests/Makefile for an
  example build.

. Submit your compiled executable to Disco using 'disco job'.

  For example, to do a word count on a large text file:

  $ make -C tests
  $ wget -O /tmp/bigfile.txt
  $ ddfs push text /tmp/bigfile.txt
  $ ddfs blobs text \
    | disco job -m -r -p ocamlwc tests/word_count.opt \
    | xargs disco wait \
    | xargs ddfs cat
Something went wrong with that request. Please try again.