Pluggable service discovery + load balancing for legacy systems.
Plumber is an LD_PRELOAD hooking library for Discotech, providing lazy initialization and hooks of connect, sendto and getaddrinfo.
getaddrinfo: does hostname match a pattern? return magic IP
connect/sendto: is ip magic? perform callback fetcher
Linux/FreeBSD:
DISCO_CONF=/path/to/discotech.conf.json \
LD_PRELOAD=target/debug/libplumber.so \
$PROGRAM
OSX:
DISCO_CONF=/path/to/discotech.conf.json \
DYLD_INSERT_LIBRARIES=/abs/path/to/libplumber.so \
DYLD_FORCE_FLAT_NAMESPACE=YES \
$PROGRAM