nxcypher-networkit
Copyright 2026 Gregorio Momm

This product includes software developed by the following projects and individuals:

================================================================================

petgraph - Graph data structure library
Copyright (c) 2015-2024 bluss and petgraph contributors
License: MIT OR Apache-2.0
https://github.com/petgraph/petgraph

This product uses petgraph for the PropertyGraph backend implementation.

================================================================================

NetworKit - Network analysis framework
Copyright (c) 2013-2024 NetworKit contributors
License: MIT
https://networkit.github.io/

This product includes algorithm implementations ported from NetworKit C++ to pure Rust.
The NetworKitRust backend is inspired by NetworKit's high-performance graph data structures.

Algorithms ported (reimplemented in Rust, not copied code):
- BFS (Breadth-First Search)
- DFS (Depth-First Search)
- Dijkstra's shortest path
- Connected components
- PageRank
- Betweenness centrality
- Closeness centrality
- Degree centrality
- Harmonic centrality
- Eigenvector centrality
- Katz centrality
- SSSP (Single-Source Shortest Path)
- APSP (All-Pairs Shortest Path)
- Weakly connected components
- Strongly connected components (Tarjan's algorithm)
- Bridge detection
- Articulation point detection
- Topological sort

These algorithms are industry-standard graph algorithms, and our implementations
are based on the algorithmic descriptions and design patterns from NetworKit,
adapted for Rust idioms and the Cypher query language.

================================================================================

rustworkx-core - IBM Qiskit graph algorithm library
Copyright (c) 2018-2024 IBM and rustworkx contributors
License: Apache-2.0
https://github.com/Qiskit/rustworkx

This product uses rustworkx-core for the RustworkxCore backend implementation,
providing access to 40+ enterprise-grade graph algorithms developed by the
IBM Qiskit team for quantum computing workflows.

================================================================================

graphrs - Rust graph library with community detection
Copyright (c) 2021-2024 Malcolm Reid and graphrs contributors
License: MIT
https://github.com/malcolmvr/graphrs

This product uses graphrs for the graphrs backend implementation,
providing community detection algorithms including Louvain and Leiden methods.

================================================================================

openCypher Test Compatibility Kit (TCK)
Copyright (c) 2015-2024 Neo4j, Inc. and openCypher contributors
License: Apache-2.0
https://github.com/opencypher/openCypher

This product includes test scenarios from the openCypher TCK to validate
Cypher query language compatibility.

================================================================================

Third-Party Algorithm References

The following algorithms are implementations based on published academic work
and are in the public domain or their patents have expired:

- Dijkstra's Algorithm (1959) - Edsger W. Dijkstra
  "A note on two problems in connexion with graphs"

- PageRank (1998) - Larry Page, Sergey Brin, Rajeev Motwani, Terry Winograd
  "The PageRank Citation Ranking: Bringing Order to the Web"

- Tarjan's Strongly Connected Components (1972) - Robert Tarjan
  "Depth-first search and linear graph algorithms"

- Betweenness Centrality (2001) - Ulrik Brandes
  "A faster algorithm for betweenness centrality"

These implementations are based on the algorithmic descriptions in the cited
papers and are not derived from any copyrighted source code.

================================================================================

Dependencies

This product depends on the following Rust crates, each with their own license:

Graph libraries:
- petgraph (MIT OR Apache-2.0) - Core graph data structure
- rustworkx-core (Apache-2.0) - IBM Qiskit graph algorithms
- graphrs (MIT) - Community detection algorithms

Other dependencies:
- cucumber (MIT OR Apache-2.0) - TCK test framework
- chrono (MIT OR Apache-2.0) - Temporal types and operations
- chrono-tz (MIT OR Apache-2.0) - Timezone support
- indexmap (MIT OR Apache-2.0) - Ordered maps
- rustc-hash (MIT OR Apache-2.0) - Fast hashing
- async-trait (MIT OR Apache-2.0) - Async traits
- futures (MIT OR Apache-2.0) - Async runtime
- thiserror (MIT OR Apache-2.0) - Error handling
- serde (MIT OR Apache-2.0) - Serialization
- serde_json (MIT OR Apache-2.0) - JSON support
- bincode (MIT) - Binary serialization
- regex (MIT OR Apache-2.0) - Regular expressions
- pest (MIT OR Apache-2.0) - Parser generator
- pest_derive (MIT OR Apache-2.0) - Parser macros

For a complete list of dependencies and their licenses, run:
  cargo tree --format "{p} {l}"

All dependencies use MIT or Apache-2.0 licenses, which are compatible with
this project's Apache-2.0 license.

================================================================================

Cypher® is a registered trademark of Neo4j, Inc.

This project implements a Cypher query language processor but is not affiliated
with, endorsed by, or sponsored by Neo4j, Inc.

================================================================================
