MCPcopy Index your code
hub / github.com/ceph/ceph-rust

github.com/ceph/ceph-rust @v3.0.2

Chat with this repo
repository ↗ · DeepWiki ↗ · release v3.0.2 ↗ · + Follow
344 symbols 738 edges 53 files 119 documented · 35%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Ceph Rust

Official Ceph Rust interface

Build Status Version info

Official Ceph Rust-lang interface. Contributions welcomed!

This library is the core librados Rust interface for Ceph. It also supports Admin Socket commands.

Build requirements

Librados must be installed.

On CentOS/RHEL - Ceph Hammer librados is located in /usr/lib64. So, to get rust to see it you need to create a new symlink: sudo ln -s /usr/lib64/librados.so.2.0.0 /usr/lib64/librados.so

On Ubuntu - Ceph Hammer librados is located in /usr/lib. So, to get rust to see it you need to create a new symlink: sudo ln -s /usr/lib/librados.so.2.0.0 /usr/lib/librados.so

There may be another way to change the link name in rust without having to create a symlink.

On MacOS, you can install librados via homebrew:

brew tap zeichenanonym/ceph-client brew install ceph-client

Ceph

Create a Ceph development environment or use an existing Ceph environment.

If creating a Ceph environment then use the following. It will generate a 4 node Virtual Box Ceph system with one node being a bootstrap node that controls the other. The remaining 3 nodes are Ceph nodes (Mons, OSDs, RGWs, APIs).

Created and manage github.com/ceph/ceph-chef (Chef cookbooks for Ceph) and the Bloomberg github.com link below for chef-bcs. Chef-bcs uses ceph-chef. These are the same tools at Bloomberg.

Requirements for Mac OSX: 1. VirtualBox 2. git 3. Locate an area where you would like to install the Ceph build environment 4. git clone https://github.com/bloomberg/chef-bcs.git

cd chef-bcs cd /bootstrap/vms/vagrant ./CEPH_UP

NOTE: If using the latest version of chef-bcs, you can enable an automatic development environment to be built with all of the development tools. See the project for details. It does it by default for Vagrant build.

This will take about 30 minutes to build out. It installs CentOS 7.3, downloads all of the parts required to get Ceph up and running with good options.

Once complete you can then login to the first node: vagrant ssh ceph-vm1

Run ceph -s to make sure you see Ceph running. Now you can install the development environment and Rust.

Rust

(In ceph-vm1 node)

curl -sSf https://static.rust-lang.org/rustup.sh | sh

OR

curl https://sh.rustup.rs -sSf | sh

Yum

(In ceph-vm1 node) - Note: This is automatically done for you if you installed the environment vi Chef-bcs as noted above.

mkdir -p projects/lambdastack
cd projects/lambdastack

Requirements for development:
sudo yum install -y git cmake
sudo yum install -y openssl openssl-devel

Clone ceph-rust project:

git clone https://github.com/lambdastackio/ceph-rust.git

NOTE: Make sure you have setup your favorite editor. Vim is automatically installed.

AWS S3 Object Store

Crate (library): aws-sdk-rust at https://github.com/lambdastackio/aws-sdk-rust

AWS S3 CLI Utility

Crate (binary): s3lsio at https://github.com/lambdastackio/s3lsio

Ceph Admin Commands

An example of finding a mon socket in a generic like environment.

ceph-conf --name mon.$(hostname -s) --show-config-value admin_socket

The raw admin_socket commands can be found in: /src/ceph_admin_socket_mon_commands.json /src/ceph_admin_socket_osd_commands.json /src/ceph_admin_socket_client_commands.json

A number of them are the same.


Portions originated from Chris Holcombe at https://github.com/cholcombe973

Core symbols most depended-on inside this repo

ioctx_guard
called by 46
src/ceph.rs
n
called by 43
docs/jquery.js
ceph_mon_command_without_data
called by 35
src/ceph.rs
onEach
called by 30
docs/main.js
hasClass
called by 25
docs/main.js
oa
called by 21
docs/jquery.js
conn_guard
called by 19
src/ceph.rs
addClass
called by 17
docs/main.js

Shape

Function 157
Method 129
Class 48
Enum 10

Languages

Rust71%
TypeScript29%

Modules by API surface

src/ceph.rs99 symbols
docs/jquery.js64 symbols
src/cmd.rs59 symbols
docs/main.js36 symbols
src/ceph_client.rs32 symbols
src/status.rs18 symbols
src/mon_command.rs8 symbols
tests/integration_tests.rs5 symbols
src/rados.rs5 symbols
src/error.rs4 symbols
src/ceph_version.rs4 symbols
src/json.rs3 symbols

For agents

$ claude mcp add ceph-rust \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact