A lightweight, modular Java framework for graph theory algorithms with one-line application and custom engine support.
Erdos is a lightweight, modular graph-theoretic algorithms framework for Java that enables developers to apply complex graph algorithms with one line of code. It solves the problem of heavy, hard-to-use graph libraries by offering a simple, production-proven alternative with support for custom graph engines.
Java developers working on projects that require graph algorithms, such as task scheduling, network analysis, or data processing, including Android application developers needing graph-based worker managers.
Developers choose Erdos for its ease of use, modular design allowing custom engine optimization, and comprehensive built-in algorithms without the overhead and opinionated constraints of other Java graph frameworks.
Modular and modern graph-theory algorithms framework in Java
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Allows custom graph engine implementations by extending AbstractGraphEngine, enabling runtime optimization for specific use cases like edge query performance.
Includes BFS, DFS, topological sort, SCC, MST, and shortest path algorithms accessible with simple API calls, as shown in the one-line code examples.
Designed as a low-overhead alternative to heavier libraries and has been used in commercial Android projects, ensuring reliability for real-world applications.
Supports older Java versions, making it suitable for legacy systems or projects with version constraints, as stated in the README.
The README admits that an adjacency matrix engine is planned for the future, limiting memory-efficient options for dense graphs where queries are small.
Focuses on core algorithms; lacks built-in support for graph visualization, persistence, or dynamic analytics beyond the provided algorithms.
As a niche framework, it has fewer contributors and less community support compared to established libraries like JGraphT, which can affect long-term maintenance and troubleshooting.