I've never used libp2p. When ported to zig it could possibly run on a small embedded system, say something like a ESP32? What requirements RAM/flash am I looking at, for a minimal system?

Yes, there is already a Rust version (https://github.com/libp2p/rust-libp2p) that behaves well at this level but I think we can reach a higher level of performance on this point with Zig. Also, if you look at the long term roadmap of libp2p (https://github.com/libp2p/specs/blob/master/ROADMAP.md), the mobile devices and IoT integrations for example are part of the considerations.