The docs currently say: "Crust implements several NAT traversal techniques such as hole punching and use of IGD."
Since understanding the nat traversal techniques used is critical to understanding whether or not this package will work in a particular use case, please document all techniques used, ideally also summarizing the cases that are and aren't covered by those techniques. That kind of documentation is critical for understanding the expected behavior of this code.
The docs currently say: "Crust implements several NAT traversal techniques such as hole punching and use of IGD."
Since understanding the nat traversal techniques used is critical to understanding whether or not this package will work in a particular use case, please document all techniques used, ideally also summarizing the cases that are and aren't covered by those techniques. That kind of documentation is critical for understanding the expected behavior of this code.