Expand description
§leiden-rs
A Rust implementation of the Leiden algorithm for community detection in graphs, with optional adapters for gryf and petgraph.
The Leiden algorithm guarantees well-connected communities through three phases: local moving, refinement, and aggregation. It supports four quality functions: Modularity, CPM, RBConfiguration, and RBER.
§Quick Start
use leiden_rs::{GraphDataBuilder, Leiden, LeidenConfig};
let mut b = GraphDataBuilder::new(3);
b.add_edge(0, 1, 1.0).unwrap();
b.add_edge(1, 2, 1.0).unwrap();
let graph = b.build().unwrap();
let leiden = Leiden::new(LeidenConfig::default());
let result = leiden.run(&graph).expect("leiden failed");
println!("Found {} communities (quality: {:.4})", result.partition.num_communities(), result.quality);§Quality Functions
- Modularity:
Q = Σ_c [e_c/m - γ*(Σ_c/(2m))²]— the classic Newman-Girvan modularity - CPM:
H = Σ_c [e_c - γ * n_c*(n_c-1)/2]— avoids resolution limit, tunable via γ - RBConfiguration:
Q = Σ_c [e_c - γ * K_c²/(4m)]— Reichardt-Bornholdt with configuration null model - RBER:
Q = Σ_c [e_c - γ * p * n_c*(n_c-1)/2]— Reichardt-Bornholdt with Erdős-Rényi null model
Re-exports§
pub use error::LeidenError;pub use error::Result as LeidenResult;pub use graph::GraphData;pub use graph::GraphDataBuilder;pub use graph::MoveComponents;pub use hierarchy::HierarchicalOutput;pub use hierarchy::HierarchyLevel;pub use fluid_communities::FluidCommunities;pub use fluid_communities::FluidCommunitiesConfig;pub use fluid_communities::FluidCommunitiesOutput;pub use infomap::calc_codelength;pub use infomap::compute_flow;pub use infomap::compute_node_flows;pub use infomap::DeltaFlow;pub use infomap::FlowData;pub use infomap::Infomap;pub use infomap::InfomapConfig;pub use infomap::InfomapOutput;pub use infomap::MapEquation;pub use infomap::ModuleFlowData;pub use infomap::plogp;pub use leiden::Leiden;pub use leiden::LeidenConfig;pub use leiden::LeidenConfigBuilder;pub use leiden::LeidenOutput;pub use leiden::QualityType;pub use generators::generate_ba_graph;pub use generators::generate_er_graph;pub use generators::generate_er_graph_exact;pub use generators::generate_planted_partition;pub use generators::generate_sbm;pub use generators::generate_sbm_symmetric;pub use label_propagation::LabelPropagation;pub use label_propagation::LabelPropagationConfig;pub use label_propagation::LabelPropagationOutput;pub use lfr::generate_lfr_graph;pub use lfr::LfrConfig;pub use lfr::LfrGraph;pub use metrics::ami;pub use metrics::ari;pub use metrics::completeness;pub use metrics::conductance;pub use metrics::coverage;pub use metrics::fmi;pub use metrics::homogeneity;pub use metrics::internal_density;pub use metrics::nmi;pub use metrics::performance;pub use metrics::purity;pub use metrics::try_ami;pub use metrics::try_ari;pub use metrics::try_completeness;pub use metrics::try_fmi;pub use metrics::try_homogeneity;pub use metrics::try_nmi;pub use metrics::try_purity;pub use metrics::try_vi;pub use metrics::try_v_measure;pub use metrics::v_measure;pub use metrics::vi;pub use multiplex::run_multiplex;pub use multiplex::MultiplexConfig;pub use multiplex::MultiplexOutput;pub use output::CommunityDetectionOutput;pub use output::ToJson;pub use partition::Partition;pub use quality::Modularity;pub use quality::QualityFunction;pub use quality::RBConfiguration;pub use quality::CPM;pub use quality::RBER;pub use resolution::resolution_profile;pub use resolution::resolution_scan;pub use resolution::ResolutionEntry;pub use util::load_edgelist;pub use util::modularity as compute_modularity;pub use convert::gryf::from_gryf;pub use convert::gryf::from_gryf_directed;
Modules§
- convert
- Graph library adapters.
- error
- Error types for the Leiden algorithm.
- fluid_
communities - Fluid Communities algorithm for community detection.
- generators
- Random graph generators for benchmarking and testing.
- graph
- Graph data structures for the Leiden algorithm.
- hierarchy
- Hierarchical community detection output.
- infomap
- Infomap community detection algorithm — foundational data structures and PageRank flow.
- label_
propagation - Label Propagation algorithm for community detection.
- leiden
- Core Leiden algorithm implementation.
- lfr
- LFR benchmark graph generator.
- metrics
- Evaluation metrics for community detection.
- multiplex
- Multiplex/multilayer network community detection.
- output
- JSON serialization for community detection results.
- partition
- Community partition representation.
- quality
- Quality functions for community detection.
- resolution
- Resolution profile analysis for the Leiden algorithm.
- util
- Utility functions for loading and evaluating graphs.