Crate of the Week

FAQ
Q: NOOOOOOOOOOO!!! YOU CAN'T TURN A DFA INTO A FAT32 FILE SYSTEM!!!! YOU CAN'T JUST HAVE A DIRECTORY WITH MULTIPLE PARENTS!!! YOU ARE BREAKING THE ASSUMPTION OF LACK OF LOOPERINOS NOOOOOOOOO
A: Haha OS-driven regex engine go brrrrr

pure gold :D

10 Likes

handle Pin<&mut :crab:>A handle trait for asynchronous context pipeline.

cargo-license: A license checker for your crates. It checks all the dependencies and can give tons of information about each dependency and their license. This is especially helpful for checking license compatibility.

6 Likes

@kylegalloway's suggestion reminded me of:

cargo-deny: Cargo plugin for linting your dependencies

6 Likes

Warning: Self promotion ahead!

cfg_aliases: A dependency-less macro for creating aliases that can be used in #[cfg] checks.

7 Likes

I'd like to nominate coercible_errors - a zero-cost abstraction over errors that may be either some actual error type or Infallible in associated types.

1 Like

tco: TCO is a tail-call optimization library. It's a proof-of-concept attribute macro you can slap onto item functions to optimize them if they are in tail-calling format.

6 Likes

bottom: Yet another cross-platform graphical process/system monitor

runiq: An efficient way to filter duplicate lines from input, à la uniq

Official Windows WinRT API winrt-rs

9 Likes

Cargo Workspace Manager

A tool to manage your cargo workspace, inspired by Lerna.

  • You can list all the crates in the workspace
  • You can list all the changed crates in the workspace since the last git tag (or other git refs)
  • You can release the changed crates in the workspaces by interactively bumping their version which also bumps this crates version in other crates in the workspace if this is being used as a dependency.
  • You can publish the crates in the workspace automatically in the correct order.
7 Likes

apply: a tiny library for chaining free functions into method call chains. For example, ever wanted tuples to have a .map() equivalent? let second = (12, 20, 30).apply(|x| x.1) does the trick.

6 Likes

cargo-wipe

Cargo subcommand that recursively finds and optionally wipes all "target" or "node_modules" folders that are found in the current path.

2 Likes

defer-drop: a newtype that defers object drops to a background thread.

1 Like

cargo-asm can disassemble your bin. Useful for performance analysis and as an offline alternative to the Godbolt compiler explorer.

10 Likes

uniquote is an improved version of Path::display. It displays paths losslessly and escapes unprintable characters. #![no_std] is also supported without an allocator.

5 Likes

robotstxt: a native Rust port of Google's robots.txt parser and matcher C++ library.

  • Native Rust port, no third-part crate dependency
  • Preserves all behavior of original library
  • Consistent API with the original library
  • 100% google original test passed
7 Likes

JQL - A JSON Query Language CLI tool.

3 Likes

A faster tig:

(The only down side is it's an impossible project name to search for!)

2 Likes

cargo-spellcheck - spell & grammar checking for documentation comments

rpm-rs - a full rpm parser and synthesizer in rust (not a binding!)

2 Likes