Skip to content

Commit

Permalink
Merge pull request #3 from AloizioMacedo/update-readme-and-contributi…
Browse files Browse the repository at this point in the history
…ng-guidelines

Update readme and contributing guidelines
  • Loading branch information
AloizioMacedo authored Jan 1, 2024
2 parents f911f1b + a506e56 commit 558a297
Show file tree
Hide file tree
Showing 3 changed files with 38 additions and 3 deletions.
8 changes: 8 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# Guidelines

Feel free to open issues and PRs at your convenience. When contributing via PRs,
follow the guidelines below:

- [ ] Add a description for the PR.
- [ ] Make sure public functions have doc-tests and are properly documented.
- [ ] Add tests and retain full coverage.
31 changes: 29 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,35 @@
![Linting](https://github.com/AloizioMacedo/yagraphc/actions/workflows/linting.yml/badge.svg?branch=master)
![Doc Tests](https://github.com/AloizioMacedo/yagraphc/actions/workflows/doctests.yml/badge.svg?branch=master)

Graph library that aims to implement the main graph algorithms and functionalities.
Crate for working with Graph data structures and common algorithms on top of it.

The main focus of this crate is **functionality**. Performance is appreciated but
not the main priority. It is intended to fill the gaps in terms of what is not
currently available in the ecosystem. As an example, it is not easy to find
a graph crate which finds a cycle basis of an undirected graph, while this
is trivial in Python's [NetworkX](https://networkx.org/).

## Example

```rust
use yagraphc::prelude::*;
use yagraphc::graph::UnGraph;

let mut graph = UnGraph::default();

graph.add_edge(1, 2, 1);
graph.add_edge(2, 3, 3);
graph.add_edge(3, 4, 2);
graph.add_edge(1, 4, 10);

assert_eq!(graph.dijkstra_with_path(1, 4), Some((vec![1, 2, 3, 4], 6)));
```

## Goals before 1.0.0

(Soon...)
The development will keep moving towards the following objectives. Once those
are reached, we will reevaluate how to move forward.

- Main path-finding algorithms implemented
- Main max flow / min cut algorithms implemented
- Full test coverage
2 changes: 1 addition & 1 deletion src/lib.rs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
//! # Introduction
//! # YAGraphC
//!
//! Crate for working with Graph data structures and common algorithms on top of it.
//!
Expand Down

0 comments on commit 558a297

Please sign in to comment.