💛 Поддержать проект · USDT (Tether) в сети TRC20:
TEHHyPSeZ7t5vfVJmjtEBkqJdpfcrm1wqg
Быстрый VPN с обходом YouTube, Discord, Instagram · Бесплатный пробный период · Подключение за 30 секунд через бот @rosevpnru_bot
Чистит реальный мусор, удаляет программы и освобождает диск — но ничего не удаляет безвозвратно.
Всё перемещается в обратимый карантин, откуда восстанавливается одной кнопкой.
| Платформа | Файл | Описание |
|---|---|---|
| Windows 10 / 11 (x64) | Svalka-setup.exe | Установщик (NSIS) |
Перейдите в Releases и скачайте последнюю версию. Запускайте от имени администратора — без этого нельзя чистить системные папки.
Svalka (Сва́лка — «свалка», «мусорка») — десктопное приложение для Windows, которое наводит порядок на диске, не рискуя вашими данными. Оно сканирует настоящий мусор (системный кэш, кэш браузеров, кэши разработчика), удаляет программы пачками, показывая их реальный размер на диске, ищет «хвосты» от деинсталляторов — и делает каждое удаление обратимым, перемещая файлы в карантин вместо безвозвратного стирания.
Нашёл лишнее → положил на свалку → передумал → достал обратно. Ничего не уничтожается.
- Ничего не удаляется — всё в карантин. Любой «удалённый» файл можно восстановить в точное исходное место.
- Реальные размеры. Программы и папки показываются с фактическим размером на диске (параллельный обход через
jwalk), а не с тем, что заявил установщик. - Пакетное удаление программ с поиском оставшегося мусора (leftovers).
- Анализ диска. Treemap использования диска + список самых крупных файлов — видно, что именно «съело» место.
- Жёсткий дени-лист. Защищённые расположения (
System32,WinSxS,Cookies,Login Data,hiberfil.sys…) не тронет, даже если сканер их вернул. - Без телеметрии. Open-source, ничего не отправляет наружу. Весь код открыт для аудита.
Это главная идея проекта. Обычные чистильщики удаляют файлы безвозвратно — и если они ошиблись, восстанавливать нечего. Svalka устроена иначе:
- Не удаление, а перемещение. Мусор атомарно и мгновенно переносится (
renameв пределах тома) в<том>\.svalka-quarantine\<id>\, фиксируется в JSON-манифесте и может быть восстановлен по исходному пути. У каждого файла свой индексированный подкаталог, поэтому два элемента с одинаковым именем (например,CacheChrome и Edge) никогда не конфликтуют. - Жёсткий дени-лист. Даже если сканер вернул защищённый путь — он отбрасывается. Пути сначала канонизируются, поэтому короткие имена 8.3 и junction-и не проскользнут мимо проверки.
- Устойчивые пачки, без «осиротевших» файлов. Элементы переносятся независимо: заблокированный / занятый файл (открытый браузер, держащий свой кэш — обычное дело) пропускается и попадает в отчёт, но не валит всю очистку. Манифест пишется атомарно: если записать пачку не удалось, перемещения откатываются — ничего не остаётся «перемещённым-но-незаписанным» (а значит невосстановимым).
- Восстановление не затирает. Если исходный путь уже занят, восстановление прерывается, а не перезаписывает существующее.
- Автоочистка. Записи карантина старше 30 дней удаляются при запуске.
- Безопасность реестра. Ключи реестра экспортируются в
.reg(через полный путь кreg.exe) до любого изменения и импортируются обратно при восстановлении. - Никаких «тихих» ошибок. Результаты удаления и карантина несут сообщения; сбои показываются в интерфейсе, а не проглатываются.
Пять экранов — всё, что нужно для уборки, и ничего лишнего:
| Экран | Назначение |
|---|---|
| Очистка | Сканирует мусор по категориям (система / браузеры / кэши разработчика) и отправляет в карантин |
| Программы | Установленные программы с реальными размерами, пакетная деинсталляция + поиск хвостов |
| Анализ диска | Treemap использования диска и список самых крупных файлов |
| Карантин | Просмотр и восстановление перемещённого, ручная очистка |
| Настройки | Параметры приложения |

Программы — реальный размер на диске и пакетное удаление
Очистка — поиск мусора по категориям · Настройки — обратимость и автоочистка карантина
Svalka/
crates/
svalka-core/ # вся логика, headless, полностью покрыта unit-тестами (без зависимостей от Tauri)
svalka-app/ # тонкая обёртка Tauri 2: IPC-команды и состояние поверх ядра
ui/ # фронтенд на Svelte 5 + Vite (пять экранов)
svalka-core— обычная Rust-библиотека без GUI-зависимостей, поэтому собирается и тестируется на любой машине. Модули:model,fsafe(атомарное перемещение + проверка одного тома + детект занятых файлов),sizer(параллельный подсчёт размеров черезjwalk),usage(ограниченное дерево использования диска + крупнейшие файлы),quarantine(перемещение / восстановление / автоочистка + манифест),regbackup(экспорт/импорт черезreg.exe),scanner(категории + дени-лист),programs(установленные программы из веток реестра с реальными размерами папок),uninstaller,leftovers,paths(известные корни, инжектируемые через окружение).svalka-appсвязывает IPC-команды/события Tauri с ядром и запрашивает права администратора при старте (нужны для чистки системных папок).uiрисует пять экранов на Svelte 5.
- Скачайте установщик из Releases.
- Запустите от имени администратора (приложение само запросит UAC — права нужны для работы с системными папками и реестром).
- Откройте экран Очистка, просканируйте и отправьте мусор в карантин. Передумали — вкладка Карантин, кнопка «Восстановить».
Требуется: Rust (stable) + cargo, Node.js + npm, Windows (логика очистки и работа с реестром — Windows-специфичны).
# зависимости фронтенда
npm --prefix ui install
# запуск в dev (поднимает Vite, открывает окно Tauri; запросит UAC).
# приложение требует прав администратора — запускайте из терминала «от админа»,
# либо используйте dev.cmd (он сам поднимает права).
cd crates/svalka-app
../../ui/node_modules/.bin/tauri devcargo test -p svalka-core # ядро: unit + интеграционные тесты
cargo clippy -p svalka-core --all-targets -- -D warnings # линт без предупреждений
npm --prefix ui run test # фронтенд (vitest)cd crates/svalka-app
../../ui/node_modules/.bin/tauri build # NSIS-установщик в target/release/bundleРелизные сборки выпускаются автоматически: пуш тега
v*запускает GitHub Actions (release.yml), который собирает NSIS-установщик и прикладывает его к Release.
| Что | Зачем |
|---|---|
| Rust | Всё ядро — безопасность памяти и скорость для файловых операций |
| Tauri 2 | Лёгкая нативная обёртка вместо тяжёлого Electron |
| Svelte 5 + Vite | Быстрый и компактный фронтенд |
| jwalk | Параллельный обход файловой системы для подсчёта реальных размеров |
| GitHub Actions | CI/CD — автоматическая сборка установщика при релизе |
- Настройки → дни автоочистки показываются, но пока не сохраняются; очистка при запуске зашита на 30 дней (небольшая доработка:
get_settings/set_settingsповерхsettings.json). - Корзина смоделирована, но очищается через Windows Shell API в следующей итерации, а не сканированием путей.
- Карантин ключей реестра реализован сквозняком (
RegBackup, экспорт/импорт при восстановлении), но пока ни один экран не отправляет в карантин ключ реестра — файловые хвосты покрыты, карантин реестра переиспользует ту же механику. - Иконки — временные.
MIT — свободное использование, модификация и распространение.
by sonic
Если проект помог — поставь ⭐️
чистильщик windows, очистка диска windows, удаление мусора windows, безопасный чистильщик, обратимая очистка, аналог ccleaner, ccleaner альтернатива open source, очистка кэша браузера, удаление программ windows, деинсталлятор с хвостами, анализ диска treemap, какие файлы занимают место на диске, освободить место на диске, очистка системного диска c, windows cleaner, disk cleanup, safe reversible cleaner, open source ccleaner alternative, disk usage analyzer, junk cleaner, uninstaller leftovers, rust tauri desktop app

