Create crush library


CRUSH is relatively self-contained, but is statically linked into Ceph and difficult to use externally. Several people have expressed interest in building CRUSH has a standalone shared library for easier consumption.


  • Name (Affiliation)

Interested Parties

Current Status

Linked statically. Mostly self-contained.
Mix of C and C++ code and implementation: core mapping functionality is C, but map manipulation is C++ only.
Standalone 'crushtool' binary for manipulating maps.

Detailed Description.

There are two general categories of code: the mapping code, which is all in C and shared with the Linux kernel, and the map manipulation, which is all C++ and userland only. A shared library means building a single API for both, or possibly separating into two libraries (one for mapping and one more map manipulation). Lots of interface cleanup. and some build changes.

Work items

reference to undefined name 'etherpad' Exception of type 'MindTouch.Deki.Script.Runtime.DekiScriptUndefinedNameException' was thrown.