
libblockdev is a C library supporting GObject Introspection for manipulation of block devices.
It has a plugin-based architecture where each technology (like LVM, Btrfs, MD RAID, Swap,...)
is implemented in a separate plugin, possibly with multiple implementations 
(e.g. using LVM CLI or the new LVM DBus API). 

Homepage:
https://github.com/storaged-project/libblockdev/
