Highly parallelized, blazing fast directory tree analyzer

Overview

Parallel Disk Usage (pdu)

Test Benchmark Clippy Code formatting Lint dependency graph Crates.io Version

Highly parallelized, blazing fast directory tree analyzer.

Description

pdu is a CLI program that renders a graphical chart for disk usages of files and directories, it is a replacement of dust and dutree.

Both dust (v0.5.4) and dutree (v0.12.5) do not utilize the parallel computing capability of Rust to improve performance.

Benchmark

The benchmark was generated by a GitHub Workflow and uploaded to the release page.

Programs

benchmark results (lower is better)

(See more)

Demo

screenshot

asciicast of pdu command

asciicast of pdu command on /usr

Development

Prerequisites

Test

./test.sh && ./test.sh --release
Environment Variables
name type default value description
FMT true or false true Whether to run cargo fmt
LINT true or false true Whether to run cargo clippy
DOC true or false false Whether to run cargo doc
BUILD true or false true Whether to run cargo build
TEST true or false true Whether to run cargo test
BUILD_FLAGS string (empty) Space-separated list of flags for cargo build
TEST_FLAGS string (empty) Space-separated list of flags for cargo test

Run

./run pdu "${arguments[@]}"
  • "${arguments[@]}": List of arguments to pass to pdu.

Build

Debug build

cargo build --bin pdu

The resulting executable is located at target/debug/pdu.

Release build

cargo build --bin pdu --release

The resulting executable is located at target/release/pdu.

Update shell completion files

./generate-completions.sh

Extending parallel-disk-usage

The parallel-disk-usage crate is both a binary crate and a library crate. If you desire features that pdu itself lacks (that is, after you have asked the maintainer(s) of pdu for the features but they refused), you may use the library crate to build a tool of your own. The documentation for the library crate can be found in docs.rs.

Installation

Any Desktop OS

From GitHub

Go to the GitHub Release Page and download a binary.

From crates.io

Prerequisites:

cargo install parallel-disk-usage --bin pdu

Arch Linux

From the Arch User Repository

Prerequisites:

  • An AUR helper, such as paru
paru -S parallel-disk-usage-bin
paru -S parallel-disk-usage

From Khải's Pacman Repository

Follow the installation instruction then run the following command:

sudo pacman -S parallel-disk-usage

Distributions

Packaging Status

Similar programs

License

Apache 2.0 © Hoàng Văn Khải.

Comments
  • Add reference to dua-cli in the README as similar tool

    Add reference to dua-cli in the README as similar tool

    As dua is providing both a CLI mode as well as an interactive mode via dua i I placed it into both categories.

    Disclaimer: I am the author of this tool and have adapted this paragraph for my own README.

    Edit: Now that I got to use pdu a little I finally get to appreciate the way the data is presented. Whereas dua gives a high-level overview and pdu dives in to reveal exactly where the main offenders in terms of disk space usage are. It took me a while and I even wrote my own tool to solve this problem, but finally I can see the benefits of this kind of visualization.

    dust never worked for me as it was too slow and…used too much memory, so pdu truly makes a difference here.

    Lastly I encourage you to build a TUI which allows the safe deletion of picked items to support the entire workflow people are usually using pdu for.

    opened by Byron 21
  • Configure Renovate

    Configure Renovate

    WhiteSource Renovate

    Welcome to Renovate! This is an onboarding PR to help you understand and configure settings before regular Pull Requests begin.

    🚦 To activate Renovate, merge this Pull Request. To disable Renovate, simply close this Pull Request unmerged.


    Detected Package Files

    • Cargo.toml (cargo)
    • .github/workflows/benchmark.yaml (github-actions)
    • .github/workflows/cargo-deny.yaml (github-actions)
    • .github/workflows/clippy.yaml (github-actions)
    • .github/workflows/deploy.yaml (github-actions)
    • .github/workflows/fmt.yaml (github-actions)
    • .github/workflows/test.yaml (github-actions)
    • ci/github-actions/package.json (npm)

    Configuration Summary

    Based on the default config's presets, Renovate will:

    • Start dependency updates only once this onboarding PR is merged
    • Enable Renovate Dependency Dashboard creation
    • If semantic commits detected, use semantic commit type fix for dependencies and chore for all others
    • Ignore node_modules, bower_components, vendor and various test/tests directories
    • Autodetect whether to pin dependencies or maintain ranges
    • Rate limit PR creation to a maximum of two per hour
    • Limit to maximum 10 open PRs at any time
    • Group known monorepo packages together
    • Use curated list of recommended non-monorepo package groupings
    • Fix some problems with very old Maven commons versions
    • Ignore spring cloud 1.x releases
    • Ignore web3j 5.0.0 release
    • Ignore http4s digest-based 1.x milestones
    • Use node versioning for @types/node
    • Limit concurrent requests to reduce load on Repology servers until we can fix this properly, see issue 10133

    🔡 Would you like to change the way Renovate is upgrading your dependencies? Simply edit the renovate.json in this branch with your custom config and the list of Pull Requests in the "What to Expect" section below will be updated the next time Renovate runs.


    What to Expect

    With your current configuration, Renovate will create 6 Pull Requests:

    fix(deps): pin dependencies
    chore(deps): update rust crate pretty_assertions to ^1.1.0
    • Schedule: ["at any time"]
    • Branch name: renovate/pretty_assertions-1.x
    • Merge into: master
    • Upgrade pretty_assertions to ^1.1.0
    fix(deps): update dependency @​sinclair/typebox to v0.23.3
    • Schedule: ["at any time"]
    • Branch name: renovate/sinclair-typebox-0.x
    • Merge into: master
    • Upgrade @sinclair/typebox to 0.23.3
    fix(deps): update dependency @​popeindustries/lit-html-server to v4
    fix(deps): update dependency @​types/node to v16
    • Schedule: ["at any time"]
    • Branch name: renovate/node-16.x
    • Merge into: master
    • Upgrade @types/node to 16.11.22
    fix(deps): update dependency node-fetch to v3
    • Schedule: ["at any time"]
    • Branch name: renovate/node-fetch-3.x
    • Merge into: master
    • Upgrade node-fetch to 3.2.0
    • Upgrade @​types/node-fetch to 3.0.2

    🚸 Branch creation will be limited to maximum 2 per hour, so it doesn't swamp any CI resources or spam the project. See docs for prhourlylimit for details.


    ❓ Got questions? Check out Renovate's Docs, particularly the Getting Started section. If you need any further assistance then you can also request help here.


    This PR has been generated by WhiteSource Renovate. View repository job log here.

    opened by renovate[bot] 2
  • Possible improvements?

    Possible improvements?

    Hello,

    Thank you for the (super fast and) very useful utility. I can think of a couple of optional improvements:

    • There could be a default pager when the output is more than one screen (similar to bat)
    • Colors could be also a good nice option

    But again, good job for the useful util :+1:

    enhancement 
    opened by farzadmf 2
  • chore(deps): bump clap from 4.0.13 to 4.0.24

    chore(deps): bump clap from 4.0.13 to 4.0.24

    Bumps clap from 4.0.13 to 4.0.24.

    Release notes

    Sourced from clap's releases.

    v4.0.24

    [4.0.24] - 2022-11-14

    Fixes

    • Avoid panic when printing an argument that isn't built

    v4.0.23

    [4.0.23] - 2022-11-11

    Fixes

    • Don't panic on reporting invalid-long errors when followed by invalid UTF8
    • (help) Clarified argument to help subcommand

    v4.0.22

    [4.0.22] - 2022-11-07

    Fixes

    • (help) Don't overflow into next-line-help early due to stale (pre-v4) padding calculations

    v4.0.21

    [4.0.21] - 2022-11-07

    Features

    • (derive) long_about and long_help attributes, without a value, force using doc comment (before it wouldn't be set if there wasn't anything different than the short help)

    v4.0.20

    [4.0.20] - 2022-11-07

    Fixes

    • (derive) Allow defaulted value parser for '()' fields

    v4.0.19

    [4.0.19] - 2022-11-04

    Features

    • ColorChoice now implements ValueEnum

    v4.0.18

    [4.0.18] - 2022-10-20

    Fixes

    • (derive) Allow #[command(skip)] to also work with enum variants with a value

    ... (truncated)

    Changelog

    Sourced from clap's changelog.

    [4.0.24] - 2022-11-14

    Fixes

    • Avoid panic when printing an argument that isn't built

    [4.0.23] - 2022-11-11

    Fixes

    • Don't panic on reporting invalid-long errors when followed by invalid UTF8
    • (help) Clarified argument to help subcommand

    [4.0.22] - 2022-11-07

    Fixes

    • (help) Don't overflow into next-line-help early due to stale (pre-v4) padding calculations

    [4.0.21] - 2022-11-07

    Features

    • (derive) long_about and long_help attributes, without a value, force using doc comment (before it wouldn't be set if there wasn't anything different than the short help)

    [4.0.20] - 2022-11-07

    Fixes

    • (derive) Allow defaulted value parser for '()' fields

    [4.0.19] - 2022-11-04

    Features

    • ColorChoice now implements ValueEnum

    [4.0.18] - 2022-10-20

    Fixes

    • (derive) Allow #[command(skip)] to also work with enum variants with a value

    [4.0.17] - 2022-10-18

    Fixes

    • Allow using Arg::last(true) with Arg::value_hint(ValueHint::CommandWithArguments)

    [4.0.16] - 2022-10-18

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependabot rust dependencies 
    opened by dependabot[bot] 1
  • chore(deps): bump clap from 4.0.13 to 4.0.22

    chore(deps): bump clap from 4.0.13 to 4.0.22

    Bumps clap from 4.0.13 to 4.0.22.

    Release notes

    Sourced from clap's releases.

    v4.0.22

    [4.0.22] - 2022-11-07

    Fixes

    • (help) Don't overflow into next-line-help early due to stale (pre-v4) padding calculations

    v4.0.21

    [4.0.21] - 2022-11-07

    Features

    • (derive) long_about and long_help attributes, without a value, force using doc comment (before it wouldn't be set if there wasn't anything different than the short help)

    v4.0.20

    [4.0.20] - 2022-11-07

    Fixes

    • (derive) Allow defaulted value parser for '()' fields

    v4.0.19

    [4.0.19] - 2022-11-04

    Features

    • ColorChoice now implements ValueEnum

    v4.0.18

    [4.0.18] - 2022-10-20

    Fixes

    • (derive) Allow #[command(skip)] to also work with enum variants with a value

    v4.0.17

    [4.0.17] - 2022-10-18

    Fixes

    • Allow using Arg::last(true) with Arg::value_hint(ValueHint::CommandWithArguments)

    v4.0.16

    [4.0.16] - 2022-10-18

    Fixes

    • Arg::exclusive(true) should not be exclusive with the argument's own ArgGroup

    v4.0.15

    ... (truncated)

    Changelog

    Sourced from clap's changelog.

    [4.0.22] - 2022-11-07

    Fixes

    • (help) Don't overflow into next-line-help early due to stale (pre-v4) padding calculations

    [4.0.21] - 2022-11-07

    Features

    • (derive) long_about and long_help attributes, without a value, force using doc comment (before it wouldn't be set if there wasn't anything different than the short help)

    [4.0.20] - 2022-11-07

    Fixes

    • (derive) Allow defaulted value parser for '()' fields

    [4.0.19] - 2022-11-04

    Features

    • ColorChoice now implements ValueEnum

    [4.0.18] - 2022-10-20

    Fixes

    • (derive) Allow #[command(skip)] to also work with enum variants with a value

    [4.0.17] - 2022-10-18

    Fixes

    • Allow using Arg::last(true) with Arg::value_hint(ValueHint::CommandWithArguments)

    [4.0.16] - 2022-10-18

    Fixes

    • Arg::exclusive(true) should not be exclusive with the argument's own ArgGroup

    [4.0.15] - 2022-10-13

    Fixes

    • (error) Don't suggest -- when it doesn't help
    • (error) Be more consistent in quoting, punctuation, and indentation in errors

    [4.0.14] - 2022-10-12

    ... (truncated)

    Commits
    • 6cbe5c4 chore: Release
    • d2739c9 docs: Update changelog
    • eaa6bfe Merge pull request #4463 from epage/help
    • dfe9e73 fix(help): Update auto-next-line to use new padding
    • 539577d refactor(help): Remove dead code
    • bc457b1 chore: Release
    • d5c3c13 docs: Update changelog
    • 87edc19 Merge pull request #4461 from epage/help
    • c37ab6c fix(derive): Allow 'long_help' to force populating from doc comment
    • 8751152 test(derive): Verify long_help behavior
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependabot rust dependencies 
    opened by dependabot[bot] 1
  • chore(deps): bump serde from 1.0.145 to 1.0.147

    chore(deps): bump serde from 1.0.145 to 1.0.147

    Bumps serde from 1.0.145 to 1.0.147.

    Release notes

    Sourced from serde's releases.

    v1.0.147

    • Add serde::de::value::EnumAccessDeserializer which transforms an EnumAccess into a Deserializer (#2305)

    v1.0.146

    • Allow internally tagged newtype variant to contain unit (#2303, thanks @​tage64)
    Commits
    • f415092 Release 1.0.147
    • 6d00971 Merge pull request #2305 from serde-rs/enumaccessdeserializer
    • 354b48f Add EnumAccessDeserializer to turn EnumAccess into a Deserializer
    • 3fd8e52 Release 1.0.146
    • 142dce0 Touch up PR 2303
    • 6aed101 Merge pull request #2303 from tage64/master
    • e2ccfd9 Remove bad deserialization from sequence to internally tagged newtype variant...
    • a07d794 Update test_suite/tests/test_annotations.rs
    • 90d28fc Serialize and deserialize a tagged newtype variant over unit () as if it was ...
    • 55cf0ac Merge pull request #2297 from serde-rs/output
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependabot rust dependencies 
    opened by dependabot[bot] 1
  • chore(deps): bump serde_json from 1.0.86 to 1.0.87

    chore(deps): bump serde_json from 1.0.86 to 1.0.87

    Bumps serde_json from 1.0.86 to 1.0.87.

    Release notes

    Sourced from serde_json's releases.

    v1.0.87

    • Add write_i128 and write_u128 methods to serde_json::Formatter to control the formatting of 128-bit integers (#940, thanks @​Lucretiel)
    Commits
    • 993e7a6 Release 1.0.87
    • 3107034 Eliminate needless 'tri!' from Serializer impl
    • 46c9778 Merge pull request #942 from serde-rs/integer128
    • 37e76e0 Assume serde_if_integer128 is true
    • ec0456a Use existing macros to implement 128-bit From impls
    • c183125 Merge pull request #941 from serde-rs/alloc
    • ab0f884 Delete 1.36+ caveat from descriptions of alloc feature
    • 486598b Merge pull request 940 from Lucretiel/int128
    • 84d6d95 Add direct support for i128 and u128 via itoa
    • See full diff in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependabot rust dependencies 
    opened by dependabot[bot] 1
  • chore(deps): bump clap from 4.0.13 to 4.0.18

    chore(deps): bump clap from 4.0.13 to 4.0.18

    Bumps clap from 4.0.13 to 4.0.18.

    Release notes

    Sourced from clap's releases.

    v4.0.18

    [4.0.18] - 2022-10-20

    Fixes

    • (derive) Allow #[command(skip)] to also work with enum variants with a value

    v4.0.17

    [4.0.17] - 2022-10-18

    Fixes

    • Allow using Arg::last(true) with Arg::value_hint(ValueHint::CommandWithArguments)

    v4.0.16

    [4.0.16] - 2022-10-18

    Fixes

    • Arg::exclusive(true) should not be exclusive with the argument's own ArgGroup

    v4.0.15

    [4.0.15] - 2022-10-13

    Fixes

    • (error) Don't suggest -- when it doesn't help
    • (error) Be more consistent in quoting, punctuation, and indentation in errors

    v4.0.14

    [4.0.14] - 2022-10-12

    Fixes

    • Only put ArgGroup in ArgMatches when explicitly specified, fixing derives handling of option-flattened fields (#4375)
    Changelog

    Sourced from clap's changelog.

    [4.0.18] - 2022-10-20

    Fixes

    • (derive) Allow #[command(skip)] to also work with enum variants with a value

    [4.0.17] - 2022-10-18

    Fixes

    • Allow using Arg::last(true) with Arg::value_hint(ValueHint::CommandWithArguments)

    [4.0.16] - 2022-10-18

    Fixes

    • Arg::exclusive(true) should not be exclusive with the argument's own ArgGroup

    [4.0.15] - 2022-10-13

    Fixes

    • (error) Don't suggest -- when it doesn't help
    • (error) Be more consistent in quoting, punctuation, and indentation in errors

    [4.0.14] - 2022-10-12

    Fixes

    • Only put ArgGroup in ArgMatches when explicitly specified, fixing derives handling of option-flattened fields (#4375)
    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependabot rust dependencies 
    opened by dependabot[bot] 1
  • chore(deps): bump clap from 4.0.13 to 4.0.15

    chore(deps): bump clap from 4.0.13 to 4.0.15

    Bumps clap from 4.0.13 to 4.0.15.

    Release notes

    Sourced from clap's releases.

    v4.0.15

    [4.0.15] - 2022-10-13

    Fixes

    • (error) Don't suggest -- when it doesn't help
    • (error) Be more consistent in quoting, punctuation, and indentation in errors

    v4.0.14

    [4.0.14] - 2022-10-12

    Fixes

    • Only put ArgGroup in ArgMatches when explicitly specified, fixing derives handling of option-flattened fields (#4375)
    Changelog

    Sourced from clap's changelog.

    [4.0.15] - 2022-10-13

    Fixes

    • (error) Don't suggest -- when it doesn't help
    • (error) Be more consistent in quoting, punctuation, and indentation in errors

    [4.0.14] - 2022-10-12

    Fixes

    • Only put ArgGroup in ArgMatches when explicitly specified, fixing derives handling of option-flattened fields (#4375)
    Commits
    • bd5a6ea chore: Release
    • 7eaeed3 docs: Update changelog
    • 0f6ef30 Merge pull request #4384 from epage/consistent
    • 0f3c98a fix(error): Be consistent in puncutation
    • 6422046 Merge pull request #4383 from epage/error
    • b9d2980 refactor(error): Move subcommand suggestion to general suggestions
    • 63eec40 refactor(error): Clarify distinct suggestion cases
    • 5275660 refactor(error): Move escape suggestion to general suggestion
    • 813060e refactor(error): Move bad-escape suggestion to general suggestion
    • 7417c75 refactor(error): Move escaped-subcmd suggestion to general suggestions
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependabot rust dependencies 
    opened by dependabot[bot] 1
  • chore(deps): bump clap from 3.2.22 to 4.0.12

    chore(deps): bump clap from 3.2.22 to 4.0.12

    Bumps clap from 3.2.22 to 4.0.12.

    Release notes

    Sourced from clap's releases.

    v4.0.12

    [4.0.12] - 2022-10-10

    Features

    • Added TypedValueParser::try_map for when adapting an existing TypedValueParser can fail
    • (error) Create errors like clap with Error::new, Error::with_cmd, and Error::insert

    v4.0.11

    [4.0.11] - 2022-10-09

    Fixes

    • (help) Fix wrapping calculations with ANSI escape codes

    v4.0.10

    [4.0.10] - 2022-10-05

    Features

    • (derive) Support #[arg(flatten)] on Option types (#4211, #4350)

    v4.0.9

    [4.0.9] - 2022-10-03

    Fixes

    • (derive) Process doc comments for #[command(subcommand)] like in clap v3

    v4.0.8

    [4.0.8] - 2022-10-01

    Fixes

    • (derive) Remove a low-value assert preventing defaulting Help and Version actions

    v4.0.7

    [4.0.7] - 2022-09-30

    Features

    • (derive) Populate implicit ArgGroup (#3165)

    Fixes

    • (derive) Support #[group(skip)] on Parser derive
    • (derive) Tell users about implicit arg groups when running into group name conflicts
    • (error) Don't report unrelated groups in conflict or requires errors

    v4.0.6

    ... (truncated)

    Changelog

    Sourced from clap's changelog.

    [4.0.12] - 2022-10-10

    Features

    • Added TypedValueParser::try_map for when adapting an existing TypedValueParser can fail
    • (error) Create errors like clap with Error::new, Error::with_cmd, and Error::insert

    [4.0.11] - 2022-10-09

    Fixes

    • (help) Fix wrapping calculations with ANSI escape codes

    [4.0.10] - 2022-10-05

    Features

    • (derive) Support #[arg(flatten)] on Option types (#4211, #4350)

    [4.0.9] - 2022-10-03

    Fixes

    • (derive) Process doc comments for #[command(subcommand)] like in clap v3

    [4.0.8] - 2022-10-01

    Fixes

    • (derive) Remove a low-value assert preventing defaulting Help and Version actions

    [4.0.7] - 2022-09-30

    Features

    • (derive) Populate implicit ArgGroup (#3165)

    Fixes

    • (derive) Support #[group(skip)] on Parser derive
    • (derive) Tell users about implicit arg groups when running into group name conflicts
    • (error) Don't report unrelated groups in conflict or requires errors

    [4.0.6] - 2022-09-30

    Features

    [4.0.5] - 2022-09-30

    ... (truncated)

    Commits
    • a2f2a9a chore: Release
    • d821d2f docs: Update changelog
    • f432422 Merge pull request #4366 from epage/try_map
    • 2122e2b feat(parser): Add TypedValueParser::try_map
    • 233a6be Merge pull request #4365 from epage/error
    • 502bb93 feat(error): Allow reproducing clap's errors
    • 5b763e9 docs: Fix value_parser documented From types
    • a482b8a Merge pull request #4355 from LingMan/patch-1
    • fd41141 docs: Clarify args_override_self
    • 59bf166 docs(tutorial): Fix flag actions
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependabot rust dependencies 
    opened by dependabot[bot] 1
  • chore(deps): bump clap from 3.2.22 to 4.0.9

    chore(deps): bump clap from 3.2.22 to 4.0.9

    Bumps clap from 3.2.22 to 4.0.9.

    Release notes

    Sourced from clap's releases.

    v4.0.9

    [4.0.9] - 2022-10-03

    Fixes

    • (derive) Process doc comments for #[command(subcommand)] like in clap v3

    v4.0.8

    [4.0.8] - 2022-10-01

    Fixes

    • (derive) Remove a low-value assert preventing defaulting Help and Version actions

    v4.0.7

    [4.0.7] - 2022-09-30

    Features

    • (derive) Populate implicit ArgGroup (#3165)

    Fixes

    • (derive) Support #[group(skip)] on Parser derive
    • (derive) Tell users about implicit arg groups when running into group name conflicts
    • (error) Don't report unrelated groups in conflict or requires errors

    v4.0.6

    [4.0.6] - 2022-09-30

    Features

    v4.0.5

    [4.0.5] - 2022-09-30

    v4.0.4

    [4.0.4] - 2022-09-29

    Fixes

    • (error) Specialize the self-conflict error to look like clap v3

    v4.0.3

    [4.0.3] - 2022-09-29

    Fixes

    • (error) Quote literals consistently

    ... (truncated)

    Changelog

    Sourced from clap's changelog.

    [4.0.9] - 2022-10-03

    Fixes

    • (derive) Process doc comments for #[command(subcommand)] like in clap v3

    [4.0.8] - 2022-10-01

    Fixes

    • (derive) Remove a low-value assert preventing defaulting Help and Version actions

    [4.0.7] - 2022-09-30

    Features

    • (derive) Populate implicit ArgGroup (#3165)

    Fixes

    • (derive) Support #[group(skip)] on Parser derive
    • (derive) Tell users about implicit arg groups when running into group name conflicts
    • (error) Don't report unrelated groups in conflict or requires errors

    [4.0.6] - 2022-09-30

    Features

    [4.0.5] - 2022-09-30

    [4.0.4] - 2022-09-29

    Fixes

    • (error) Specialize the self-conflict error to look like clap v3

    [4.0.3] - 2022-09-29

    Fixes

    • (error) Quote literals consistently
    • (error) Stylize escape (--) suggestions
    • (error) Format help flag as a literal

    [4.0.2] - 2022-09-28

    Fixes

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependabot rust dependencies 
    opened by dependabot[bot] 1
  • chore(deps): bump clap from 4.0.13 to 4.0.26

    chore(deps): bump clap from 4.0.13 to 4.0.26

    Bumps clap from 4.0.13 to 4.0.26.

    Release notes

    Sourced from clap's releases.

    v4.0.26

    [4.0.26] - 2022-11-16

    Fixes

    • (error) Fix typos in ContextKind::as_str

    v4.0.25

    [4.0.25] - 2022-11-15

    Features

    • (error) Report available subcommands when required subcommand is missing

    v4.0.24

    [4.0.24] - 2022-11-14

    Fixes

    • Avoid panic when printing an argument that isn't built

    v4.0.23

    [4.0.23] - 2022-11-11

    Fixes

    • Don't panic on reporting invalid-long errors when followed by invalid UTF8
    • (help) Clarified argument to help subcommand

    v4.0.22

    [4.0.22] - 2022-11-07

    Fixes

    • (help) Don't overflow into next-line-help early due to stale (pre-v4) padding calculations

    v4.0.21

    [4.0.21] - 2022-11-07

    Features

    • (derive) long_about and long_help attributes, without a value, force using doc comment (before it wouldn't be set if there wasn't anything different than the short help)

    v4.0.20

    [4.0.20] - 2022-11-07

    Fixes

    • (derive) Allow defaulted value parser for '()' fields

    ... (truncated)

    Changelog

    Sourced from clap's changelog.

    [4.0.26] - 2022-11-16

    Fixes

    • (error) Fix typos in ContextKind::as_str

    [4.0.25] - 2022-11-15

    Features

    • (error) Report available subcommands when required subcommand is missing

    [4.0.24] - 2022-11-14

    Fixes

    • Avoid panic when printing an argument that isn't built

    [4.0.23] - 2022-11-11

    Fixes

    • Don't panic on reporting invalid-long errors when followed by invalid UTF8
    • (help) Clarified argument to help subcommand

    [4.0.22] - 2022-11-07

    Fixes

    • (help) Don't overflow into next-line-help early due to stale (pre-v4) padding calculations

    [4.0.21] - 2022-11-07

    Features

    • (derive) long_about and long_help attributes, without a value, force using doc comment (before it wouldn't be set if there wasn't anything different than the short help)

    [4.0.20] - 2022-11-07

    Fixes

    • (derive) Allow defaulted value parser for '()' fields

    [4.0.19] - 2022-11-04

    Features

    • ColorChoice now implements ValueEnum

    [4.0.18] - 2022-10-20

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependabot rust dependencies 
    opened by dependabot[bot] 0
  • chore(deps): bump pnpm/action-setup from 2.2.2 to 2.2.4

    chore(deps): bump pnpm/action-setup from 2.2.2 to 2.2.4

    Bumps pnpm/action-setup from 2.2.2 to 2.2.4.

    Release notes

    Sourced from pnpm/action-setup's releases.

    v2.2.4

    No deprecation warnings are printed about set-state and set-output commands (pnpm/action-setup#57)

    v2.2.3

    Bump Node.js version to 16 pnpm/action-setup#56

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    github-actions dependabot 
    opened by dependabot[bot] 0
  • Add 'arm64-darwin' build and publish to Homebrew and MacPorts

    Add 'arm64-darwin' build and publish to Homebrew and MacPorts

    pdu builds for arm64-darwin, so having native builds would be nice in the current or next release. It would also be nice to publish pdu onto Homebrew and MacPorts.

    help wanted good first issue 
    opened by thebitstick 3
  • Lots of errors on runtime on macOS by default

    Lots of errors on runtime on macOS by default

    The macOS file system is very picky about reading going through a user's home directory, so after approving the terminal app to access Reminders, Photos etc, pdu spits out these errors:

    [error] read_dir "./Library/SafariTechnologyPreview": Operation not permitted (os error 1)
    [error] read_dir "./.Trash": Operation not permitted (os error 1)
    [error] read_dir "./Library/DuetExpertCenter": Operation not permitted (os error 1)
    [error] read_dir "./Library/Autosave Information": Operation not permitted (os error 1)
    [error] read_dir "./Library/IdentityServices": Operation not permitted (os error 1)
    [error] read_dir "./Library/Accounts": Operation not permitted (os error 1)
    [error] read_dir "./Library/Safari": Operation not permitted (os error 1)
    [error] read_dir "./Library/Biome": Operation not permitted (os error 1)
    [error] read_dir "./Library/Shortcuts": Operation not permitted (os error 1)
    [error] read_dir "./Library/Messages": Operation not permitted (os error 1)
    [error] read_dir "./Library/HomeKit": Operation not permitted (os error 1)
    [error] read_dir "./Library/Sharing": Operation not permitted (os error 1)
    [error] read_dir "./Library/Mail": Operation not permitted (os error 1)
    [error] read_dir "./Library/Containers/com.apple.VoiceMemos": Operation not permitted (os error 1)
    [error] read_dir "./Library/Containers/com.apple.archiveutility": Operation not permitted (os error 1)
    [error] read_dir "./Library/CoreFollowUp": Operation not permitted (os error 1)
    [error] read_dir "./Library/StatusKit": Operation not permitted (os error 1)
    [error] read_dir "./Library/Cookies": Operation not permitted (os error 1)
    [error] read_dir "./Library/Caches/com.apple.HomeKit": Operation not permitted (os error 1)
    [error] read_dir "./Library/Caches/CloudKit": Operation not permitted (os error 1)
    [error] read_dir "./Library/Caches/com.apple.Safari": Operation not permitted (os error 1)
    [error] read_dir "./Library/Suggestions": Operation not permitted (os error 1)
    [error] read_dir "./Library/Metadata/CoreSpotlight": Operation not permitted (os error 1)
    [error] read_dir "./Library/Metadata/com.apple.IntelligentSuggestions": Operation not permitted (os error 1)
    [error] read_dir "./Library/Group Containers/group.com.apple.secure-control-center-preferences": Operation not permitted (os error 1)
    [error] read_dir "./Library/PersonalizationPortrait": Operation not permitted (os error 1)
    [error] read_dir "./Library/Group Containers/group.com.apple.notes": Operation not permitted (os error 1)
    [error] read_dir "./Library/Caches/FamilyCircle": Operation not permitted (os error 1)
    [error] read_dir "./Library/Caches/com.apple.homed": Operation not permitted (os error 1)
    [error] read_dir "./Library/Caches/com.apple.ap.adprivacyd": Operation not permitted (os error 1)
    [error] read_dir "./Library/Application Support/MobileSync": Operation not permitted (os error 1)
    [error] read_dir "./Library/Application Support/CallHistoryTransactions": Operation not permitted (os error 1)
    [error] read_dir "./Library/Application Support/com.apple.AuthenticationServices/CredentialProviders": Operation not permitted (os error 1)
    [error] read_dir "./Library/Containers/com.apple.Notes": Operation not permitted (os error 1)
    [error] read_dir "./Library/Containers/com.apple.Home": Operation not permitted (os error 1)
    [error] read_dir "./Library/Containers/com.apple.Safari": Operation not permitted (os error 1)
    [error] read_dir "./Library/Containers/com.apple.news": Operation not permitted (os error 1)
    [error] read_dir "./Library/Application Support/CloudDocs/session/db": Operation not permitted (os error 1)
    [error] read_dir "./Library/Application Support/com.apple.sharedfilelist": Operation not permitted (os error 1)
    [error] read_dir "./Library/Application Support/Knowledge": Operation not permitted (os error 1)
    [error] read_dir "./Library/Application Support/com.apple.TCC": Operation not permitted (os error 1)
    [error] read_dir "./Library/Application Support/FileProvider": Operation not permitted (os error 1)
    [error] read_dir "./Library/Application Support/com.apple.avfoundation/Frecents": Operation not permitted (os error 1)
    [error] read_dir "./Library/Application Support/CallHistoryDB": Operation not permitted (os error 1)
    [error] read_dir "./Library/Containers/com.apple.CloudDocs.MobileDocumentsFileProvider": Operation not permitted (os error 1)
    [error] read_dir "./Library/Containers/com.apple.mail": Operation not permitted (os error 1)
    [error] read_dir "./Library/Containers/com.apple.corerecents.recentsd/Data/Library/Recents": Operation not permitted (os error 1)
    [error] read_dir "./Library/Containers/com.apple.stocks": Operation not permitted (os error 1)
    [error] read_dir "./Library/Containers/com.apple.SafariTechnologyPreview": Operation not permitted (os error 1)
    [error] read_dir "./Library/Assistant/SiriVocabulary": Operation not permitted (os error 1)
    

    On the contrast, dust spits out this error:

    Did not have permissions for all directories
    

    And both GNU du and BSD du on macOS spits out these errors:

    du: cannot read directory './Library/SafariTechnologyPreview': Operation not permitted
    du: cannot read directory './Library/Application Support/MobileSync': Operation not permitted
    du: cannot read directory './Library/Application Support/CallHistoryTransactions': Operation not permitted
    du: cannot read directory './Library/Application Support/com.apple.AuthenticationServices/CredentialProviders': Operation not permitted
    du: cannot read directory './Library/Application Support/CloudDocs/session/db': Operation not permitted
    du: cannot read directory './Library/Application Support/com.apple.sharedfilelist': Operation not permitted
    du: cannot read directory './Library/Application Support/Knowledge': Operation not permitted
    du: cannot read directory './Library/Application Support/com.apple.TCC': Operation not permitted
    du: cannot read directory './Library/Application Support/FileProvider': Operation not permitted
    du: cannot read directory './Library/Application Support/com.apple.avfoundation/Frecents': Operation not permitted
    du: cannot read directory './Library/Application Support/CallHistoryDB': Operation not permitted
    du: cannot read directory './Library/Assistant/SiriVocabulary': Operation not permitted
    du: cannot read directory './Library/Autosave Information': Operation not permitted
    du: cannot read directory './Library/IdentityServices': Operation not permitted
    du: cannot read directory './Library/Messages': Operation not permitted
    du: cannot read directory './Library/HomeKit': Operation not permitted
    du: cannot read directory './Library/Sharing': Operation not permitted
    du: cannot read directory './Library/Mail': Operation not permitted
    du: cannot read directory './Library/DuetExpertCenter': Operation not permitted
    du: cannot read directory './Library/Accounts': Operation not permitted
    du: cannot read directory './Library/Safari': Operation not permitted
    du: cannot read directory './Library/Biome': Operation not permitted
    du: cannot read directory './Library/Shortcuts': Operation not permitted
    du: cannot read directory './Library/Suggestions': Operation not permitted
    du: cannot read directory './Library/Group Containers/group.com.apple.secure-control-center-preferences': Operation not permitted
    du: cannot read directory './Library/Group Containers/group.com.apple.notes': Operation not permitted
    du: cannot read directory './Library/Containers/com.apple.VoiceMemos': Operation not permitted
    du: cannot read directory './Library/Containers/com.apple.archiveutility': Operation not permitted
    du: cannot read directory './Library/Containers/com.apple.Home': Operation not permitted
    du: cannot read directory './Library/Containers/com.apple.Safari': Operation not permitted
    du: cannot read directory './Library/Containers/com.apple.CloudDocs.MobileDocumentsFileProvider': Operation not permitted
    du: cannot read directory './Library/Containers/com.apple.mail': Operation not permitted
    du: cannot read directory './Library/Containers/com.apple.Notes': Operation not permitted
    du: cannot read directory './Library/Containers/com.apple.news': Operation not permitted
    du: cannot read directory './Library/Containers/com.apple.corerecents.recentsd/Data/Library/Recents': Operation not permitted
    du: cannot read directory './Library/Containers/com.apple.stocks': Operation not permitted
    du: cannot read directory './Library/Containers/com.apple.SafariTechnologyPreview': Operation not permitted
    du: cannot read directory './Library/PersonalizationPortrait': Operation not permitted
    du: cannot read directory './Library/Metadata/CoreSpotlight': Operation not permitted
    du: cannot read directory './Library/Metadata/com.apple.IntelligentSuggestions': Operation not permitted
    du: cannot read directory './Library/Cookies': Operation not permitted
    du: cannot read directory './Library/CoreFollowUp': Operation not permitted
    du: cannot read directory './Library/StatusKit': Operation not permitted
    du: cannot read directory './Library/Caches/com.apple.HomeKit': Operation not permitted
    du: cannot read directory './Library/Caches/CloudKit': Operation not permitted
    du: cannot read directory './Library/Caches/com.apple.Safari': Operation not permitted
    du: cannot read directory './Library/Caches/FamilyCircle': Operation not permitted
    du: cannot read directory './Library/Caches/com.apple.homed': Operation not permitted
    du: cannot read directory './Library/Caches/com.apple.ap.adprivacyd': Operation not permitted
    
    question 
    opened by thebitstick 4
  • exclude path option

    exclude path option

    It would be great to be able to exclude some paths, for example: pdu $HOME -E subdir1 -E subdir2 or maybe even more fined grain like some specific extensions or filenames (but path is my main use case). For completeness an include could also be useful when it's easier to filter by inclusion than exclusion.

    opened by voidexpr 2
Releases(0.8.3)
Owner
Khải
In the date of my birth, the last spark of light extinguished, darkness swallowed everything, it was... evening.
Khải
Serve-live: static directory server with change notification

Serve a directory of static files, with server-sent events for automatic refresh.

Jim Blandy 2 Mar 12, 2022
fftp is the "Fast File Transport Protocol". It transfers files quickly between computers on a network with low overhead.

fftp fftp is the "Fast File Transport Protocol". It transfers files quickly between computers on a network with low overhead. Motivation FTP uses two

leo 4 May 12, 2022
Collects accurate files while running in parallel through directories. (Simple, Fast, Powerful)

collectfiles Collects accurate files while running in parallel through directories. (Simple, Fast, Powerful) | Docs | Latest Note | [dependencies] col

Doha Lee 2 Jun 1, 2022
Minty is an amazingly fast file deduplication app built in rust with a rust user interface.

minty Project Minty has a new look and feel!!! Minty is an amazingly fast file deduplication app built in rust with a rust user interface. I say super

null 26 Nov 20, 2022
Multiplex server for rust-analyzer, allows multiple LSP clients (editor windows) to share a single rust-analyzer instance per cargo workspace

ra-multiplex   Multiplex server for rust-analyzer, allows multiple LSP clients (editor windows) to share a single rust-analyzer instance per cargo wor

max 90 Nov 23, 2022
dua (-> Disk Usage Analyzer) is a tool to conveniently learn about the usage of disk space of a given directory

dua (-> Disk Usage Analyzer) is a tool to conveniently learn about the usage of disk space of a given directory. It's parallel by default and will max

Sebastian Thiel 1.7k Nov 29, 2022
Untree converts tree diagrams produced by tree back into directory file structures.

Untree: Undoing tree for fun and profit Untree converts tree diagrams produced by tree back into directory file structures. Let's say you have the fol

Alecto Irene Perez 91 Oct 7, 2022
File Tree Fuzzer allows you to create a pseudo-random directory hierarchy filled with some number of files.

FTZZ File Tree Fuzzer allows you to create a pseudo-random directory hierarchy filled with some number of files. Installation $ cargo +nightly install

Alex Saveau 21 Nov 27, 2022
Automatically build a Rust module tree from the project directory structure

Hypermod An even lazier version of automod and supermod. Searches the src/ directory recursively for .rs files, then builds a module tree using the di

null 4 Aug 3, 2022
A fast and flexible analyzer for GML. 🦆

duck ⚠️ duck is not yet released and is unstable! An announcement will be made when 0.1.0 is released. A fast and flexible analyzer for GML (GameMaker

gabe weiner 8 Sep 28, 2022
rust-analyzer is a modular compiler frontend for the Rust language

rust-analyzer is a modular compiler frontend for the Rust language. It is a part of a larger rls-2.0 effort to create excellent IDE support for Rust.

null 11k Nov 27, 2022
A Japanese Morphological Analyzer written in pure Rust

Yoin - A Japanese Morphological Analyzer yoin is a Japanese morphological analyze engine written in pure Rust. mecab-ipadic is embedded in yoin. :) $

Agata Naomichi 21 Apr 30, 2022
SQL / SQLI tokenizer parser analyzer

libinjection SQL / SQLI tokenizer parser analyzer. For C and C++ PHP Python Lua Java (external port) [LuaJIT/FFI]

Nick Galbreath 925 Nov 24, 2022
Shisho is a lightweight static analyzer for developers.

Lightweight static analyzer for several programming languages

Flatt Security Inc. 342 Nov 11, 2022
Hashlink bytecode disassembler, analyzer, decompiler and assembler.

Hashlink bytecode This repository contains a collection of Rust crates and cli tools to load, disassemble, decompile and analyze Hashlink bytecode. Re

Guillaume Anthouard 23 Nov 26, 2022
ik-analyzer for rust; chinese tokenizer for tantivy

ik-rs ik-analyzer for Rust support Tantivy Usage Chinese Segment let mut ik = IKSegmenter::new(); let text = "中华人民共和国"; let tokens = ik.to

Shen Yanchao 3 Nov 14, 2022
tectonicdb is a fast, highly compressed standalone database and streaming protocol for order book ticks.

tectonicdb crate docs.rs crate.io tectonicdb tdb-core tdb-server-core tdb-cli tectonicdb is a fast, highly compressed standalone database and streamin

Ricky Han 516 Nov 25, 2022
Count your code by tokens, types of syntax tree nodes, and patterns in the syntax tree. A tokei/scc/cloc alternative.

tcount (pronounced "tee-count") Count your code by tokens, types of syntax tree nodes, and patterns in the syntax tree. Quick Start Simply run tcount

Adam P. Regasz-Rethy 49 Nov 24, 2022
Traversal of tree-sitter Trees and any arbitrary tree with a TreeCursor-like interface

tree-sitter-traversal Traversal of tree-sitter Trees and any arbitrary tree with a TreeCursor-like interface. Using cursors, iteration over the tree c

Sebastian Mendez 11 Jul 16, 2022
As-tree - Print a list of paths as a tree of paths 🌳

as-tree Print a list of paths as a tree of paths. For example, given: dir1/foo.txt dir1/bar.txt dir2/qux.txt it will print: . ├── dir1 │ ├── foo.tx

Jake Zimmerman 394 Nov 21, 2022