This page contains basic information on how to write client applications that use the RAMCloud storage system.

API documentation

For information on the APIs available to client applications, consult the RAMCloud doxygen docs, which are generated from the RAMCloud source code. There are two ways you can access the doxygen docs:

The doxygen documentation covers the entire source base, most of which is internal RAMCloud classes that are not useful to application writers.  The primary API documentation for client applications is that for the class RAMCloud::RamCloud (click on the Classes tab at the top of the main page, then search down for the link to RAMCloud::RamCloud). There is one method in this class for each RPC supported by RAMCloud. These methods invoke RPCs synchronously: for example, the createTable method will not return until the operation has completed and a response has been received from the coordinator.

Invoking RPCs asynchronously

You can also invoke any of the RAMCloud RPCs asynchronously, and it is relatively straightforward to manage multiple simultaneous outstanding RPCs.

An example application

The file src/ClientMain.cc in the RAMCloud source directory contains a simple RAMCloud application. Here are a few general hints about writing applications:

How to compile an application

Here is an example command for compiling a RAMCloud client application:

g++ -Lobj.master -lramcloud -Isrc -Iobj.master -o TestClient TestClient.cc

This assumes the following:

If the application is in a different directory, or if the RAMCloud sources are not using the master branch, you will need to adjust the command line accordingly.