A clustering library that learned to let go
A once-comprehensive Python/C++ data mining toolkit abandoned in 2021, still sitting on PyPI with 1,200+ stars.

What it does
pyclustering was a dual-language data mining library offering Python and C++ implementations of clustering algorithms (K-Means, DBSCAN, OPTICS, X-Means, etc.), oscillatory neural networks, and even graph coloring. The C++ backend could be toggled with a ccore flag for performance, falling back to pure Python on unsupported platforms.
The interesting bit
The breadth is almost archaeological: 25+ clustering methods, Kuramoto-based oscillatory networks, Hodgkin-Huxley models, and LEGION networks for image segmentation. Many algorithms had both Python and C++ implementations — a genuine engineering effort, not just wrappers around existing libraries.
Key highlights
- Dual implementations: Python and C++ for most core algorithms, switchable at runtime via
ccore=True/False - Unusual coverage: oscillatory networks (Sync, SyncPR, SyncSegm), PCNN, and graph coloring alongside standard clustering
- Published in JOSS (2019) with proper citation support
- Supports Python 3.6+ and C++14, cross-platform (Linux, Windows, macOS)
Caveats
- Abandoned since 2021: author explicitly states “no further maintenance, issue addressing, or feature development”
- Several algorithms (BANG, BIRCH, CLARANS, EMA, Sync-SOM, all graph coloring, some neural nets) lack C++ implementations
- Version 0.11.dev appears to be the final state
Verdict
Worth studying if you’re researching clustering algorithm implementations or need a reference for oscillatory network code — but do not build production systems on it. For active alternatives, the author themselves recommends looking elsewhere.