2026-10-19 00:12:36 -04:00
|
|
|
# libcess
|
|
|
|
|
|
|
|
|
|
`libcess` is the Cesspool networking library used by the Dat (`ddat`) and
|
|
|
|
|
Cabal-compatible (`cable`) applications. It owns the UDP transport, peer
|
|
|
|
|
discovery/rendezvous protocol, bootstrap client/server behavior, and the
|
|
|
|
|
persistent Ed25519 identity used by the Cesspool network.
|
|
|
|
|
|
|
|
|
|
Dat and Cable are applications built on this base. Archive storage remains
|
|
|
|
|
SLEEP; room/feed behavior remains in Cable. libcess does not depend on either
|
|
|
|
|
application or their storage layers.
|
|
|
|
|
|
|
|
|
|
## Build
|
|
|
|
|
|
|
|
|
|
Requires a C99 compiler, GNU make, and libsodium development files.
|
|
|
|
|
|
|
|
|
|
```sh
|
|
|
|
|
make
|
|
|
|
|
make install
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
Build artifacts stay under `libcess/build`. Set `PREFIX` or `DESTDIR` for a
|
|
|
|
|
staged install. The standalone package reads `libcess/NETWORK_PROTOCOL`;
|
2026-10-19 06:57:18 +00:00
|
|
|
the full dat-thang build uses the project-root `NETWORK_PROTOCOL` file so Dat
|
2026-10-19 00:12:36 -04:00
|
|
|
and Cable share the same Cesspool network identity.
|
|
|
|
|
|
|
|
|
|
The bootstrap service is `cesspool-bootstrap`. It only provides discovery;
|
|
|
|
|
it does not relay chat or archive payloads. Supply `--advertise HOST:PORT`
|
|
|
|
|
for the address clients should use, and make that UDP port reachable through
|
|
|
|
|
the host firewall and edge router. No external address lookup is performed.
|
|
|
|
|
|
|
|
|
|
See [the public API](include/cesspool.h), [network API](include/cess_net.h),
|
|
|
|
|
and [bootstrap man page](docs/cesspool-bootstrap.1).
|