Multiple binaries and managing dependent binaries

Following the crash landing of the LetsEncrypt stuff, one of the issues we’re facing is that the behaviour of curl when using client certificates is highly dependent on the SSL library that was used to build it - which is naturally different everywhere.

The reason we need curl in the first place was because we’re using a shell based LetsEncrypt client, and the DNS Challenge needs to be another executable that sets up the challenge.

Instead of using curl, we could use a client built in rust, the cool thing about this client, is it can be about 10 lines of code, we already have the necessary APIs in the box itself.

My question arises here: do we mind building multiple binaries with cargo build, and how do we manage dependencies that are external executables? Can we document and assume they are on the path?

I’m fine with multiple binaries if we don’t have a choice.
We don’t have a real packaging & deployment solution yet (the rpi nightlies packaging is a simple shell script…) so don’t worry too much about that. We already expect pagekite to be in $PATH anyway.