Add CLI tools section

This commit is contained in:
Nico Burns 2022-05-02 13:05:31 +01:00
parent f5c6eb4409
commit 99ad0f6c71
2 changed files with 66 additions and 4 deletions

View file

@ -345,7 +345,69 @@
"name": "General Purpose",
"crates": [{
"name": "tonic",
"notes": "gRPC over HTTP/2 with full support for asynchronous code. Works with tokio."
"notes": "gRPC over HTTP/2 with full support for asynchronous code. Works with tokio"
}]
}
]
}
]
},
{
"slug": "cli-tools",
"name": "CLIs",
"description": "",
"subgroups": [
{
"slug": "argument-parsing",
"name": "Argument Parsing",
"description": "See <a target=\"_blank\" href=\"https://github.com/rust-cli/argparse-benchmarks-rs\">argparse-benchmarks-rs</a> for a full comparison of the crates mentioned here and more.",
"purposes": [
{
"name": "Fully-featured",
"crates": [{
"name": "clap",
"notes": "Ergonomic, supports everything, and is fast at runtime. However compile times can be slow"
}]
},
{
"name": "Minimal",
"crates": [{
"name": "lexopt",
"notes": "Fast compile times, fast runtime, pedantic about correctness. API is less ergonomic"
}, {
"name": "pico-args",
"notes": "Fast compile times, fast runtime, more lax about correctness. API is more ergonomic"
}]
}
]
},
{
"slug": "utility",
"name": "Utility",
"description": "Helpers that are often useful when implementing CLIs",
"purposes": [
{
"name": "Globbing",
"crates": [{
"name": "globset",
"notes": "High-performance globbing that allows multiple globs to be evaluated at once"
}]
},
{
"name": "Directory walking",
"crates": [{
"name": "walkdir",
"notes": "Basic recursive filesystem walking."
}, {
"name": "ignore",
"notes": "Recursive filesystem walking that respects ignore files (like .gitignore)"
}]
},
{
"name": "File watching",
"crates": [{
"name": "watchexec",
"notes": "Watch files or directories and execute a function when they change"
}]
}
]

View file

@ -55,11 +55,11 @@
{% for group in crate_groups %}
<section data-toc-section id="section-{{ group.slug }}">
<h3>{{ group.name }}</h3>
<p class="group-description">{{ group.description }}</p>
<p class="group-description">{{ group.description | safe }}</p>
{% for subgroup in group.subgroups %}
<section data-toc-section id="section-{{ group.slug }}-subsection-{{ subgroup.slug }}">
<h4>{{ subgroup.name }}</h4>
<p class="group-description">{{ subgroup.description }}</p>
<p class="group-description">{{ subgroup.description | safe }}</p>
<table class="full-width">
<thead>
<tr>
@ -78,7 +78,7 @@
<td><a href="https://docs.rs/{{ crate.name }}">{{ crate.name }}</a></td>
<!-- <td>0.8.5</td> -->
<!-- <td>5 days ago</td> -->
<td class="crate-notes">{{ crate.notes }}</td>
<td class="crate-notes">{{ crate.notes | safe }}</td>
</tr>
{% endfor %}
</tbody>