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.
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.
If you're using the Nix package manager, you can use the following command:
nix run github:dioptra-io/caracal -- --help
Please refer to the documentation for more information.
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.
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 |