Skip to content

dioptra-io/caracal

Repository files navigation

🐱 Caracal

Coverage Documentation Docker Status Tests Status

Caracal is a stateless ICMP/UDP IPv4/v6 Paris traceroute and ping engine written in modern C++. It runs on BSD, Linux and macOS, on x86-64 and ARM64 systems.

Caracal reads probe specifications, sends the corresponding probe packets at the specified rate, parse the eventual replies and outputs them in CSV format.

Demonstration of the prober usage

Quickstart

Docker

The easiest way to run Caracal is through Docker:

docker run ghcr.io/dioptra-io/caracal --help

On macOS, please use colima instead of Docker for Mac which mangles the IP header.

Nix

If you're using the Nix package manager, you can use the following command:

nix run github:dioptra-io/caracal -- --help

Documentation

Please refer to the documentation for more information.

Authors

Caracal is developed and maintained by the Dioptra group at Sorbonne Université in Paris, France. The initial version has been written by Kévin Vermeulen, with subsequents refactoring and improvements by Maxime Mouchet and Matthieu Gouel.

License & Dependencies

This software is released under the MIT license, in accordance with the license of its dependencies.

Name License Usage
Catch2 Boost Software License 1.0 Unit tests and benchmarks
cxxopts MIT CLI arguments parsing
liblpm 2-clause BSD Longest-prefix matching
libtins 2-clause BSD Packet parsing
spdlog MIT Logging