逐次編集

開発ツール

tier 1 よく使うもの

https://github.com/dtolnay/cargo-expand – マクロを展開して確認

https://github.com/rust-lang/rustfmt – コードフォーマッタ

https://github.com/rust-lang/rust-clippytest – linter

https://github.com/rust-lang/rustfix – コード書き換え

https://github.com/passcod/cargo-watch – file watcher

https://github.com/kbknapp/cargo-outdated – 古い依存の確認

https://github.com/RustSec/cargo-audit – 脆弱性の確認

https://github.com/nabijaczleweli/cargo-update – cargo install しているツールの一斉更新

https://github.com/matthiaskrgr/cargo-cache – ビルドキャッシュの掃除

https://github.com/est31/cargo-udeps – 使ってない依存の確認

https://github.com/rsolomo/cargo-check – link しないので高速なコンパイルチェック

https://github.com/mozilla/sccache – ビルドキャッシュ共有でコンパイル高速化

tier 2 知っとくと便利なもの

https://github.com/mozilla/grcov – コードカバレッジ計測

https://github.com/rr-debugger/rr – 巻き戻し可能なデバッガ

https://github.com/IgaguriMK/cargo-clean-recursive – https://igaguri.hatenablog.com/entry/2020/06/07/133847

https://github.com/tbrand/cargo-tomlfmt – Cargo.toml のフォーマッタ

https://github.com/gnzlbg/cargo-asm – asm ツール

https://github.com/google/evcxr – REPL

https://github.com/rust-lang/miri – REPL

https://github.com/mitsuhiko/insta – スナップショットテスト

https://github.com/nextest-rs/nextest – すごいテスト

https://github.com/svenstaro/cargo-profiler – プロファイラ

https://github.com/rust-embedded/cargo-binutils – binutils

tier 3 その他有象無象

    • https://gitlab.henriktjader.com/pln/cargo-klee

 

    • https://github.com/awslabs/git-secrets

 

    • https://github.com/tj/git-extras

 

    • https://github.com/orhun/git-cliff

https://github.com/taiki-e/cargo-llvm-cov – コードカバレッジ

https://github.com/hhatto/cargo-strict – unwarp を expect に書き換え

https://github.com/RazrFalcon/cargo-bloat – コードサイズ検証ツール

https://github.com/dtolnay/cargo-llvm-lines – llvm 確認

https://github.com/facebookexperimental/MIRAI – MIR インタプリタ

https://github.com/rust-fuzz/cargo-fuzz – libFuzzer

https://github.com/rust-secure-code/cargo-geiger – unsafe コードの統計を取る

https://github.com/onur/cargo-license – 依存 crate のライセンスを列挙

https://github.com/EmbarkStudios/cargo-deny – 依存させたくない crate の調査

https://github.com/xd009642/tarpaulin – コードカバレッジ

https://github.com/luser/rustfilt – デマングル

https://github.com/termoshtt/katexit – rustdoc に katex 挿入

https://github.com/rust-cross/cargo-zigbuild – glibc のバージョンが固定できる

rust 製 CLI ツール

more info

    • https://github.com/rust-unofficial/awesome-rust

 

    • https://github.com/TaKO8Ki/awesome-alternatives-in-rust

 

    • https://github.com/ibraheemdev/modern-unix

 

    https://zenn.dev/zenwerk/scraps/8d323eaa63b76d

シェルツール

https://github.com/BurntSushi/ripgrep – grep

https://github.com/phiresky/ripgrep-all – grep

https://github.com/sharkdp/fd – find

https://github.com/jhspetersson/fselect – find

https://github.com/dalance/procs – ps

https://github.com/ogham/exa – ls

https://github.com/Peltoche/lsd – ls

https://github.com/willdoescode/nat – ls

https://github.com/dflemstr/rq – jq

https://github.com/yamafaktory/jql – jq

https://github.com/theryangeary/choose – awk

https://github.com/ezrosent/frawk – awk

https://github.com/chmln/sd – sed

https://github.com/BurntSushi/xsv – csv

https://github.com/wfxr/csview – csv

便利ツール

https://github.com/nushell/nushell – bash

https://github.com/dbrgn/tealdeer – tldr

https://github.com/denisidoro/navi – tldr

https://github.com/sharkdp/bat – cat

https://github.com/SoptikHa2/desed – sed

https://github.com/m4b/bingrep – readelf

https://github.com/dandavison/delta – git-diff

https://github.com/ajeetdsouza/zoxide – cd

https://github.com/lotabout/skim – fzf

https://github.com/sharkdp/hexyl – hexdump

https://github.com/cyrus-and/gdb-dashboard/ – gdb

https://github.com/Canop/broot – screen, tmux, ls, tree

https://github.com/zellij-org/zellij – tmux

https://github.com/rust-lang/mdBook – markdown to html

https://github.com/Y2Z/monolith – mhtml

https://github.com/watchexec/watchexec – watch

https://github.com/Aloxaf/silicon – carbon (コードスニペットのサムネイル作るやつ)

https://github.com/sharkdp/hyperfine – time

https://github.com/Nukesor/pueue – gnu parallel

https://github.com/r-darwish/topgrade – apt update その他全部やる

https://github.com/anordal/shellharden – shellcheck

https://github.com/ogham/dog – dig

https://github.com/vamolessa/pepper – vim

https://github.com/ChuckDaniels87/rnr – rename

https://github.com/ducaale/xh – curl
https://github.com/saschagrunert/git-journal

システムモニタ

https://github.com/ClementTsang/bottom – top

https://github.com/bvaisvil/zenith – top

https://github.com/bootandy/dust – du

https://github.com/nachoparker/dutree – du

https://github.com/Byron/dua-cli – du

https://github.com/imsnif/diskonaut – du

https://github.com/imsnif/bandwhich – iftop

https://github.com/orf/gping – ping

マクロを書くときに使う

https://github.com/dtolnay/proc-macro2 – テスト可能なproc_macro

https://github.com/dtolnay/syn – proc-macroのトークンストリームからrust構文木を生成する

https://github.com/dtolnay/quote – quote!マクロ

https://github.com/dtolnay/paste – concat_idents! より強力なシンボル結合マクロ

https://github.com/CreepySkeleton/proc-macro-error – proc_macroのエラーを見やすくする

https://github.com/Goncalerta/proc-quote – quote!のproc_macro版

https://github.com/rustyhorde/vergen -ビルド時の環境変数にgitやCargo.tomlの情報を入れる
https://github.com/rodrimati1992/const_format_crates/

型レベルプログラミング

    • https://github.com/lloydmeta/frunk

 

    • https://github.com/Metaswitch/frunk-enum

 

    • https://github.com/paholg/typenum

 

    • https://github.com/dtolnay/ghost

 

    • https://github.com/dtolnay/reflect

 

    • https://github.com/japaric/cast.rs

 

    • https://github.com/marcianx/downcast-rs

 

    • https://github.com/Clikengo/usize_cast

 

    • https://github.com/dtolnay/ref-cast

 

    https://github.com/willcrichton/tyrade

よく使う型

https://github.com/bluss/either – Either型

https://github.com/rust-lang/regex – 正規表現

https://github.com/rust-random/rand – 乱数

https://github.com/servo/rust-url – url

https://github.com/marshallpierce/rust-base64 – base64

https://github.com/uuid-rs/uuid – uuid

https://github.com/chronotope/chrono – DateTime

https://github.com/chronotope/chrono-tz – TimeZone

https://github.com/tokio-rs/bytes – Bytes

https://github.com/rust-num/num – bigint,複素数,その他数値関連

https://github.com/myrrlyn/funty – 数値型トレイト

https://github.com/alkis/decimal – 128bit 10進浮動小数点数

ロガー

https://github.com/rust-lang/log – ロギングインターフェース

https://github.com/env-logger-rs/env_logger – 簡易ロガー

https://github.com/tokio-rs/tracing – 高機能ロガー

derive マクロ

https://github.com/rust-num/num-derive – enum と数値の相互変換

https://github.com/serde-rs/serde – シリアライズ&デシリアライズインターフェース

https://github.com/jeltef/derive_more – #[derive(From,Into,TryInto,etc…)]

https://github.com/taiki-e/auto_enums
https://github.com/Peternator7/strum
https://github.com/Keats/validator
https://github.com/idanarye/rust-smart-default
https://github.com/bluejekyll/enum-as-inner
https://github.com/xfix/enum-map
https://github.com/stephaneyfx/enum-iterator
https://github.com/jtempest/float_eq-rs

便利ユーティリティ

https://github.com/rust-itertools/itertools – 便利イテレータ

https://github.com/rust-lang-nursery/lazy-static.rs – 実行時の static 変数

https://github.com/matklad/once_cell – 実行時の mutable な static 変数
https://github.com/dtolnay/indoc
https://github.com/dtolnay/remain
https://github.com/dtolnay/readonly
https://github.com/frozenlib/parse-display
https://github.com/SimonSapin/rust-typed-arena
https://github.com/servo/bincode
https://github.com/bnjjj/chicon-rs
https://github.com/lucab/caps-rs
https://github.com/bytecodealliance/cap-std/

データ構造とアルゴリズム

    • https://github.com/japaric/heapless

 

    • https://github.com/tov/min-max-heap-rs

 

    • https://github.com/bitflags/bitflags

 

    • https://github.com/fizyk20/generic-array

 

    • https://github.com/petgraph/petgraph

 

    • https://github.com/bluss/arrayvec

 

    • https://github.com/indiv0/lazycell

 

    • https://github.com/bluss/maplit

 

    • https://github.com/havarnov/multimap

 

    • https://github.com/garro95/priority-queue

 

    • https://github.com/bodil/im-rs

 

    • https://github.com/andylokandy/arraydeque

 

    • https://github.com/assert-rs/predicates-rs

 

    • https://github.com/carllerche/slab

 

    • https://github.com/fitzgen/id-arena

 

    • https://github.com/bitvecto-rs/bitvec

 

    • https://crates.io/crates/enum_dispatch

 

    • https://docs.rs/ascii/1.0.0/ascii/

 

    • https://docs.rs/indexmap/1.7.0/indexmap/

 

    • https://docs.rs/ordered-float/2.8.0/ordered_float/

 

    • https://docs.rs/superslice/1.0.0/superslice/

 

    • https://docs.rs/itertools-num/0.1.3/itertools_num/

 

    • https://docs.rs/maplit/1.0.2/maplit/

 

    • https://docs.rs/either/1.6.1/either/

 

    • https://docs.rs/im-rc/15.0.0/im_rc/

 

    • https://docs.rs/rustc-hash/1.1.0/rustc_hash/

 

    • https://docs.rs/smallvec/1.6.1/smallvec/

 

    • https://docs.rs/dashmap/4.0.2/dashmap/

 

    • https://github.com/tantivy-search/tantivy

 

    https://github.com/toshi-search/Toshi

シリアライズ

https://github.com/serde-rs/json – JSON シリアライザ&デシリアライザ
https://github.com/vityafx/serde-aux
https://github.com/dtolnay/path-to-error
https://git.ondrovo.com/packages/json_dotpath
https://github.com/toml-rs/toml
https://github.com/dtolnay/serde-yaml
https://github.com/marshallpierce/base64-serde
https://github.com/BurntSushi/rust-csv
https://github.com/KokaKiwi/rust-hex

https://github.com/withoutboats/heck – camelcase to snake case

https://github.com/tokio-rs/prost – protocol buffer
https://github.com/mozilla-services/canonicaljson-rs

https://github.com/ruma/js_option – serde_json でnull と undefined の区別をつける
https://github.com/maciejhirsz/logos

https://github.com/mitsuhiko/minijinja – jinja2
https://github.com/google/zerocopy

エラー

https://github.com/dtolnay/anyhow – Any エラー型

https://github.com/dtolnay/thiserror – #[derive(Error)]

https://github.com/dtolnay/no-panic
https://github.com/yaahc/eyre

並列処理

https://github.com/rayon-rs/rayon – データ並列計算ライブラリ,並列イテレータ,タスク並列,スレッドプール

https://github.com/crossbeam-rs/crossbeam – 並行計算ライブラリ,MPMC キュー,チャンネル
https://github.com/Amanieu/parking_lot
https://github.com/vorner/arc-swap

https://github.com/jonhoo/rust-evmap — left_right
https://github.com/zesterer/flume
https://github.com/bikeshedder/deadpool
https://github.com/TimelyDataflow/differential-dataflow
https://github.com/kanidm/concread

非同期

https://github.com/tokio-rs/tokio – 非同期 IO ランタイム

https://github.com/rustls/tokio-rustls – Tokioの TlsConnector の rustls 実装

https://github.com/tokio-rs/tls/tree/master/tokio-native-tls – Tokioの TlsConnector の nativetls 実装

https://github.com/rust-lang/futures-rs – Future

https://github.com/hyperium/hyper – 低レベルHttpサーバ&クライアント

https://github.com/hyperium/hyper-tls – native-tls を使った hyper 用 Https アダプタ

https://github.com/rustls/hyper-rustls – rustls を使った hyper 用 Https アダプタ

https://github.com/seanmonstar/reqwest – 高レベルHttpクライアント

https://github.com/sfackler/rust-native-tls – TLS ライブラリ(バックエンドはプラットフォームごとのssl共有ライブラリ)

https://github.com/rustls/rustls – Rust で再実装された TLS ライブラリ

https://github.com/bluejekyll/trust-dns – DNS&リゾルバサーバ&クライアント
https://github.com/dtolnay/async-trait
https://github.com/tower-rs/tower
https://github.com/tokio-rs/async-stream
https://github.com/smol-rs/async-compat
https://github.com/yoshuawuyts/futures-concurrency
https://docs.rs/tokio-stream/0.1.7/tokio_stream/index.html
https://github.com/ihrwein/backoff
https://lib.rs/crates/axum

https://github.com/DataDog/glommio – io_using を使った runtime

https://github.com/bytedance/monoio – io_using を使った runtime

データベース

    https://github.com/launchbadge/sqlx

テスト・デバッグ・計測

    • https://github.com/AltSysrq/proptest

 

    • https://github.com/BurntSushi/quickcheck

 

    • https://github.com/rust-fuzz/arbitrary

 

    • https://github.com/asomers/mockall

 

    • https://github.com/bheisler/criterion.rs

 

    • https://github.com/mitsuhiko/insta

 

    • https://github.com/mitsuhiko/similar-asserts

 

    • https://github.com/tokio-rs/loom

 

    • https://github.com/assert-rs/assert_cmd

 

    • https://github.com/assert-rs/assert_fs

 

    • https://github.com/tikv/fail-rs

 

    • https://github.com/rust-fuzz/honggfuzz-rs

 

    • https://gitlab.com/karroffel/contracts

 

    • https://github.com/sile/trackable

 

    • https://github.com/nvzqz/static-assertions-rs

 

    • https://github.com/magnet/metered-rs

 

    • https://github.com/rust-pretty-assertions/rust-pretty-assertions

 

    • https://github.com/thomcc/rust-more-asserts

 

    • https://github.com/la10736/rstest

 

    • https://github.com/frondeus/test-case

 

    • https://github.com/davidpdrsn/assert-json-diff

 

    • https://crates.io/crates/cap

 

    https://github.com/loiclec/fuzzcheck-rs

Web API

    • https://github.com/awslabs/aws-sdk-rust

 

    • https://github.com/zenlist/serde_dynamo

 

    • https://github.com/awslabs/aws-lambda-rust-runtime

https://github.com/serenity-rs/serenity – discord

https://github.com/getsentry/sentry-rust – sentry

数学・計算

    • https://github.com/rustsim/alga

 

    • https://github.com/rustsim/nalgebra

 

    • https://github.com/boxtown/statrs

 

    • https://github.com/paholg/dimensioned

 

    • https://github.com/rust-ndarray/ndarray

 

    • https://github.com/rust-ndarray/ndarray-linalg

 

    • https://github.com/rust-ndarray/ndarray-stats

 

    • https://github.com/rust-bio/rust-bio

 

    • https://github.com/argmin-rs/argmin

 

    • https://github.com/georust/geo

 

    • https://github.com/iliekturtles/uom

 

    • https://github.com/Stoeoef/spade

 

    • https://github.com/stainless-steel/probability

 

    • https://github.com/brendanzab/approx

 

    • https://gitlab.com/Redpoll/changepoint

 

    • https://github.com/tspooner/rstat

 

    • https://github.com/vbarrielle/sprs

 

    • https://github.com/liborty/rstats

 

    • https://github.com/statrs-dev/statrs

 

    • https://github.com/pola-rs/polars

 

    • https://github.com/smartcorelib/smartcore

 

    • https://github.com/benjarison/eval-metrics

 

    • https://github.com/rust-ml/linfa

 

    • https://github.com/rust-ndarray/ndarray-stats

 

    • https://gitlab.com/daingun/automatica

 

    • https://gitlab.com/Redpoll/changepoint

 

    • https://github.com/guillaume-be/rust-bert

 

    • https://github.com/charles-r-earp/autograph

 

    • https://github.com/LaurentMazare/tch-rs

 

    • https://github.com/spearow/juice

 

    • https://crates.io/crates/rand_chacha

 

    • https://crates.io/crates/rand_hc

 

    • https://crates.io/crates/rand_pcg

 

    • https://crates.io/crates/rand_distr

 

    • https://github.com/p-e-w/savage

 

    https://gitlab.com/nyx-space/nyx/

CUI

https://github.com/clap-rs/clap – コマンドライン引数パーサ

https://github.com/kkawakam/rustyline – Readline

https://github.com/vorner/signal-hook – Unixシグナルハンドラ
https://github.com/Stebalien/term
https://github.com/crossterm-rs/crossterm
https://gitlab.redox-os.org/redox-os/termion
https://github.com/mackwic/colored
https://github.com/slog-rs/slog
https://github.com/daboross/fern
https://github.com/softprops/envy
https://github.com/Geal/rust-syslog
https://github.com/rust-psutil/rust-psutil
https://github.com/knsd/daemonize
https://github.com/GuillaumeGomez/sysinfo
https://github.com/mitsuhiko/dialoguer
https://github.com/rust-cli/human-panic
https://github.com/JohnTitor/termize
https://github.com/oli-obk/rust-si

https://github.com/dotenv-rs/dotenv – dotenv reader

https://github.com/loony-bean/textplots-rs – 文字列のグラフ描画

https://github.com/ftxqxd/drawille-rs – 文字列のグラフ描画

GUI

    • https://github.com/hecrj/iced

 

    • https://github.com/dhardy/kas

 

    • https://github.com/redox-os/orbtk

 

    • https://github.com/antoyo/relm

 

    • https://github.com/dhardy/kas

 

    • https://github.com/Boscop/web-view

 

    • https://github.com/emilk/emigui

 

    https://github.com/linebender/druid

graphic

https://github.com/SiegeLord/RustGnuplot – グラフ描画

https://github.com/milliams/plotlib – グラフ描画

https://github.com/38/plotters – グラフ描画

https://github.com/jrmuizel/raqote – グラフ描画
https://github.com/nannou-org/nannou
https://github.com/cloudhead/rgx
https://github.com/nical/lyon
https://github.com/parasyte/pixels
https://github.com/Yatekii/imgui-wgpu-rs
https://github.com/phaazon/luminance-rs
https://github.com/jamwaffles/embedded-graphics
https://github.com/17cupsofcoffee/tetra

動画・画像処理

https://github.com/tuffy/matroska – matroska

https://github.com/piderman314/bardecoder – QRコード

https://github.com/image-rs/image – 画像ファイル

https://github.com/raymanfx/libv4l-rs – 動画ファイル

https://github.com/image-rs/imageproc – 画像処理

https://github.com/rust-cv/ndarray-image – 画像処理アルゴリズム

https://github.com/rust-cv/cv – 画像認識アルゴリズム
https://github.com/rust-cv/ndarray-vision

web frontend

    • https://github.com/rustwasm/gloo

 

    • https://github.com/SoundRabbit/Kagura

 

    • https://github.com/seed-rs/seed

 

    • https://github.com/ivanceras/sauron

 

    • https://github.com/yewstack/yew

 

    • https://github.com/utkarshkukreti/draco

 

    • https://github.com/emilk/egui

 

    https://github.com/Pauan/rust-dominator

wasm/wasi

    • https://github.com/rust-lang/libm

 

    • https://github.com/rustwasm/wasm-bindgen

 

    • https://github.com/bytecodealliance/wasi

 

    • https://github.com/rustwasm/wee_alloc

 

    • https://github.com/rustwasm/twiggy

 

    • https://github.com/rustwasm/gloo

 

    • https://github.com/cloudflare/serde-wasm-bindgen

 

    • https://github.com/rustwasm/wasm-pack

 

    • https://github.com/rustwasm/console_error_panic_hook

 

    • https://github.com/WebAssembly/wabt

 

    • https://github.com/webassembly/binaryen

 

    • https://github.com/iamcodemaker/console_log

 

    • https://wapm.io/package/wabt

 

    • https://emscripten.org/

 

    • https://github.com/GoogleChromeLabs/wasm-bindgen-rayon

 

    https://github.com/wasmerio/loupe

パーサ

    • https://github.com/lalrpop/lalrpop

 

    • https://github.com/pest-parser/pest

 

    • https://github.com/Geal/nom

 

    https://github.com/zesterer/chumsky

ffi

    • https://github.com/rust-lang/rust-bindgen

 

    • https://github.com/getditto/safer_ffi

 

    • https://github.com/dtolnay/cxx

 

    • https://github.com/google/autocxx

 

    • https://github.com/eqrion/cbindgen

 

    • https://github.com/dtolnay/inventory

 

    https://github.com/fussybeaver/bollard

no_std

    • https://github.com/Rahix/avr-hal

 

    • https://github.com/japaric/ufmt

 

    • https://github.com/knurling-rs/defmt

 

    • https://github.com/rust-embedded/nb

 

    • https://github.com/japaric/ufmt

 

    • https://gitlab.com/mmstick/numtoa

 

    • https://github.com/dtolnay/ryu

 

    https://github.com/rkyv/rkyv

その他の情報源

    • List of crates that improves or experiments with Rust, but may be hard to find – https://users.rust-lang.org/t/list-of-crates-that-improves-or-experiments-with-rust-but-may-be-hard-to-find/17806/1

https://qiita.com/qryxip/items/7c16ab9ef3072c1d7199
https://github.com/TaKO8Ki/awesome-alternatives-in-rust