{"id":17134552,"url":"https://github.com/tiagocavalcante/path_finder","last_synced_at":"2025-07-25T12:31:35.802Z","repository":{"id":125720291,"uuid":"519404438","full_name":"TiagoCavalcante/path_finder","owner":"TiagoCavalcante","description":"Find non-looping paths in a graph","archived":true,"fork":false,"pushed_at":"2023-01-06T23:43:18.000Z","size":11,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-24T06:16:54.405Z","etag":null,"topics":["computer-science","graph","path-finding"],"latest_commit_sha":null,"homepage":"https://crates.io/crates/path_finder","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"cc0-1.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/TiagoCavalcante.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-07-30T03:04:56.000Z","updated_at":"2024-11-21T17:36:17.000Z","dependencies_parsed_at":null,"dependency_job_id":"984dca7c-17dd-47c6-9b8b-a3922f76181e","html_url":"https://github.com/TiagoCavalcante/path_finder","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/TiagoCavalcante/path_finder","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TiagoCavalcante%2Fpath_finder","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TiagoCavalcante%2Fpath_finder/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TiagoCavalcante%2Fpath_finder/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TiagoCavalcante%2Fpath_finder/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TiagoCavalcante","download_url":"https://codeload.github.com/TiagoCavalcante/path_finder/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TiagoCavalcante%2Fpath_finder/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267007463,"owners_count":24020257,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-07-25T02:00:09.625Z","response_time":70,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["computer-science","graph","path-finding"],"created_at":"2024-10-14T19:45:03.706Z","updated_at":"2025-07-25T12:31:35.779Z","avatar_url":"https://github.com/TiagoCavalcante.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# path_finder\n\nFind non-looping paths in a graph\n\n## How to install?\n\n```sh\ncargo install path_finder\n```\n\n## How to use?\n\nThe graph is represented as a symmetrical square matrix with zeros for unconnected vertices and ones for connected vertices.\n\nFor example, the following graph\n\n![3-vertex graph](https://user-images.githubusercontent.com/62714153/181908761-53dcf94a-a474-4bfe-b64f-8fe9d01f16c4.png)\n\nIs going to be represented with the following matrix:\n$$\\LARGE{\\begin{bmatrix} 0 \u0026 1 \u0026 0 \\\\\\ 1 \u0026 0 \u0026 1 \\\\\\ 0 \u0026 1 \u0026 0 \\end{bmatrix}}$$\n\nNote that the diagonal of the matrix is filled with zeros because a vertex doesn't connect to itself.\n\nThe first input of the program is the start vertex, the second is the end vertex and the third is the matrix.\n\nThe output are all the paths from the start to the end vertex that don't repeat any vertex.\n\nFor example, for discovering the paths from vertex $0$ to vertex $2$ you would execute:\n\n```sh\npath_finder\n0 2\n0 1 0\n1 0 1\n0 1 0\n[0, 1, 2]\n```\n\n## How fast is it?\n\nJust to you have an idea, this is a benchmark:\n\n```sh\ntime echo \"0 9\n0 1 1 1 1 1 1 1 1 1\n1 0 1 1 1 1 1 1 1 1\n1 1 0 1 1 1 1 1 1 1\n1 1 1 0 1 1 1 1 1 1\n1 1 1 1 0 1 1 1 1 1\n1 1 1 1 1 0 1 1 1 1\n1 1 1 1 1 1 0 1 1 1\n1 1 1 1 1 1 1 0 1 1\n1 1 1 1 1 1 1 1 0 1\n1 1 1 1 1 1 1 1 1 0\" | path_finder\n[0, 1, 9]\n[0, 1, 2, 9]\n[0, 1, 2, 8, 9]\n...\n[0, 8, 7, 9]\n[0, 8, 9]\n[0, 9]\n\nreal    0m1.054s\nuser    0m0.143s\nsys     0m0.186s\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftiagocavalcante%2Fpath_finder","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftiagocavalcante%2Fpath_finder","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftiagocavalcante%2Fpath_finder/lists"}