igraph (http://igraph.org/) - 1 classe para direcionado e não direcionado - neighbors(v, mode={in, out, all}) - incident(v, mode={in, out, all}) - bfs e outros métodos aceitam mode como parâmetro - complicado em rust (não existe valor padrão para parâmetro) - pode diminir a eficiência graph-tool (https://graph-tool.skewed.de/) - 1 classe para direcionado e não direcionado - all_neighbors, in_neighbors, out_neighbors - all_edges, in_edges, out_edges - para não direcionado, in_ não retorna nada Graphs.jl (https://github.com/JuliaLang/Graphs.jl) - 1 classe para direcionado e não direcionado - in_neighbors, out_neighbors (retornam o mesmo para não direcionado) - in_edges, out_edges (retornam o mesmo para não direcionado) JgraphT (https://github.com/jgrapht/jgrapht) - classes separadas - muito complicado! Lemon (https://lemon.cs.elte.hu/trac/lemon) - classes separadas - Arc differente de Edge - IncEdgeIt, InArcIt, OutArcIt NetworkX (https://networkx.github.io/) Boost Graph (http://www.boost.org/doc/libs/1_59_0/libs/graph/doc/index.html)