#service-discovery #dns #distributed #ffi #ld-preload

plumber

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

7 releases

Uses old Rust 2015

0.0.7 Aug 28, 2015
0.0.6 Aug 20, 2015

#8 in #ld-preload

22 downloads per month
Used in srv-shim

Apache-2.0

14KB
388 lines

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

Dependencies

~330–560KB