#rfc #graph #data #parser #api

bin+lib rfc-graph

How the rfc are referencing each other

29 releases

0.4.3 Dec 19, 2022
0.3.11 Dec 19, 2022
0.3.10 Jun 14, 2022
0.1.2 Mar 8, 2022

#1229 in Development tools

Download history 76/week @ 2024-02-25 47/week @ 2024-03-03 12/week @ 2024-03-10

135 downloads per month

MIT license

74KB
265 lines

RFC Graph

How the rfc are referencing each other ?

let (rfcs_linked, status) = rfc_graph::RfcGraph::get(5322, 3).await;
println!("{rfcs:?} {status:?}");
$> cargo run -- -h
rfc-graph 0.1.1

USAGE:
    rfc-graph [OPTIONS] --root <ROOT>

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

Output generated:

  • cache.json : a HashMap<i32, Vec<i32>> with key is the rfc source and values are the rfc referenced
  • input.dot : a representation of the graph generated following the dot format by graphviz
  • output.svg : a svg version of the dot graph
$> cargo run -- --root 5322 --recursion-max 1

rfc 5322 one recursion

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

rfc 5322 two recursion

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

Dependencies

~11–25MB
~386K SLoC