Self-updating AppImages can be implemented using AppImageUpdaterBridge (written in C++ using Qt5 which only depends on Qt base).
it can even be used without re-compiling from source. Using the Qt plugin you can do this by just adding the plugin and repacking it with
appimagetool. Here is a small hint on how to do it -> antony-jr/AppImageUpdaterBridge#7 (comment)