It appears that cross-compiling with Rust is rather straightforward: just install the target you're… hmm, targeting with "rutsup target add <target>", and use "cargo build --target <target> --release" — not much harder than it is with Go.
Considering that your target is available via rustup — mine, PowerPC MUSL system wasn't and I had to build natively, I'll figure out how to add my own targets later. But building for my old ARM machine went without a hitch — and, surprisingly, the binary works😂
In case some of the crates use C code and build something themselves, like ring crate does, you have to point cargo to the right tools using the environment variables, but in a lot of cases it figures everything out on its own.
Also rust crate version 0.16 didn't support 32-bit PowerPC properly so to port TUI RSS reader here https://github.com/veeso/tuifeed I had to update a few dependencies to use newer ring 0.17
Some problems arise from software relying on atomics (thread-safe types) from the standard library, which aren't portable — luckily, there is portable-atomic crate: https://github.com/taiki-e/portable-atomic
Replacing atomics from standard library with the ones from portable-atomic IS straightforward, but in my case it was a dependency of a dependency using it, so building the RSS reader involved adding a [patch.crates-io] section to Cargo.toml to use a local patched version of crate.
In Go this wouldn't have been a problem as HTTP client in the standard library honors the environment variables for proxies, but in Rust standard library is very limited — there are plenty of widely used and good crates to make up for it. ureq, which is used in this project, doesn't do it, to me it looks a very similar to Python's great requests module, in which you have to construct the session object (Agent in ureq) and to configure it to use proxies and which is then used to execute requests.
Wow, turns out I didn't have to do any of this myself and there is a way to make ureq work exactly the same way Go standard facilities for HTTP requests do: this crate has "proxy_from_env" feature 👍