Hello World for Core

A simple hello-world project for Core. The intent is to show you how
to get started building OCaml projects using OPAM, Core and
OCamlbuild. To use this, first get OPAM, and install the "core"
package. Also, it's probably doing this:

$ opam switch ocaml-4.00.1+short-types

to get better error messages from the compiler when using Core. (As
of 4.01, this compiler variant should be obsolete.)

You can build all the pieces of this project by running:

$ ./build_all.sh

Or you can build any individual executable by running

$ ./build.sh hello_world.native

There are three basic examples

Hello World

This executable is hello_world.native (or hello_world.byte), and
here's an example of it in action.

Hello World client/server

The next example is a pair of programs: hello_server.native and
hello_client.native. The server will accept requests via the
Async.Rpc library, and the client dispatches them. The RPC is
trivial: the client sends a string, and the server attaches " World!"
to the end of it and sends the result back.

Message Broker

This is the most complicated example. broker_server.native is a
simple message broker that allows you to publish and subscribe to
streams of data. broker_client.native is a client that lets you do
a few operations, including publishing, subscribing, getting a dump of
the current state of the server, and shutting the server down.

Guide to the files

These are listed in rough dependency order.

hello_world.ml: Command-line tool that prints "Hello World!"

common.ml: Some common utilities for setting up Async-RPC clients
and servers