Ceph-rust is a thin layer over the librados C interface. A little higher abstraction layer will be coming next that will encapsulate all of the "C" specific features so that only pure Rust will be needed.
Only works on Linux The documentation for librados can be found: http://docs.ceph.com/docs/master/rados/api/librados/
By default Ceph names librados as the following for the given platforms: Hammer release: RHEL/CentOS: /usr/lib64/librados.so.2.0.0
You will need to do a symlink of the above link to the following: RHEL/CentOS: sudo ln -s /usr/lib64/librados.so.2.0.0 /usr/lib64/librados.so
Ubuntu: sudo ln -s /usr/lib/librados.so.2.0.0 /usr/lib/librados.so
NOTE: If someone know of another way for Rust to find the librados file then please issue a PR for it. Thanks!
See the /examples/ceph.rs for how to use the library.
Ceph has a command system defined in https://github.com/ceph/ceph/blob/master/src/mon/MonCommands.h The cli commands mostly use this json based system. This allows you to make the exact same calls without having to shell out with std::process::Command. Many of the commands defined in this file have a simulate parameter to allow you to test without actually calling Ceph.
A CephClient is a struct that handles communicating with Ceph in a nicer, Rustier way