Go to file
2024-05-02 19:14:36 +01:00
src Feature: Now a library as well as a binary 2024-05-02 19:08:36 +01:00
.gitignore Initial Commit 2024-05-02 11:59:51 +01:00
Cargo.lock Initial Commit 2024-05-02 11:59:51 +01:00
Cargo.toml Updated metadata for cargo publishing 2024-05-02 19:12:41 +01:00
License Documentation: Added ReadMe and License 2024-05-02 17:17:42 +01:00
ReadMe.md Updated ReadMe 2024-05-02 19:14:36 +01:00

PageRank Algorithm Implementation

This project implements the PageRank algorithm in Rust using a graph data structure. PageRank is a link analysis algorithm used by Google Search to rank web pages in their search engine results. It assigns a numerical weighting to each element of a hyperlinked set of documents, such as the World Wide Web, with the purpose of measuring its relative importance within the set. This README provides an overview of the project structure and how to use it.

How to Use

To use this PageRank implementation, follow these steps:

  1. Clone the repository or copy the provided code into your Rust project.
  2. Ensure you have Rust installed on your system. If not, you can download it from the official Rust website.
  3. Import the necessary modules:
use page_rank::Graph;
  1. Define the main function and initialize the graph:
fn main() {
    let mut pages: Graph<char> = Graph::new();
    // Add pages and links here
  1. Add pages to the graph using the add_page method:
// Add more pages as needed
  1. Add links between pages using the add_link method:
pages.add_link('A', 'E');
pages.add_link('B', 'A');
// Add more links as needed
  1. Run the PageRank algorithm by calling the page_rank method:
pages.page_rank(40); // Specify the depth of the algorithm
  1. Retrieve and print the sorted PageRank scores:
for (page, score) in pages.get_sorted_scores() {
    println!("{page} => {score:.2}")

Project Structure

  • main function: Entry point of the program where the graph is initialized and the PageRank algorithm is executed.
  • Graph struct: Represents the graph data structure containing nodes and their connections.
  • Node struct: Represents a node in the graph, storing incoming and outgoing links along with their scores.
  • Methods:
    • new: Initializes a new graph or node.
    • add_page: Adds a page to the graph.
    • add_link: Adds a link between two pages.
    • page_rank: Executes the PageRank algorithm to calculate scores.
    • get_sorted_scores: Retrieves the sorted PageRank scores.


This project has no external dependencies beyond the standard Rust library.

About PageRank Algorithm

PageRank is an algorithm used by search engines to rank web pages in their search results. It works by counting the number and quality of links to a page to determine a rough estimate of the website's importance. Pages with higher PageRank are more likely to appear at the top of search results.


This project is licensed under the MIT License. Feel free to use and modify it according to your needs. If you find any issues or have suggestions for improvements, please create an issue or pull request on the GitHub repository.