The tool for powder patterns is not separated from the rest of the program like typical plug-ins. It could be separated, but it's not the highest priority.
bindings are generated using SWIG.
ATM the program is not using FFTW yet. (KissFFT, which is smaller and simpler, is also considered.)
The part of the program that does peak detection could be a separate library in future.
ATM the algorithm is naive, but there are several smarter algorithms and if they are implemented,
such a library could be useful also for other programs.
I'm considering either using one of the existing codes/libraries for non-linear fitting (see the README file), or separating the fitting code from libfityk.
A view with libfityk internals more exposed (may not be useful until properly described)