Today I had a problem with edges between the same two nodes overlapping, so that the labels also overlapped. I thought that the solution would be to use a d3 graph with curved edges (https://bl.ocks.org/mbostock/4600693).
I am not sure at this point how to add labels to a graph with curved edges. The syntax looks quite different.
Thus, I also investigated sigma.js which offers more functionality.