Compare commits
11 Commits
4e43246d73
...
9374f5e406
Author | SHA1 | Date |
---|---|---|
Tom Parker-Shemilt | 9374f5e406 | |
kyu08 | 24c1f49465 | |
Tom Parker-Shemilt | cbd2f98af7 | |
Tom Parker-Shemilt | 05656acdc2 | |
Tom Parker-Shemilt | f93e08a379 | |
Tom Parker-Shemilt | 20257f5128 | |
Tom Parker-Shemilt | 3fef9eda48 | |
Daniel Savu | 0badf09ee3 | |
kyu08 | 8dcd2ea856 | |
kyu08 | 7ebae89112 | |
Daniel Savu | 348d6a76df |
|
@ -11,12 +11,12 @@ The easiest way is to go to https://github.com/rust-unofficial/awesome-rust/blob
|
|||
If you want to add an entry to the `README.md` please consider this:
|
||||
|
||||
- is the entry valuable to people trying to get things done in Rust?
|
||||
* In order to make this objective, the entry needs to either have at least 50 stars on Github, 2000 downloads on crates.io, or an equivalent level of other popularity metrics (which should be specified in the PR). The maintainers of this repo are not responsible for making your project popular, only for making more people aware of those projects. We don't want to have to pick and choose favourites, and so are using metrics like this to make our lives easier as maintainers.
|
||||
* In order to make this objective, the entry needs to either have at least 50 stars on GitHub, 2000 downloads on crates.io, or an equivalent level of other popularity metrics (which should be specified in the PR). The maintainers of this repo are not responsible for making your project popular, only for making more people aware of those projects. We don't want to have to pick and choose favourites, and so are using metrics like this to make our lives easier as maintainers.
|
||||
- if you want to add something, please use the template `[ACCOUNT/REPO](https://github.com/ACCOUNT/REPO) [[CRATE](https://crates.io/crates/CRATE)] — DESCRIPTION`
|
||||
* if you've not published your crate to `crates.io` remove the `[[CRATE](...)]` part.
|
||||
* if you have a CI build, please add the build badge. Put the image after the description, separated by a space. Please make sure to add the branch information to the image:
|
||||
* example for Travis: `[![build badge](https://api.travis-ci.com/XXX/CRATE.svg?branch=master)](https://app.travis-ci.org/github/XXX/CRATE)`
|
||||
* for Github actions please see [adding-a-workflow-status-badge](https://docs.github.com/en/actions/managing-workflow-runs/adding-a-workflow-status-badge)
|
||||
* for GitHub actions please see [adding-a-workflow-status-badge](https://docs.github.com/en/actions/managing-workflow-runs/adding-a-workflow-status-badge)
|
||||
- please pay attention to the alphabetical ordering
|
||||
|
||||
## Removing projects
|
||||
|
|
12
README.md
12
README.md
|
@ -193,6 +193,8 @@ See also [Rust — Production](https://www.rust-lang.org/production) organizatio
|
|||
* [Grin](https://github.com/mimblewimble/grin/) — Evolution of the MimbleWimble protocol
|
||||
* [hdwallet](https://github.com/jjyr/hdwallet) [[hdwallet](https://crates.io/crates/hdwallet)] — BIP-32 HD wallet related key derivation utilities.
|
||||
* [Holochain](https://github.com/holochain/holochain) — Scalable P2P alternative to blockchain for all those distributed apps you always wanted to build. [![detect critical check failures](https://github.com/holochain/holochain/actions/workflows/check_run_detect_release_pr_failure.yml/badge.svg)](https://github.com/holochain/holochain/actions/workflows/check_run_detect_release_pr_failure.yml)
|
||||
* [Hyperlane](https://github.com/hyperlane-xyz/hyperlane-monorepo).
|
||||
Framework for permissionless, modular interoperability. The offchain clients are written in Rust, as well as the smart contracts for Solana VM and CosmWasm.
|
||||
* [ibc-rs](https://github.com/informalsystems/hermes) - Implementation of the [Interblockchain Communication](https://ibc.cosmos.network/) protocol
|
||||
* [infincia/bip39-rs](https://github.com/infincia/bip39-rs) [[bip39](https://crates.io/crates/bip39)] — Implementation of BIP39.
|
||||
* [interBTC](https://github.com/interlay/interbtc) — Trustless and fully decentralized Bitcoin bridge to Polkadot and Kusama.
|
||||
|
@ -591,6 +593,7 @@ See also [A comparison of operating systems written in Rust](https://github.com/
|
|||
* [envio-cli/envio](https://github.com/envio-cli/envio) - A Modern And Secure CLI Tool For Managing Environment Variables [![build badge](https://github.com/envio-cli/envio/actions/workflows/CICD.yml/badge.svg?branch=main)](https://github.com/envio-cli/envio/actions/workflows/CICD.yml)
|
||||
* [frolic](https://github.com/FrolicOrg/Frolic) — An API layer to build customer facing dashboards 10x faster
|
||||
* [fw](https://github.com/brocode/fw) — workspace productivity booster [![Rust](https://github.com/brocode/fw/actions/workflows/rust.yml/badge.svg)](https://github.com/brocode/fw/actions/workflows/rust.yml)
|
||||
* [fzf-make](https://github.com/kyu08/fzf-make) [[fzf-make](https://crates.io/crates/fzf-make)] — A command line tool that executes make target using fuzzy finder with preview window. [![crates.io](https://img.shields.io/crates/v/fzf-make?style=flatflat-square)](https://crates.io/crates/fzf-make)
|
||||
* [geiger](https://github.com/geiger-rs/cargo-geiger) — A program that list statistics related to usage of unsafe code in a crate and all its dependencies [![Build Status](https://dev.azure.com/cargo-geiger/cargo-geiger/_apis/build/status/geiger-rs.cargo-geiger?branchName=master)](https://dev.azure.com/cargo-geiger/cargo-geiger/_build/latest?definitionId=1&branchName=master)
|
||||
* [git-cliff](https://github.com/orhun/git-cliff) — A highly customizable Changelog Generator that follows Conventional Commit specifications ![https://github.com/orhun/git-cliff/actions](https://img.shields.io/github/actions/workflow/status/orhun/git-cliff/ci.yml?branch=main&label=build)
|
||||
* [git-journal](https://github.com/saschagrunert/git-journal/) — The Git Commit Message and Changelog Generation Framework
|
||||
|
@ -604,6 +607,7 @@ See also [A comparison of operating systems written in Rust](https://github.com/
|
|||
* [Rust Search Extension](https://github.com/huhu/rust-search-extension) — A handy browser extension to search crates and docs in address bar (omnibox). [![Build Status](https://github.com/huhu/rust-search-extension/workflows/build/badge.svg?branch=master)](https://github.com/huhu/rust-search-extension/actions)
|
||||
* [Rustup](https://github.com/rust-lang/rustup) — the Rust toolchain installer [![build badge](https://github.com/rust-lang/rustup/workflows/Linux%20(master)/badge.svg?branch=master)](https://github.com/rust-lang/rustup/actions)
|
||||
* [scriptisto](https://github.com/igor-petruk/scriptisto) A language-agnostic "shebang interpreter" that enables you to write one file scripts in compiled languages. [![Build Status](https://cloud.drone.io/api/badges/igor-petruk/scriptisto/status.svg)](https://cloud.drone.io/igor-petruk/scriptisto)
|
||||
* [typos](https://github.com/crate-ci/typos) [[typos-cli](https://crates.io/crates/typos-cli)] — Source code spell checker
|
||||
|
||||
### Build system
|
||||
|
||||
|
@ -640,7 +644,7 @@ See also [A comparison of operating systems written in Rust](https://github.com/
|
|||
* [Devolutions/CMakeRust](https://github.com/Devolutions/CMakeRust) — useful for integrating a Rust library into a CMake project
|
||||
* [SiegeLord/RustCMake](https://github.com/SiegeLord/RustCMake) — an example project showing usage of CMake with Rust
|
||||
* [Fleet](https://github.com/dimensionhq/fleet) [[fleet-rs](https://crates.io/crates/fleet-rs)] - The blazing fast build tool for Rust.
|
||||
* Github actions
|
||||
* GitHub actions
|
||||
* [icepuma/rust-action](https://github.com/icepuma/rust-action) — rust github action
|
||||
* [peaceiris/actions-mdbook](https://github.com/peaceiris/actions-mdbook) — GitHub Actions for mdBook
|
||||
* [Nix](https://nixos.org/)
|
||||
|
@ -1574,7 +1578,7 @@ See also [Are we game yet?](https://arewegameyet.rs)
|
|||
* IPNetwork
|
||||
* [achanda/ipnetwork](https://github.com/achanda/ipnetwork) — A library to work with IP networks
|
||||
* [candrew/netsim](https://github.com/canndrew/netsim) — A library for network simulation and testing
|
||||
* [jesusprubio/up](https://github.com/jesusprubio/up) — Library to check your Internet connectivity [![CI](https://github.com/jesusprubio/up/actions/workflows/ci.yml/badge.svg)](https://github.com/jesusprubio/up/actions/workflows/ci.yml)
|
||||
* [jesusprubio/online](https://github.com/jesusprubio/online) — Library to check your Internet connectivity [![CI](https://github.com/jesusprubio/online/actions/workflows/ci.yml/badge.svg)](https://github.com/jesusprubio/online/actions/workflows/ci.yml)
|
||||
* Low level
|
||||
* [actix/actix](https://github.com/actix/actix) — Actor library
|
||||
* [dylanmckay/protocol](https://github.com/dylanmckay/protocol) — Custom TCP/UDP protocol definitions
|
||||
|
@ -1772,8 +1776,8 @@ See also [Are we web yet?](https://www.arewewebyet.org) and [Rust web framework
|
|||
* [alexcrichton/curl-rust](https://github.com/alexcrichton/curl-rust) — [libcurl](https://curl.se/libcurl/) bindings
|
||||
* [async-graphql](https://github.com/async-graphql/async-graphql) - A GraphQL server library [![Build Status](https://dev.azure.com/graphql-rust/GraphQL%20Rust/_apis/build/status/graphql-rust.juniper)](https://dev.azure.com/graphql-rust/GraphQL%20Rust/_build/latest?definitionId=1)
|
||||
* [DoumanAsh/yukikaze](https://gitlab.com/Douman/yukikaze) [[yukikaze](https://crates.io/crates/yukikaze)] — Beautiful and elegant Yukikaze is little HTTP client library based on hyper. [![build badge](https://gitlab.com/Douman/yukikaze/badges/master/pipeline.svg)](https://gitlab.com/Douman/yukikaze)
|
||||
* [ducaale/xh](https://github.com/ducaale/xh) - Friendly and fast tool for sending HTTP requests [![crate](https://img.shields.io/crates/v/create-rust-app.svg)](https://crates.io/crates/xh) [![Github actions Status](https://github.com/ducaale/xh/workflows/CI/badge.svg?branch=master)](https://github.com/ducaale/xh/actions)
|
||||
* [graphql-client](https://github.com/graphql-rust/graphql-client) — Typed, correct GraphQL requests and responses. [![Github actions Status](https://github.com/graphql-rust/graphql-client/workflows/CI/badge.svg?branch=master)](https://github.com/graphql-rust/graphql-client/actions)
|
||||
* [ducaale/xh](https://github.com/ducaale/xh) - Friendly and fast tool for sending HTTP requests [![crate](https://img.shields.io/crates/v/create-rust-app.svg)](https://crates.io/crates/xh) [![GitHub actions Status](https://github.com/ducaale/xh/workflows/CI/badge.svg?branch=master)](https://github.com/ducaale/xh/actions)
|
||||
* [graphql-client](https://github.com/graphql-rust/graphql-client) — Typed, correct GraphQL requests and responses. [![GitHub actions Status](https://github.com/graphql-rust/graphql-client/workflows/CI/badge.svg?branch=master)](https://github.com/graphql-rust/graphql-client/actions)
|
||||
* [hyperium/hyper](https://github.com/hyperium/hyper) — an HTTP implementation [![CI](https://github.com/hyperium/hyper/workflows/CI/badge.svg?branch=master)](https://github.com/hyperium/hyper/actions?query=workflow%3ACI)
|
||||
* [seanmonstar/reqwest](https://github.com/seanmonstar/reqwest) — an ergonomic HTTP Client.
|
||||
* HTTP Server
|
||||
|
|
12
src/main.rs
12
src/main.rs
|
@ -36,7 +36,7 @@ fn override_stars(level: u32, text: &str) -> Option<u32> {
|
|||
}
|
||||
|
||||
lazy_static! {
|
||||
// We don't explicitly check these, because they just bug out in Github. We're _hoping_ they don't go away!
|
||||
// We don't explicitly check these, because they just bug out in GitHub. We're _hoping_ they don't go away!
|
||||
static ref ASSUME_WORKS: Vec<String> = vec![
|
||||
"https://www.reddit.com/r/rust/".to_string()
|
||||
];
|
||||
|
@ -174,13 +174,13 @@ lazy_static! {
|
|||
}
|
||||
|
||||
#[derive(Deserialize, Debug)]
|
||||
struct GithubStars {
|
||||
struct GitHubStars {
|
||||
stargazers_count: u32,
|
||||
archived: bool,
|
||||
}
|
||||
|
||||
async fn get_stars(github_url: &str) -> Option<u32> {
|
||||
warn!("Downloading Github stars for {}", github_url);
|
||||
warn!("Downloading GitHub stars for {}", github_url);
|
||||
let rewritten = GITHUB_REPO_REGEX
|
||||
.replace_all(github_url, "https://api.github.com/repos/$org/$repo")
|
||||
.to_string();
|
||||
|
@ -200,7 +200,7 @@ async fn get_stars(github_url: &str) -> Option<u32> {
|
|||
}
|
||||
Ok(ok) => {
|
||||
let raw = ok.text().await.unwrap();
|
||||
let data = match serde_json::from_str::<GithubStars>(&raw) {
|
||||
let data = match serde_json::from_str::<GitHubStars>(&raw) {
|
||||
Ok(val) => val,
|
||||
Err(_) => {
|
||||
panic!("{:?}", raw);
|
||||
|
@ -254,7 +254,7 @@ fn get_url_core(url: String) -> BoxFuture<'static, (String, Result<(), CheckerEr
|
|||
}
|
||||
if env::var("USERNAME_FOR_GITHUB").is_ok() && env::var("TOKEN_FOR_GITHUB").is_ok() && GITHUB_REPO_REGEX.is_match(&url) {
|
||||
let rewritten = GITHUB_REPO_REGEX.replace_all(&url, "https://api.github.com/repos/$org/$repo");
|
||||
info!("Replacing {} with {} to workaround rate limits on Github", url, rewritten);
|
||||
info!("Replacing {} with {} to workaround rate limits on GitHub", url, rewritten);
|
||||
let (_new_url, res) = get_url_core(rewritten.to_string()).await;
|
||||
return (url, res);
|
||||
}
|
||||
|
@ -294,7 +294,7 @@ fn get_url_core(url: String) -> BoxFuture<'static, (String, Result<(), CheckerEr
|
|||
}
|
||||
if status == StatusCode::NOT_FOUND && ACTIONS_REGEX.is_match(&url) {
|
||||
let rewritten = ACTIONS_REGEX.replace_all(&url, "https://github.com/$org/$repo");
|
||||
warn!("Got 404 with Github actions, so replacing {} with {}", url, rewritten);
|
||||
warn!("Got 404 with GitHub actions, so replacing {} with {}", url, rewritten);
|
||||
let (_new_url, res) = get_url_core(rewritten.to_string()).await;
|
||||
return (url, res);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue