{"id":13599835,"url":"https://github.com/Byron/jwalk","last_synced_at":"2025-04-10T17:32:40.706Z","repository":{"id":47437682,"uuid":"168006960","full_name":"Byron/jwalk","owner":"Byron","description":"Filesystem walk performed in parallel with streamed and sorted results","archived":false,"fork":false,"pushed_at":"2024-04-04T12:16:09.000Z","size":229,"stargazers_count":233,"open_issues_count":11,"forks_count":21,"subscribers_count":9,"default_branch":"main","last_synced_at":"2025-04-08T12:06:20.216Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Byron.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-01-28T17:43:10.000Z","updated_at":"2025-04-05T09:23:24.000Z","dependencies_parsed_at":"2024-08-13T22:26:09.785Z","dependency_job_id":null,"html_url":"https://github.com/Byron/jwalk","commit_stats":null,"previous_names":["jessegrosjean/jwalk"],"tags_count":21,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Byron%2Fjwalk","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Byron%2Fjwalk/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Byron%2Fjwalk/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Byron%2Fjwalk/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Byron","download_url":"https://codeload.github.com/Byron/jwalk/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247838443,"owners_count":21004580,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-01T17:01:13.233Z","updated_at":"2025-04-10T17:32:40.672Z","avatar_url":"https://github.com/Byron.png","language":"Rust","funding_links":[],"categories":["Rust"],"sub_categories":[],"readme":"jwalk\n=======\n\nFilesystem walk.\n\n- Performed in parallel using rayon\n- Entries streamed in sorted order \n- Custom sort/filter/skip/state\n\n[![Build Status](https://travis-ci.org/Byron/jwalk.svg?branch=main)](https://travis-ci.org/Byron/jwalk)\n[![Latest version](http://meritbadge.herokuapp.com/jwalk)](https://crates.io/crates/jwalk)\n\n### Usage\n\nAdd this to your `Cargo.toml`:\n\n```toml\n[dependencies]\njwalk = \"0.5\"\n```\n\nLean More: [docs.rs/jwalk](https://docs.rs/jwalk)\n\n### Example\n\nRecursively iterate over the \"foo\" directory sorting by name:\n\n```rust\nuse jwalk::{WalkDir};\n\nfor entry in WalkDir::new(\"foo\").sort(true) {\n  println!(\"{}\", entry?.path().display());\n}\n```\n\n### Inspiration\n\nThis crate is inspired by both [`walkdir`](https://crates.io/crates/walkdir) and\n[`ignore`](https://crates.io/crates/ignore). It attempts to combine the\nparallelism of `ignore` with `walkdir`'s streaming iterator API. Some code and\ncomments are copied directly from `walkdir`.\n\n### Why use this crate?\n\nThis crate is particularly good when you want streamed sorted results. In my\ntests it's about 4x `walkdir` speed for sorted results with metadata. Also this\ncrate's `process_read_dir` callback allows you to arbitrarily\nsort/filter/skip/state entries before they are yielded.\n\n### Why not use this crate?\n\nDirectory traversal is already pretty fast. If you don't need this crate's speed\nthen `walkdir` provides a smaller and more tested single threaded\nimplementation.\n\nThis crates parallelism happens at the directory level. It will help when\nwalking deep file systems with many directories. It wont help when reading a\nsingle directory with many files.\n\n### Benchmarks\n\n[Benchmarks](https://github.com/jessegrosjean/jwalk/blob/main/benches/benchmarks.md)\ncomparing this crate with `walkdir` and `ignore`.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FByron%2Fjwalk","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FByron%2Fjwalk","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FByron%2Fjwalk/lists"}