| Crates.io | flatten-rust |
| lib.rs | flatten-rust |
| version | 0.3.1 |
| created_at | 2025-10-29 11:05:09.277363+00 |
| updated_at | 2025-11-18 19:17:19.331185+00 |
| description | High-performance codebase flattening tool in Rust |
| homepage | https://github.com/An0nX/flatten-rust |
| repository | https://github.com/An0nX/flatten-rust |
| max_upload_size | |
| id | 1906417 |
| size | 166,241 |
Высокопроизводительный инструмент для флаттенинга кодовой базы, написанный на Rust. Обеспечивает значительное ускорение обработки по сравнению с Python-версией, лучшую работу с памятью и параллельную обработку файлов.
cargo install flatten-rust
git clone https://github.com/An0nX/flatten-rust.git
cd flatten-rust
cargo build --release
Готовый бинарный файл будет находиться в target/release/flatten-rust.
Скачайте готовый бинарный файл из Releases:
flatten-rust-linux-x86_64flatten-rust-windows-x86_64.exeflatten-rust-macos-x86_64flatten-rust-macos-aarch64flatten-rust -f <папка1> [папка2] ... [опции]
| Длинная опция | Короткая | Описание | Легко запомнить |
|---|---|---|---|
--folders |
-f |
Папки для обработки | folders |
--skip-folders |
-s |
Папки для пропуска | skip |
--output |
-o |
Выходной файл | output |
--auto-detect |
-a |
Авто-детекция проекта | auto |
--threads |
-t |
Параллельные потоки | threads |
--max-file-size |
-m |
Макс. размер файла | max |
--dry-run |
-d |
Тестовый запуск | dry |
--stats |
-S |
Статистика | Stats |
--show-skipped |
-k |
Показать пропущенные | keep |
--list-templates |
-l |
Список шаблонов | list |
--enable-template |
-e |
Включить шаблон | enable |
--disable-template |
-D |
Отключить шаблон | Disable |
--force-update |
-u |
Обновить шаблоны | update |
--check-internet |
-n |
Проверить интернет | network |
flatten-rust -f ./src -o project.md
flatten-rust -f ./src -a -o project.md
flatten-rust -f ./src -S -o project.md
flatten-rust -f ./src -d -m 3
flatten-rust -f ./src ./tests -s node_modules -s .git -o full-project.md
flatten-rust -f ./src -k -o with-skipped.md
flatten-rust -f ./src -t 8 -o fast.md
flatten-rust -f ./src -m 52428800 -o limited.md # 50MB max
# Список доступных шаблонов
flatten-rust -l
# Включить шаблоны для Rust и Node.js
flatten-rust -f ./project -e rust -e node
# Принудительное обновление шаблонов
flatten-rust -u
# Отключить проверку интернета
flatten-rust -f ./project -n false
-f, --folders <папки...>: Базовые папки для обработки (минимум одна)-a, --auto-detect: Авто-детекция типа проекта и настройка исключений-s, --skip-folders <папки...>: Папки для пропуска (поддерживаются glob паттерны)-x, --skip-extensions <расширения...>: Расширения бинарных файлов для пропуска-k, --show-skipped: Показывать пропущенные папки в дереве--include-hidden: Включать скрытые файлы и папки--max-depth <число>: Максимальная глубина обхода директорий (0 = без ограничений)-o, --output <файл>: Имя выходного файла (по умолчанию: codebase.md)-t, --threads <число>: Количество потоков обработки (0 = авто)-m, --max-file-size <байты>: Максимальный размер файла для обработки (0 = без ограничений)-S, --stats: Показать детальную статистику после обработки-d, --dry-run: Показать что будет обработано без создания выходного файла-l, --list-templates: Список доступных gitignore шаблонов-e, --enable-template <шаблон>: Включить конкретный шаблон-D, --disable-template <шаблон>: Отключить конкретный шаблон-u, --force-update: Принудительное обновление шаблонов из API-n, --check-internet <bool>: Включить/отключить проверку интернета--show-enabled: Показать включенные шаблоны-i, --system_instructions: Устаревшая опция (скрыта)Утилита автоматически определяет типы проектов и настраивает соответствующие исключения:
target/, Cargo.lockrlib, rmetanode_modules/, .npm/, .yarn/, dist/, build/, .next/, .nuxt/, .angular/, coverage/__pycache__/, .pytest_cache/, .mypy_cache/, .tox/, venv/, .venv/, site-packages/pyc, pyo, pyd, egg, whltarget/, build/, .gradle/, .idea/, out/class, jar, war, earvendor/bin/, obj/, packages/, .vs/, .vscode/, Properties/exe, dll, pdb, cache, user.angular/, dist/, coverage/, .coverage/js.map, css.map, ngsummary.json, ngfactory, ngstyle, ngtemplatecmake-build-debug/, cmake-build-release/, build/, obj/, bin/, Debug/, Release/o, obj, exe, dll, so, dylib, a, libvendor/, .bundle/vendor/На проекте с 10,000 файлов (общий размер 2GB):
unwrap() в основной логикеResult<T, E> и ? оператораrustdoc комментариямиclap для CLIwalkdir с фильтрациейrayon для многопоточностиmemmap2 для эффективного доступаindicatif для визуализацииRAYON_NUM_THREADS: Количество потоков для обработки[profile.release]
lto = true # Link Time Optimization
codegen-units = 1 # Одна единица генерации кода
panic = "abort" # Уменьшает размер
strip = true # Удаление отладочных символов
opt-level = "z" # Оптимизация по размеру
overflow-checks = false # Отключение проверок переполнения
# Запуск тестов
cargo test
# Запуск бенчмарков
cargo bench
# Проверка кода
cargo clippy
cargo fmt --check
# Проверка безопасности
cargo audit
git checkout -b feature/amazing-feature)git commit -m 'Add amazing feature')git push origin feature/amazing-feature)MIT License - см. файл LICENSE для деталей.
При возникновении проблем: