Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

NetworKit is a growing open-source toolkit for large-scale network analysis.

License

NotificationsYou must be signed in to change notification settings

networkit/networkit

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9,309 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation


NetworKit - Large-scale Network Analysis

NetworKit

High-performance tools for large-scale network analysis
Explore the docs »

Try Demo ·Report Bug ·Request Feature

Table of Contents
  1. About The Project
  2. Getting Started
  3. Usage
  4. Building from Source
  5. Documentation
  6. Contributing
  7. License
  8. Contact
  9. Publications

About The Project

NetworKit is an open-source toolkit for high-performance network analysis, designed to handle large networks ranging from thousands to billions of edges. Built with efficiency and scalability at its core, NetworKit implements parallel graph algorithms that leverage multicore architectures to compute standard measures of network analysis.

As both a production tool and a research testbed for algorithm engineering, NetworKit includes novel algorithms from recent publications alongside battle-tested implementations. The toolkit is available as a Python module with high-performance C++ algorithms exposed through Cython, combining Python's interactivity and rich ecosystem with C++'s computational efficiency.

(back to top)

Key Features

  • Scalable: Analyze networks with billions of edges
  • Fast: Parallel algorithms utilizing multicore architectures
  • Comprehensive: Wide range of network analysis algorithms
  • Interactive: Python interface with Jupyter notebook support
  • Flexible: Available as Python module or standalone C++ library
  • Research-ready: Includes state-of-the-art algorithms from recent publications

(back to top)

Getting Started

Installation

Python Module

For most users, NetworKit can be installed directly via package managers with no additional requirements other than Python 3.9+.

Package ManagerCommand
pippip install networkit
condaconda install -c conda-forge networkit
brewbrew install networkit
spackspack install py-networkit

C++ Core Library Only

If you only need the C++ core without Python bindings:

Package ManagerCommand
condaconda install -c conda-forge libnetworkit
brewbrew install libnetworkit
spackspack install libnetworkit

More platform-specific installation instructions can be found in ourgetting started guide.

Nightly builds

If you are interested in the most recent build of NetworKit, you can use the nightly repository ontest.pypi.org.Published packages are based on pushes to themaster-branch.

Package ManagerCommand
pippip install -i https://test.pypi.org/simple/ networkit-nightly

(back to top)

Usage

Here's a quick example showing how to generate a random hyperbolic graph with 100k nodes and detect communities:

fromnetworkit.generatorsimportHyperbolicGeneratorfromnetworkit.communityimportdetectCommunities# Generate a random hyperbolic graphg= (HyperbolicGenerator(1e5)    .generate())# Detect communitiesdetectCommunities(g,inspect=True)

Output:

PLM(balanced,pc,turbo) detected communities in 0.14577102661132812 [s]solution properties:-------------------  -----------# communities        4536min community size      1max community size   2790avg. community size    22.0459modularity              0.987243-------------------  -----------

More Examples

Compute PageRank to rank nodes by importance:

fromnetworkit.centralityimportPageRankpr= (PageRank(g)    .run())top_nodes=pr.ranking()[:10]

Analyze graph structure with connected components:

fromnetworkit.componentsimportConnectedComponentscc= (ConnectedComponents(g)    .run())print(f"Components:{cc.numberOfComponents()}")print(f"Largest:{max(cc.getComponentSizes().values())}")

For comprehensive examples and tutorials, explore ourinteractive notebooks, especially theNetworKit User Guide. You can try NetworKit directly in your browser using ourBinder instance.

(back to top)

Building from Source

Prerequisites

Building from source requires:

  • C++ Compiler:g++ (>= 10.0),clang++ (>= 11.0), or MSVC (>= 14.30)
  • OpenMP: For parallelism (usually included with compiler)
  • Python: 3.9 or higher with development libraries
    • Debian/Ubuntu:apt-get install python3-dev
    • RHEL/CentOS:dnf install python3-devel
    • Windows:Official installer
  • CMake: Version 3.6 or higher
  • Build System:Make orNinja

Python Module

git clone https://github.com/networkit/networkit networkitcd networkitpip install cython numpy setuptools wheelpython setup.py build_ext [-jX]pip install -e.

The-jX option specifies the number of threads for compilation (e.g.,-j4 for 4 threads). If omitted, it uses all available CPU cores.

C++ Core Library

mkdir build&&cd buildcmake ..make -jXsudo make install

Using NetworKit in Your C++ Project

After installation, include NetworKit headers:

#include<networkit/graph/Graph.hpp>

Compile your project:

g++ my_file.cpp -lnetworkit

Running Unit Tests

To build and run tests:

cmake -DNETWORKIT_BUILD_TESTS=ON ..make./networkit_tests --gtest_filter=CentralityGTest.testBetweennessCentrality

Building with Sanitizers

For debugging with address/leak sanitizers:

cmake -DNETWORKIT_WITH_SANITIZERS=leak ..

(back to top)

Documentation

The complete documentation is available online atnetworkit.github.io.

(back to top)

Contributing

We welcome contributions to NetworKit! Whether you're fixing bugs, adding features, or improving documentation, your help makes NetworKit better for everyone.

  1. Check ourdevelopment guide for instructions
  2. Browseopen issues or open a new one
  3. Fork the repository and create your feature branch
  4. Submit a pull request

For support, join ourmailing list.

(back to top)

License

Distributed under theMIT License. We ask that you cite us if you use NetworKit in your research (see ourtechnical report andpublications page).

(back to top)

Contact

(back to top)

Publications

NetworKit has been used in numerous research projects. Visit ourpublications page for a complete list of papers about NetworKit, algorithms implemented in NetworKit, and research using NetworKit.

(back to top)

Credits

NetworKit is developed by a dedicated team of researchers and contributors. View the full list of contributors on ourcredits page.

(back to top)

Packages

No packages published

Contributors64


[8]ページ先頭

©2009-2026 Movatter.jp