Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/mathieu-lala/rfc-graph

How the rfc are referencing each other ?
https://github.com/mathieu-lala/rfc-graph

Last synced: 17 days ago
JSON representation

How the rfc are referencing each other ?

Awesome Lists containing this project

README

        

# RFC Graph



Crates.io


docs

How the rfc are referencing each other ?

```rs
let (rfcs_linked, status) = rfc_graph::RfcGraph::get(5322, 3).await;
println!("{rfcs:?} {status:?}");
```

```sh
$> cargo run -- -h
rfc-graph 0.1.1

USAGE:
rfc-graph [OPTIONS] --root

OPTIONS:
-h, --help Print help information
--recursion-max Number of recursive iteration max [default: 2]
--root Number of the first rfc page in the graph (root)
-V, --version Print version information
```

Output generated:

* `cache.json` : a `HashMap>` with key is the rfc source and values are the rfc referenced
* `input.dot` : a representation of the graph generated following the [dot format](https://graphviz.org/doc/info/lang.html) by [graphviz](https://graphviz.org/)
* `output.svg` : a svg version of the dot graph

```sh
$> cargo run -- --root 5322 --recursion-max 1
```

![rfc 5322 one recursion](docs/5322-level-1.svg)

```sh
$> cargo run -- --root 5322 --recursion-max 2
```

![rfc 5322 two recursion](docs/5322-level-2.svg)

The referencing in the rfcs are exponential, so you **might not** want to run with `--recursion-max 4`

## Color

| Status | Color |
| --------------------------------- | ------ |
| Unknown | ⬜ |
| Draft | 🟥 |
| Informational | 🟧 |
| Experimental | 🟨 |
| Best Common Practice | 🟪 |
| Proposed Standard | 🟦 |
| Draft Standard (old designation) | :cyan: |
| Internet Standard | 🟩 |
| Historic | ⬛ |
| Obsolete | 🟫 |

Leaf node status is unknown as the web scraping is not done for them

## Next Features

I would like to add the following features :

* display the title of the rfc
* improve the graph view (for huge graph readability)
* render the status of the leaf node