Pathfinder is a light-weight service discovery system for embedded or cloud use.
This repository contains tpafd
, a footprint-optimized server-side
implementation of the Pathfinder
protocol
version 2.
tpafd is implemented in C, and is designed to have very few dependencies.
- libjansson
- libxcm
- Automake
- libevent
To build and install tpafd, run:
autoreconf -i && ./configure && make install
The tpaf repository includes unit tests. To run these tests, issue:
make check
To run the test suites in valgrind, supply --enable-valgrind
to
the configure script.
The unit tests have a limited scope, and primarily target low-level data structures and other things that lends themselves to unit testing.
To address domain logic correctness, tpafd relies on the test suite found in the Python-based Pathfinder server and the libpaf client library.
To run the server-level tests, check out and change the current
working directory to the paf
repository, and run:
make check TESTOPTS="--server tpaf"
The Pathfinder application protocol specification, in particular the data model section, includes a lot of useful information on how a Pathfinder service discovery system works.