plumber 0.0.7

plumber is a shim that adds pluggable service discovery to legacy systems without modifying their code.
Documentation

Plumber

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

Usage

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