NetworKit is a toolbox for high-performance network analysis
Project description
NetworKit
High-performance tools for large-scale network analysis
Explore the docs »
Try Demo
·
Report Bug
·
Request Feature
Table of Contents
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.
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
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 Manager | Command |
|---|---|
| pip | pip install networkit |
| conda | conda install -c conda-forge networkit |
| brew | brew install networkit |
| spack | spack install py-networkit |
C++ Core Library Only
If you only need the C++ core without Python bindings:
| Package Manager | Command |
|---|---|
| conda | conda install -c conda-forge libnetworkit |
| brew | brew install libnetworkit |
| spack | spack install libnetworkit |
More platform-specific installation instructions can be found in our getting started guide.
Usage
Here's a quick example showing how to generate a random hyperbolic graph with 100k nodes and detect communities:
from networkit.generators import HyperbolicGenerator
from networkit.community import detectCommunities
# Generate a random hyperbolic graph
g = (
HyperbolicGenerator(1e5)
.generate()
)
# Detect communities
detectCommunities(g, inspect=True)
Output:
PLM(balanced,pc,turbo) detected communities in 0.14577102661132812 [s]
solution properties:
------------------- -----------
# communities 4536
min community size 1
max community size 2790
avg. community size 22.0459
modularity 0.987243
------------------- -----------
More Examples
Compute PageRank to rank nodes by importance:
from networkit.centrality import PageRank
pr = (
PageRank(g)
.run()
)
top_nodes = pr.ranking()[:10]
Analyze graph structure with connected components:
from networkit.components import ConnectedComponents
cc = (
ConnectedComponents(g)
.run()
)
print(f"Components: {cc.numberOfComponents()}")
print(f"Largest: {max(cc.getComponentSizes().values())}")
For comprehensive examples and tutorials, explore our interactive notebooks, especially the NetworKit User Guide. You can try NetworKit directly in your browser using our Binder instance.
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
- Debian/Ubuntu:
- CMake: Version 3.6 or higher
- Build System: Make or Ninja
Python Module
git clone https://github.com/networkit/networkit networkit
cd networkit
pip install cython numpy setuptools wheel
python 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 build
cmake ..
make -jX
sudo 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 ..
Documentation
The complete documentation is available online at networkit.github.io.
Contributing
We welcome contributions to NetworKit! Whether you're fixing bugs, adding features, or improving documentation, your help makes NetworKit better for everyone.
- Check our development guide for instructions
- Browse open issues or open a new one
- Fork the repository and create your feature branch
- Submit a pull request
For support, join our mailing list.
License
Distributed under the MIT License. We ask that you cite us if you use NetworKit in your research (see our technical report and publications page).
Contact
- Issues: Check our issues section for existing discussions or open a new issue
- Mailing List: Subscribe here to stay updated
Publications
NetworKit has been used in numerous research projects. Visit our publications page for a complete list of papers about NetworKit, algorithms implemented in NetworKit, and research using NetworKit.
Credits
NetworKit is developed by a dedicated team of researchers and contributors. View the full list of contributors on our credits page.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file networkit-11.2.tar.gz.
File metadata
- Download URL: networkit-11.2.tar.gz
- Upload date:
- Size: 7.0 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6dad0625bd795591ad46820a69c927b749c9ac34368b8100dbfb818d2d20b08d
|
|
| MD5 |
770568fbf4ac9d0bcb5e6f84d1e413c8
|
|
| BLAKE2b-256 |
ab9b9237fe5e53bd88e5f797d12fe80c4d0154c5202634873b0a4b042f7d3970
|
File details
Details for the file networkit-11.2-cp313-cp313-win_amd64.whl.
File metadata
- Download URL: networkit-11.2-cp313-cp313-win_amd64.whl
- Upload date:
- Size: 29.8 MB
- Tags: CPython 3.13, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3e2ba9199a981f334adaa3185301ddd211aeb6088cf2ec38027cc8ccd9e0b328
|
|
| MD5 |
646dc14eca064d60d9ea7dff62d63533
|
|
| BLAKE2b-256 |
32195f13b2edecf5575f434fa1944ef9a94a61feb759b07f22b6a8f91f30d591
|
File details
Details for the file networkit-11.2-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.
File metadata
- Download URL: networkit-11.2-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
- Upload date:
- Size: 11.0 MB
- Tags: CPython 3.13, manylinux: glibc 2.24+ ARM64, manylinux: glibc 2.28+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.19
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cb35ab1368f86c4b764fe70a94d5d3b2d30eee70618c9832e5ddbb19db5fdb59
|
|
| MD5 |
be56af2246b56dd17909430398b36826
|
|
| BLAKE2b-256 |
0514978d59e4153c4213ea4e9112f72e7c4ca90d887f8b5b7eb2ec4e32b4c699
|
File details
Details for the file networkit-11.2-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.
File metadata
- Download URL: networkit-11.2-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
- Upload date:
- Size: 11.0 MB
- Tags: CPython 3.13, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4fe32f6d80046550e058cfb9b9d15648ff0e2f3e9de7b8106b4d385f00697fb6
|
|
| MD5 |
63fd54681f41b7c4bd878696117a7d56
|
|
| BLAKE2b-256 |
298f58ab6200528af0d1cf8bd4ba748fc930b111ce68df0bd7aa79c006efbe61
|
File details
Details for the file networkit-11.2-cp313-cp313-macosx_15_0_x86_64.whl.
File metadata
- Download URL: networkit-11.2-cp313-cp313-macosx_15_0_x86_64.whl
- Upload date:
- Size: 10.1 MB
- Tags: CPython 3.13, macOS 15.0+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0db942c4eb51b8f7ee96d23a3b8d278fcaa65c2b39c567115141aa9965535830
|
|
| MD5 |
bb46a4a3467259f7f81d9474f3d64b8e
|
|
| BLAKE2b-256 |
35a457c358b8b810169c042db5c34dec5f5a8e9f2a47d5801ab7aae2d808c565
|
File details
Details for the file networkit-11.2-cp313-cp313-macosx_15_0_arm64.whl.
File metadata
- Download URL: networkit-11.2-cp313-cp313-macosx_15_0_arm64.whl
- Upload date:
- Size: 9.4 MB
- Tags: CPython 3.13, macOS 15.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
55c034c5741628c1dc54d64d8ea86be0ea6ff06a01ec445c8d78dd077ed7b544
|
|
| MD5 |
886090de791f23686794a09cdadb4487
|
|
| BLAKE2b-256 |
332b44e82a68ab771307bbac07ec3b589a651353405fe796c526961bcf2f8a00
|
File details
Details for the file networkit-11.2-cp312-cp312-win_amd64.whl.
File metadata
- Download URL: networkit-11.2-cp312-cp312-win_amd64.whl
- Upload date:
- Size: 29.8 MB
- Tags: CPython 3.12, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
36edff838daaa80a603ba375ce4df7a162e03f1cdf6c666dbc65a62807ad8fb2
|
|
| MD5 |
190661c4ac6c58b5a1239f1be3b83c9c
|
|
| BLAKE2b-256 |
22ea75b347c6430f67bf813c5f6e314a70de115bd4754678de14f5102672b5ad
|
File details
Details for the file networkit-11.2-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.
File metadata
- Download URL: networkit-11.2-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
- Upload date:
- Size: 11.0 MB
- Tags: CPython 3.12, manylinux: glibc 2.24+ ARM64, manylinux: glibc 2.28+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.19
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cb2b997f27148f301b2a12517d8ca606b7e86088279e1282fc24f651691c97c9
|
|
| MD5 |
f9716523e125097066fef699cad182a1
|
|
| BLAKE2b-256 |
f41da46b62f32e769fb7704cdc9d09937eea0ec8f9127b6c1ba1f609d3567f87
|
File details
Details for the file networkit-11.2-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.
File metadata
- Download URL: networkit-11.2-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
- Upload date:
- Size: 11.0 MB
- Tags: CPython 3.12, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a2227135f01856caf077928a3e5b27f0aeb5734f1bfa5174e8510f975b732ff6
|
|
| MD5 |
2ed1a10e38683da2d2a2eeca3bcb0ce2
|
|
| BLAKE2b-256 |
54cfadb5594fb1c06ed5f032fd618185d62721bf3380b8bbef5742df24e16ecb
|
File details
Details for the file networkit-11.2-cp312-cp312-macosx_15_0_x86_64.whl.
File metadata
- Download URL: networkit-11.2-cp312-cp312-macosx_15_0_x86_64.whl
- Upload date:
- Size: 10.1 MB
- Tags: CPython 3.12, macOS 15.0+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
53ae4298d13f7e13e3e362d5cc346954fccf516c9b2c525c02740840c7c338a1
|
|
| MD5 |
32ef2e92dba2c0d26cae56e18adc4332
|
|
| BLAKE2b-256 |
332b545886c4d00f11a123da492940517c2e739c14331e43df066d68a468cc3d
|
File details
Details for the file networkit-11.2-cp312-cp312-macosx_15_0_arm64.whl.
File metadata
- Download URL: networkit-11.2-cp312-cp312-macosx_15_0_arm64.whl
- Upload date:
- Size: 9.4 MB
- Tags: CPython 3.12, macOS 15.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b7bb7e034a087f0749b404ae7b9af2b125e00091adb33808e0f22cd6e6dcd6ef
|
|
| MD5 |
ef965235f9b4274370661940078ef03c
|
|
| BLAKE2b-256 |
9a688c66340ec8baf5405827c364d5ccdf5a97c044583a4f04578f36a1b09598
|
File details
Details for the file networkit-11.2-cp311-cp311-win_amd64.whl.
File metadata
- Download URL: networkit-11.2-cp311-cp311-win_amd64.whl
- Upload date:
- Size: 29.9 MB
- Tags: CPython 3.11, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
236fde0702644238ddf5c4916c326c6c6b550eea7df948c353dc4285adbbd459
|
|
| MD5 |
ca69eb721090f92c12b717833636a144
|
|
| BLAKE2b-256 |
377747b95b28684d7c5789ba77cad6bd582775dee4ee19e1130d3fa009a8ef38
|
File details
Details for the file networkit-11.2-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.
File metadata
- Download URL: networkit-11.2-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
- Upload date:
- Size: 11.0 MB
- Tags: CPython 3.11, manylinux: glibc 2.24+ ARM64, manylinux: glibc 2.28+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.19
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9a588b966623e078102e2f9e0f4634f76a410a23d2a061645c66b971dd24b9ef
|
|
| MD5 |
1aa8b5641d5b87b02913d74306257d7e
|
|
| BLAKE2b-256 |
03fd06b2b648e100b6ec1afa0a73e7faa024b42c6078441391b2bf9067e251d4
|
File details
Details for the file networkit-11.2-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.
File metadata
- Download URL: networkit-11.2-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
- Upload date:
- Size: 11.0 MB
- Tags: CPython 3.11, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
16beda1ae5d4992e3586375c709eb5e0d00c3067f6f80538525b413f5832a52c
|
|
| MD5 |
9c96a6e9f8d1ef541b1b3b044ec33cef
|
|
| BLAKE2b-256 |
f89b3175f3cfba9e7588a8e0aa63ffe9c9a818bd5cf999a84131c53e51219923
|
File details
Details for the file networkit-11.2-cp311-cp311-macosx_15_0_x86_64.whl.
File metadata
- Download URL: networkit-11.2-cp311-cp311-macosx_15_0_x86_64.whl
- Upload date:
- Size: 10.1 MB
- Tags: CPython 3.11, macOS 15.0+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0274416e1f6ab50ce142c9d6ddab0c5c95fe1ae1d4650dbdae98b1b52ec43d87
|
|
| MD5 |
b9832509b282d4b258a368105c0ee988
|
|
| BLAKE2b-256 |
81b422d39381326a74d3fb39ee9234576a206942f46d2f41628f0b9f54cae1ee
|
File details
Details for the file networkit-11.2-cp311-cp311-macosx_15_0_arm64.whl.
File metadata
- Download URL: networkit-11.2-cp311-cp311-macosx_15_0_arm64.whl
- Upload date:
- Size: 9.4 MB
- Tags: CPython 3.11, macOS 15.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2148fbfcd02a2126ec1e242fd8b9546516549fc5879415f3bd5c9370e88a968a
|
|
| MD5 |
3382e897e06667aa4173ab605d42507d
|
|
| BLAKE2b-256 |
1b58c38ba4fe56b83d357086b28b52376cfbcee32f126e8b81580279332a0cfa
|
File details
Details for the file networkit-11.2-cp310-cp310-win_amd64.whl.
File metadata
- Download URL: networkit-11.2-cp310-cp310-win_amd64.whl
- Upload date:
- Size: 29.9 MB
- Tags: CPython 3.10, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1763491d76aa0b4dd6b1b2676dbd9b9eb70198942575b5c45d7b81bcf5a31002
|
|
| MD5 |
e03733a9e6e44389200809466e953c78
|
|
| BLAKE2b-256 |
958a21f497f016086de19347f1aa61c5d1ff3cd9d2f123e275cf1bebbbdf9d8e
|
File details
Details for the file networkit-11.2-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.
File metadata
- Download URL: networkit-11.2-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
- Upload date:
- Size: 11.0 MB
- Tags: CPython 3.10, manylinux: glibc 2.24+ ARM64, manylinux: glibc 2.28+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.19
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
48a2a8f3b67f6d51faf48773016edeeeb99459e759a7b626826622244a2e62d8
|
|
| MD5 |
ef245eba16433bfca7a4229fc1b9c539
|
|
| BLAKE2b-256 |
0ba759e252b36d91c59936e6ab4929958732b825712e8c88fd0ab09149d0fd3b
|
File details
Details for the file networkit-11.2-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.
File metadata
- Download URL: networkit-11.2-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
- Upload date:
- Size: 11.0 MB
- Tags: CPython 3.10, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
597d35a5a87b8c83bb2b346c0bd781a810b923e2cf0a6b3a0370cca06e773436
|
|
| MD5 |
bfc3560bebd2c31fe8ffea6c5b2cf870
|
|
| BLAKE2b-256 |
18b8d456baa7f9e356746e2468b9b1a1d270d774b246c1f9536ea3efc640de4a
|
File details
Details for the file networkit-11.2-cp310-cp310-macosx_15_0_x86_64.whl.
File metadata
- Download URL: networkit-11.2-cp310-cp310-macosx_15_0_x86_64.whl
- Upload date:
- Size: 10.1 MB
- Tags: CPython 3.10, macOS 15.0+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
73962587ee1a8ccf8155977cab328115027e6ebcc846fe5df43ea2c78973d659
|
|
| MD5 |
fd38f5aae0a7e5b492447cd8849c84b0
|
|
| BLAKE2b-256 |
d395a7d2a7f54094800db4a8256dcc5091f70e8fdc3ec68a26585b885e709674
|
File details
Details for the file networkit-11.2-cp310-cp310-macosx_15_0_arm64.whl.
File metadata
- Download URL: networkit-11.2-cp310-cp310-macosx_15_0_arm64.whl
- Upload date:
- Size: 9.4 MB
- Tags: CPython 3.10, macOS 15.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9a4fcb83367c721c241216e67ce1c3578137e71ec593964e5dcd2853274ced41
|
|
| MD5 |
130333ec04a7e59ed52aaf98c7eedec3
|
|
| BLAKE2b-256 |
04a82e9856029964552884d8718113361ef2d87a53a771e1ebdbd61dd2fda483
|