diff --git a/grep-cli/Cargo.toml b/crates/cli/Cargo.toml similarity index 100% rename from grep-cli/Cargo.toml rename to crates/cli/Cargo.toml diff --git a/globset/LICENSE-MIT b/crates/cli/LICENSE-MIT similarity index 100% rename from globset/LICENSE-MIT rename to crates/cli/LICENSE-MIT diff --git a/grep-cli/README.md b/crates/cli/README.md similarity index 100% rename from grep-cli/README.md rename to crates/cli/README.md diff --git a/globset/UNLICENSE b/crates/cli/UNLICENSE similarity index 100% rename from globset/UNLICENSE rename to crates/cli/UNLICENSE diff --git a/grep-cli/src/decompress.rs b/crates/cli/src/decompress.rs similarity index 100% rename from grep-cli/src/decompress.rs rename to crates/cli/src/decompress.rs diff --git a/grep-cli/src/escape.rs b/crates/cli/src/escape.rs similarity index 100% rename from grep-cli/src/escape.rs rename to crates/cli/src/escape.rs diff --git a/grep-cli/src/human.rs b/crates/cli/src/human.rs similarity index 100% rename from grep-cli/src/human.rs rename to crates/cli/src/human.rs diff --git a/grep-cli/src/lib.rs b/crates/cli/src/lib.rs similarity index 100% rename from grep-cli/src/lib.rs rename to crates/cli/src/lib.rs diff --git a/grep-cli/src/pattern.rs b/crates/cli/src/pattern.rs similarity index 100% rename from grep-cli/src/pattern.rs rename to crates/cli/src/pattern.rs diff --git a/grep-cli/src/process.rs b/crates/cli/src/process.rs similarity index 100% rename from grep-cli/src/process.rs rename to crates/cli/src/process.rs diff --git a/grep-cli/src/wtr.rs b/crates/cli/src/wtr.rs similarity index 100% rename from grep-cli/src/wtr.rs rename to crates/cli/src/wtr.rs diff --git a/src/app.rs b/crates/core/app.rs similarity index 100% rename from src/app.rs rename to crates/core/app.rs diff --git a/src/args.rs b/crates/core/args.rs similarity index 100% rename from src/args.rs rename to crates/core/args.rs diff --git a/src/config.rs b/crates/core/config.rs similarity index 100% rename from src/config.rs rename to crates/core/config.rs diff --git a/src/logger.rs b/crates/core/logger.rs similarity index 100% rename from src/logger.rs rename to crates/core/logger.rs diff --git a/src/main.rs b/crates/core/main.rs similarity index 100% rename from src/main.rs rename to crates/core/main.rs diff --git a/src/messages.rs b/crates/core/messages.rs similarity index 100% rename from src/messages.rs rename to crates/core/messages.rs diff --git a/src/path_printer.rs b/crates/core/path_printer.rs similarity index 100% rename from src/path_printer.rs rename to crates/core/path_printer.rs diff --git a/src/search.rs b/crates/core/search.rs similarity index 100% rename from src/search.rs rename to crates/core/search.rs diff --git a/src/subject.rs b/crates/core/subject.rs similarity index 100% rename from src/subject.rs rename to crates/core/subject.rs diff --git a/globset/COPYING b/crates/globset/COPYING similarity index 100% rename from globset/COPYING rename to crates/globset/COPYING diff --git a/globset/Cargo.toml b/crates/globset/Cargo.toml similarity index 100% rename from globset/Cargo.toml rename to crates/globset/Cargo.toml diff --git a/grep-cli/LICENSE-MIT b/crates/globset/LICENSE-MIT similarity index 100% rename from grep-cli/LICENSE-MIT rename to crates/globset/LICENSE-MIT diff --git a/globset/README.md b/crates/globset/README.md similarity index 100% rename from globset/README.md rename to crates/globset/README.md diff --git a/grep-cli/UNLICENSE b/crates/globset/UNLICENSE similarity index 100% rename from grep-cli/UNLICENSE rename to crates/globset/UNLICENSE diff --git a/globset/benches/bench.rs b/crates/globset/benches/bench.rs similarity index 100% rename from globset/benches/bench.rs rename to crates/globset/benches/bench.rs diff --git a/globset/src/glob.rs b/crates/globset/src/glob.rs similarity index 100% rename from globset/src/glob.rs rename to crates/globset/src/glob.rs diff --git a/globset/src/lib.rs b/crates/globset/src/lib.rs similarity index 100% rename from globset/src/lib.rs rename to crates/globset/src/lib.rs diff --git a/globset/src/pathutil.rs b/crates/globset/src/pathutil.rs similarity index 100% rename from globset/src/pathutil.rs rename to crates/globset/src/pathutil.rs diff --git a/grep/COPYING b/crates/grep/COPYING similarity index 100% rename from grep/COPYING rename to crates/grep/COPYING diff --git a/grep/Cargo.toml b/crates/grep/Cargo.toml similarity index 100% rename from grep/Cargo.toml rename to crates/grep/Cargo.toml diff --git a/grep-matcher/LICENSE-MIT b/crates/grep/LICENSE-MIT similarity index 100% rename from grep-matcher/LICENSE-MIT rename to crates/grep/LICENSE-MIT diff --git a/grep/README.md b/crates/grep/README.md similarity index 100% rename from grep/README.md rename to crates/grep/README.md diff --git a/grep-matcher/UNLICENSE b/crates/grep/UNLICENSE similarity index 100% rename from grep-matcher/UNLICENSE rename to crates/grep/UNLICENSE diff --git a/grep/examples/simplegrep.rs b/crates/grep/examples/simplegrep.rs similarity index 100% rename from grep/examples/simplegrep.rs rename to crates/grep/examples/simplegrep.rs diff --git a/grep/src/lib.rs b/crates/grep/src/lib.rs similarity index 100% rename from grep/src/lib.rs rename to crates/grep/src/lib.rs diff --git a/ignore/COPYING b/crates/ignore/COPYING similarity index 100% rename from ignore/COPYING rename to crates/ignore/COPYING diff --git a/ignore/Cargo.toml b/crates/ignore/Cargo.toml similarity index 100% rename from ignore/Cargo.toml rename to crates/ignore/Cargo.toml diff --git a/grep-pcre2/LICENSE-MIT b/crates/ignore/LICENSE-MIT similarity index 100% rename from grep-pcre2/LICENSE-MIT rename to crates/ignore/LICENSE-MIT diff --git a/ignore/README.md b/crates/ignore/README.md similarity index 100% rename from ignore/README.md rename to crates/ignore/README.md diff --git a/grep-pcre2/UNLICENSE b/crates/ignore/UNLICENSE similarity index 100% rename from grep-pcre2/UNLICENSE rename to crates/ignore/UNLICENSE diff --git a/ignore/examples/walk.rs b/crates/ignore/examples/walk.rs similarity index 100% rename from ignore/examples/walk.rs rename to crates/ignore/examples/walk.rs diff --git a/ignore/src/default_types.rs b/crates/ignore/src/default_types.rs similarity index 100% rename from ignore/src/default_types.rs rename to crates/ignore/src/default_types.rs diff --git a/ignore/src/dir.rs b/crates/ignore/src/dir.rs similarity index 100% rename from ignore/src/dir.rs rename to crates/ignore/src/dir.rs diff --git a/ignore/src/gitignore.rs b/crates/ignore/src/gitignore.rs similarity index 100% rename from ignore/src/gitignore.rs rename to crates/ignore/src/gitignore.rs diff --git a/ignore/src/lib.rs b/crates/ignore/src/lib.rs similarity index 100% rename from ignore/src/lib.rs rename to crates/ignore/src/lib.rs diff --git a/ignore/src/overrides.rs b/crates/ignore/src/overrides.rs similarity index 100% rename from ignore/src/overrides.rs rename to crates/ignore/src/overrides.rs diff --git a/ignore/src/pathutil.rs b/crates/ignore/src/pathutil.rs similarity index 100% rename from ignore/src/pathutil.rs rename to crates/ignore/src/pathutil.rs diff --git a/ignore/src/types.rs b/crates/ignore/src/types.rs similarity index 100% rename from ignore/src/types.rs rename to crates/ignore/src/types.rs diff --git a/ignore/src/walk.rs b/crates/ignore/src/walk.rs similarity index 100% rename from ignore/src/walk.rs rename to crates/ignore/src/walk.rs diff --git a/ignore/tests/gitignore_matched_path_or_any_parents_tests.gitignore b/crates/ignore/tests/gitignore_matched_path_or_any_parents_tests.gitignore similarity index 100% rename from ignore/tests/gitignore_matched_path_or_any_parents_tests.gitignore rename to crates/ignore/tests/gitignore_matched_path_or_any_parents_tests.gitignore diff --git a/ignore/tests/gitignore_matched_path_or_any_parents_tests.rs b/crates/ignore/tests/gitignore_matched_path_or_any_parents_tests.rs similarity index 100% rename from ignore/tests/gitignore_matched_path_or_any_parents_tests.rs rename to crates/ignore/tests/gitignore_matched_path_or_any_parents_tests.rs diff --git a/grep-matcher/Cargo.toml b/crates/matcher/Cargo.toml similarity index 100% rename from grep-matcher/Cargo.toml rename to crates/matcher/Cargo.toml diff --git a/grep-printer/LICENSE-MIT b/crates/matcher/LICENSE-MIT similarity index 100% rename from grep-printer/LICENSE-MIT rename to crates/matcher/LICENSE-MIT diff --git a/grep-matcher/README.md b/crates/matcher/README.md similarity index 100% rename from grep-matcher/README.md rename to crates/matcher/README.md diff --git a/grep-printer/UNLICENSE b/crates/matcher/UNLICENSE similarity index 100% rename from grep-printer/UNLICENSE rename to crates/matcher/UNLICENSE diff --git a/grep-matcher/src/interpolate.rs b/crates/matcher/src/interpolate.rs similarity index 100% rename from grep-matcher/src/interpolate.rs rename to crates/matcher/src/interpolate.rs diff --git a/grep-matcher/src/lib.rs b/crates/matcher/src/lib.rs similarity index 100% rename from grep-matcher/src/lib.rs rename to crates/matcher/src/lib.rs diff --git a/grep-matcher/tests/test_matcher.rs b/crates/matcher/tests/test_matcher.rs similarity index 100% rename from grep-matcher/tests/test_matcher.rs rename to crates/matcher/tests/test_matcher.rs diff --git a/grep-matcher/tests/tests.rs b/crates/matcher/tests/tests.rs similarity index 100% rename from grep-matcher/tests/tests.rs rename to crates/matcher/tests/tests.rs diff --git a/grep-matcher/tests/util.rs b/crates/matcher/tests/util.rs similarity index 100% rename from grep-matcher/tests/util.rs rename to crates/matcher/tests/util.rs diff --git a/grep-pcre2/Cargo.toml b/crates/pcre2/Cargo.toml similarity index 100% rename from grep-pcre2/Cargo.toml rename to crates/pcre2/Cargo.toml diff --git a/grep-regex/LICENSE-MIT b/crates/pcre2/LICENSE-MIT similarity index 100% rename from grep-regex/LICENSE-MIT rename to crates/pcre2/LICENSE-MIT diff --git a/grep-pcre2/README.md b/crates/pcre2/README.md similarity index 100% rename from grep-pcre2/README.md rename to crates/pcre2/README.md diff --git a/grep-regex/UNLICENSE b/crates/pcre2/UNLICENSE similarity index 100% rename from grep-regex/UNLICENSE rename to crates/pcre2/UNLICENSE diff --git a/grep-pcre2/src/error.rs b/crates/pcre2/src/error.rs similarity index 100% rename from grep-pcre2/src/error.rs rename to crates/pcre2/src/error.rs diff --git a/grep-pcre2/src/lib.rs b/crates/pcre2/src/lib.rs similarity index 100% rename from grep-pcre2/src/lib.rs rename to crates/pcre2/src/lib.rs diff --git a/grep-pcre2/src/matcher.rs b/crates/pcre2/src/matcher.rs similarity index 100% rename from grep-pcre2/src/matcher.rs rename to crates/pcre2/src/matcher.rs diff --git a/grep-printer/Cargo.toml b/crates/printer/Cargo.toml similarity index 100% rename from grep-printer/Cargo.toml rename to crates/printer/Cargo.toml diff --git a/grep-searcher/LICENSE-MIT b/crates/printer/LICENSE-MIT similarity index 100% rename from grep-searcher/LICENSE-MIT rename to crates/printer/LICENSE-MIT diff --git a/grep-printer/README.md b/crates/printer/README.md similarity index 100% rename from grep-printer/README.md rename to crates/printer/README.md diff --git a/grep-searcher/UNLICENSE b/crates/printer/UNLICENSE similarity index 100% rename from grep-searcher/UNLICENSE rename to crates/printer/UNLICENSE diff --git a/grep-printer/src/color.rs b/crates/printer/src/color.rs similarity index 100% rename from grep-printer/src/color.rs rename to crates/printer/src/color.rs diff --git a/grep-printer/src/counter.rs b/crates/printer/src/counter.rs similarity index 100% rename from grep-printer/src/counter.rs rename to crates/printer/src/counter.rs diff --git a/grep-printer/src/json.rs b/crates/printer/src/json.rs similarity index 100% rename from grep-printer/src/json.rs rename to crates/printer/src/json.rs diff --git a/grep-printer/src/jsont.rs b/crates/printer/src/jsont.rs similarity index 100% rename from grep-printer/src/jsont.rs rename to crates/printer/src/jsont.rs diff --git a/grep-printer/src/lib.rs b/crates/printer/src/lib.rs similarity index 100% rename from grep-printer/src/lib.rs rename to crates/printer/src/lib.rs diff --git a/grep-printer/src/macros.rs b/crates/printer/src/macros.rs similarity index 100% rename from grep-printer/src/macros.rs rename to crates/printer/src/macros.rs diff --git a/grep-printer/src/standard.rs b/crates/printer/src/standard.rs similarity index 100% rename from grep-printer/src/standard.rs rename to crates/printer/src/standard.rs diff --git a/grep-printer/src/stats.rs b/crates/printer/src/stats.rs similarity index 100% rename from grep-printer/src/stats.rs rename to crates/printer/src/stats.rs diff --git a/grep-printer/src/summary.rs b/crates/printer/src/summary.rs similarity index 100% rename from grep-printer/src/summary.rs rename to crates/printer/src/summary.rs diff --git a/grep-printer/src/util.rs b/crates/printer/src/util.rs similarity index 100% rename from grep-printer/src/util.rs rename to crates/printer/src/util.rs diff --git a/grep-regex/Cargo.toml b/crates/regex/Cargo.toml similarity index 100% rename from grep-regex/Cargo.toml rename to crates/regex/Cargo.toml diff --git a/grep/LICENSE-MIT b/crates/regex/LICENSE-MIT similarity index 100% rename from grep/LICENSE-MIT rename to crates/regex/LICENSE-MIT diff --git a/grep-regex/README.md b/crates/regex/README.md similarity index 100% rename from grep-regex/README.md rename to crates/regex/README.md diff --git a/grep/UNLICENSE b/crates/regex/UNLICENSE similarity index 100% rename from grep/UNLICENSE rename to crates/regex/UNLICENSE diff --git a/grep-regex/src/ast.rs b/crates/regex/src/ast.rs similarity index 100% rename from grep-regex/src/ast.rs rename to crates/regex/src/ast.rs diff --git a/grep-regex/src/config.rs b/crates/regex/src/config.rs similarity index 100% rename from grep-regex/src/config.rs rename to crates/regex/src/config.rs diff --git a/grep-regex/src/crlf.rs b/crates/regex/src/crlf.rs similarity index 100% rename from grep-regex/src/crlf.rs rename to crates/regex/src/crlf.rs diff --git a/grep-regex/src/error.rs b/crates/regex/src/error.rs similarity index 100% rename from grep-regex/src/error.rs rename to crates/regex/src/error.rs diff --git a/grep-regex/src/lib.rs b/crates/regex/src/lib.rs similarity index 100% rename from grep-regex/src/lib.rs rename to crates/regex/src/lib.rs diff --git a/grep-regex/src/literal.rs b/crates/regex/src/literal.rs similarity index 100% rename from grep-regex/src/literal.rs rename to crates/regex/src/literal.rs diff --git a/grep-regex/src/matcher.rs b/crates/regex/src/matcher.rs similarity index 100% rename from grep-regex/src/matcher.rs rename to crates/regex/src/matcher.rs diff --git a/grep-regex/src/multi.rs b/crates/regex/src/multi.rs similarity index 100% rename from grep-regex/src/multi.rs rename to crates/regex/src/multi.rs diff --git a/grep-regex/src/non_matching.rs b/crates/regex/src/non_matching.rs similarity index 100% rename from grep-regex/src/non_matching.rs rename to crates/regex/src/non_matching.rs diff --git a/grep-regex/src/strip.rs b/crates/regex/src/strip.rs similarity index 100% rename from grep-regex/src/strip.rs rename to crates/regex/src/strip.rs diff --git a/grep-regex/src/util.rs b/crates/regex/src/util.rs similarity index 100% rename from grep-regex/src/util.rs rename to crates/regex/src/util.rs diff --git a/grep-regex/src/word.rs b/crates/regex/src/word.rs similarity index 100% rename from grep-regex/src/word.rs rename to crates/regex/src/word.rs diff --git a/grep-searcher/Cargo.toml b/crates/searcher/Cargo.toml similarity index 100% rename from grep-searcher/Cargo.toml rename to crates/searcher/Cargo.toml diff --git a/ignore/LICENSE-MIT b/crates/searcher/LICENSE-MIT similarity index 100% rename from ignore/LICENSE-MIT rename to crates/searcher/LICENSE-MIT diff --git a/grep-searcher/README.md b/crates/searcher/README.md similarity index 100% rename from grep-searcher/README.md rename to crates/searcher/README.md diff --git a/ignore/UNLICENSE b/crates/searcher/UNLICENSE similarity index 100% rename from ignore/UNLICENSE rename to crates/searcher/UNLICENSE diff --git a/grep-searcher/examples/search-stdin.rs b/crates/searcher/examples/search-stdin.rs similarity index 100% rename from grep-searcher/examples/search-stdin.rs rename to crates/searcher/examples/search-stdin.rs diff --git a/grep-searcher/src/lib.rs b/crates/searcher/src/lib.rs similarity index 100% rename from grep-searcher/src/lib.rs rename to crates/searcher/src/lib.rs diff --git a/grep-searcher/src/line_buffer.rs b/crates/searcher/src/line_buffer.rs similarity index 100% rename from grep-searcher/src/line_buffer.rs rename to crates/searcher/src/line_buffer.rs diff --git a/grep-searcher/src/lines.rs b/crates/searcher/src/lines.rs similarity index 100% rename from grep-searcher/src/lines.rs rename to crates/searcher/src/lines.rs diff --git a/grep-searcher/src/macros.rs b/crates/searcher/src/macros.rs similarity index 100% rename from grep-searcher/src/macros.rs rename to crates/searcher/src/macros.rs diff --git a/grep-searcher/src/searcher/core.rs b/crates/searcher/src/searcher/core.rs similarity index 100% rename from grep-searcher/src/searcher/core.rs rename to crates/searcher/src/searcher/core.rs diff --git a/grep-searcher/src/searcher/glue.rs b/crates/searcher/src/searcher/glue.rs similarity index 100% rename from grep-searcher/src/searcher/glue.rs rename to crates/searcher/src/searcher/glue.rs diff --git a/grep-searcher/src/searcher/mmap.rs b/crates/searcher/src/searcher/mmap.rs similarity index 100% rename from grep-searcher/src/searcher/mmap.rs rename to crates/searcher/src/searcher/mmap.rs diff --git a/grep-searcher/src/searcher/mod.rs b/crates/searcher/src/searcher/mod.rs similarity index 100% rename from grep-searcher/src/searcher/mod.rs rename to crates/searcher/src/searcher/mod.rs diff --git a/grep-searcher/src/sink.rs b/crates/searcher/src/sink.rs similarity index 100% rename from grep-searcher/src/sink.rs rename to crates/searcher/src/sink.rs diff --git a/grep-searcher/src/testutil.rs b/crates/searcher/src/testutil.rs similarity index 100% rename from grep-searcher/src/testutil.rs rename to crates/searcher/src/testutil.rs