Surprise General Converter (below GConv) is quite internal part of libsurprise which realizes changes of partitions and provides this to other parts of project. Currently this provides changing parameters of filesystems, creating emtry filesystems, moving and copying partitions, shrinking or growing non-empty filesystems/partitions. We also plan to support joining and splitting filesystems in future versions.
To be able to do as much as possible general conversions of partitions the GConv uses filesystem modules. GConv can manipulate with all filesystem with implemented module. Thanks for module for Unknown filesystem is GConv can manipulate with all filesystems, but the functionality is much restricted.
Because GConv convertion spends much of time, therefore there were implemented some accelerated functions (e.g. for creating new filesystem or moving partition) that are privided separately.
The GConv API is found in src/include/surprise/partition.h All other sources of GConv are found in src/libsurprise/gconv/*