Science Score: 44.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
○Academic publication links
-
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (5.0%) to scientific vocabulary
Repository
Продукт выпускной квалификационной работы
Basic Info
Statistics
- Stars: 9
- Watchers: 1
- Forks: 0
- Open Issues: 0
- Releases: 7
Metadata Files
README.md
Simplex
О проекте
Simplex — кроссплатформенный CLI-файловый менеджер на Go с модульной архитектурой, поддержкой расширяемости, безопасной работой с архивами и корзиной, покрытием тестами и интеграцией с CI/CD. Проект ориентирован на профессиональное использование, автоматизацию и дальнейшее развитие (TUI/GUI, плагины, интеграция с сетевыми протоколами).
Основные возможности
- Навигация и работа с файловой системой
- Просмотр, фильтрация, закладки, переходы между каталогами
- Создание, копирование, перемещение, переименование, удаление файлов и папок
- Управление правами доступа (chmod)
- Просмотр информации и содержимого файлов
- Корзина (soft-delete)
- Кроссплатформенная реализация (Linux — стандарт Trash Info)
- Восстановление и очистка корзины
- Архивация и распаковка
- Поддержка zip, tar, tar.gz, tar.bz2 (распаковка), tar.xz (через внешний пакет)
- Просмотр содержимого архивов
- Безопасная обработка путей (path traversal protection)
- Поиск
- По имени (с шаблонами)
- По содержимому
- Фильтрация по типу, размеру, дате, расширению
- Журналирование
- Логирование операций, просмотр истории
- CLI-интерфейс
- Современный help, автодополнение, подробные сообщения об ошибках
- Тесты и качество кода
- Покрытие тестами (Codecov)
- Линтинг (golangci-lint)
- Интеграция с GoReleaser, Codecov, GitHub Actions
Архитектура и структура проекта
internal/
navigation/ # Навигация, фильтрация, закладки
fileops/ # Операции с файлами, архивами, корзиной
search/ # Поиск файлов и по содержимому
display/ # Цветной вывод, форматирование
logger/ # Журналирование операций
app/ # Основная логика приложения
tui/ # (WIP) TUI/GUI интерфейс
cmd/
filemanager/ # Точка входа CLI
Быстрый старт
```bash
Клонировать репозиторий
$ git clone https://github.com/nps-rf/file-manager.git $ cd file-manager
Запустить приложение
$ go run main.go ```
Support 6 languages
``` ["ru", "en", "es", "de", "fr", "zh"]
```
Примеры CLI-команд
Навигация и закладки
ls— содержимое директорииcd <путь>— смена директорииbookmark add <имя> [путь]— добавить закладкуbookmark go <имя>— перейти к закладке
Операции с файлами
mkdir <имя>— создать директориюtouch <имя>— создать файлcp <источник> <назначение>— копироватьmv <источник> <назначение>— переместить/переименоватьrm <имя>— удалить (в корзину)restore <имя>— восстановить из корзиныtrash empty— очистить корзину
Архивация
archive <архив> <формат> <файл1> [файл2...]— создать архивextract <архив> <директория>— распаковатьlist-archive <архив>— содержимое архива
Поиск и фильтрация
find <шаблон>— поиск по имениgrep <текст>— поиск по содержимомуfilter --ext=txt,log— фильтрация по расширению
Информация и логирование
info <имя>— информация о файле/папкеlog [N]— последние N операций
Безопасность и качество
- Защита от path traversal при работе с архивами
- Проверка ошибок при всех файловых операциях
- Логирование и аудит
- Покрытие тестами (см. Codecov)
- Линтинг (golangci-lint)
CI/CD и релиз
- GitHub Actions: тесты, линтинг, сборка, релиз
- GoReleaser: кроссплатформенные сборки
- Codecov: анализ покрытия тестами
- Автоматическая генерация changelog и релизов
Планы развития
- TUI/GUI (на базе BubbleTea/Fyne)
- Плагины и расширения
- Поддержка сетевых протоколов (SFTP, SMB, WebDAV)
- Batch rename, i18n, keyring, structured logging
- Документация, примеры, интеграция с внешними инструментами
Вклад и поддержка
Будем рады PR, багрепортам и предложениям! См. CONTRIBUTING.md и LICENSE.
Лицензия
Проект распространяется по лицензии MIT.
Owner
- Name: Nikolai Pikalov
- Login: Nps-rf
- Kind: user
- Location: Moscow
- Website: https://www.linkedin.com/in/nikolai-pikalov-8a0618232/
- Repositories: 4
- Profile: https://github.com/Nps-rf
:heart:
Citation (CITATION.cff)
cff-version: 1.2.0
message: "Если вы используете Simplex, пожалуйста, цитируйте этот проект как указано ниже."
title: "Simplex: Кроссплатформенный файловый менеджер на Go"
authors:
- name: "Simplex Team"
affiliation: "Nps‑rf"
abstract: >
Simplex — консольный файловый менеджер с модульной архитектурой,
реализованный на языке Go. Он поддерживает навигацию по файловой системе,
копирование, перемещение, удаление, работу с архивами, расширенный поиск
и цветное отображение метаданных, обеспечивая кроссплатформенную работу
в командной строке.
keywords:
- file‑manager
- CLI
- Go
- cross‑platform
- filesystem
- архивирование
- поиск
version: "0.1.4"
date-released: "2024-10-05"
url: "https://github.com/Nps-rf/Simplex"
repository-code: "https://github.com/Nps-rf/Simplex"
license: "MIT"
identifiers:
- type: url
value: "https://github.com/Nps-rf/Simplex"
preferred-citation:
type: software
authors:
- name: "Simplex Team"
title: "Simplex: Cross‑platform CLI File Manager"
version: "0.1.4"
date-released: "2024-10-05"
url: "https://github.com/Nps-rf/Simplex"
GitHub Events
Total
- Release event: 6
- Watch event: 12
- Delete event: 20
- Push event: 44
- Pull request event: 6
- Create event: 31
Last Year
- Release event: 6
- Watch event: 12
- Delete event: 20
- Push event: 44
- Pull request event: 6
- Create event: 31
Packages
- Total packages: 1
- Total downloads: unknown
- Total dependent packages: 0
- Total dependent repositories: 0
- Total versions: 13
proxy.golang.org: github.com/nps-rf/simplex
- Documentation: https://pkg.go.dev/github.com/nps-rf/simplex#section-documentation
-
Latest release: v0.2.0
published 10 months ago
Rankings
Dependencies
- github.com/andybalholm/brotli v1.1.1
- github.com/dsnet/compress v0.0.2-0.20210315054119-f66993602bf5
- github.com/fatih/color v1.15.0
- github.com/golang/snappy v0.0.2
- github.com/klauspost/compress v1.11.4
- github.com/klauspost/pgzip v1.2.5
- github.com/mattn/go-colorable v0.1.13
- github.com/mattn/go-isatty v0.0.17
- github.com/mholt/archiver/v3 v3.5.1
- github.com/nwaples/rardecode v1.1.0
- github.com/pierrec/lz4/v4 v4.1.2
- github.com/ulikunitz/xz v0.5.9
- github.com/xi2/xz v0.0.0-20171230120015-48954b6210f8
- golang.org/x/sys v0.6.0
- gopkg.in/djherbis/times.v1 v1.3.0
- github.com/andybalholm/brotli v1.0.1
- github.com/andybalholm/brotli v1.1.1
- github.com/dsnet/compress v0.0.2-0.20210315054119-f66993602bf5
- github.com/dsnet/golib v0.0.0-20171103203638-1ea166775780
- github.com/fatih/color v1.15.0
- github.com/gdamore/encoding v1.0.0
- github.com/gdamore/tcell/v2 v2.6.0
- github.com/golang/snappy v0.0.2
- github.com/google/go-cmp v0.5.5
- github.com/klauspost/compress v1.4.1
- github.com/klauspost/compress v1.11.4
- github.com/klauspost/cpuid v1.2.0
- github.com/klauspost/pgzip v1.2.5
- github.com/lucasb-eyer/go-colorful v1.2.0
- github.com/mattn/go-colorable v0.1.13
- github.com/mattn/go-isatty v0.0.16
- github.com/mattn/go-isatty v0.0.17
- github.com/mattn/go-runewidth v0.0.14
- github.com/mholt/archiver/v3 v3.5.1
- github.com/nwaples/rardecode v1.1.0
- github.com/pierrec/lz4/v4 v4.1.2
- github.com/rivo/uniseg v0.2.0
- github.com/rivo/uniseg v0.4.3
- github.com/ulikunitz/xz v0.5.8
- github.com/ulikunitz/xz v0.5.9
- github.com/xi2/xz v0.0.0-20171230120015-48954b6210f8
- github.com/xyproto/randomstring v1.0.5
- github.com/yuin/goldmark v1.4.13
- golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2
- golang.org/x/crypto v0.0.0-20210921155107-089bfa567519
- golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4
- golang.org/x/net v0.0.0-20190620200207-3b0461eec859
- golang.org/x/net v0.0.0-20210226172049-e18ecbb05110
- golang.org/x/net v0.0.0-20220722155237-a158d28d115b
- golang.org/x/sync v0.0.0-20190423024810-112230192c58
- golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4
- golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a
- golang.org/x/sys v0.0.0-20201119102817-f84b799fce68
- golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1
- golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a
- golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f
- golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab
- golang.org/x/sys v0.5.0
- golang.org/x/sys v0.6.0
- golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1
- golang.org/x/term v0.0.0-20210927222741-03fcf44c2211
- golang.org/x/term v0.5.0
- golang.org/x/text v0.3.0
- golang.org/x/text v0.3.3
- golang.org/x/text v0.3.7
- golang.org/x/text v0.7.0
- golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e
- golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e
- golang.org/x/tools v0.1.12
- golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7
- golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543
- gopkg.in/djherbis/times.v1 v1.3.0
- actions/checkout v4 composite
- actions/setup-go v5 composite
- actions/upload-artifact v4 composite
- golang/govulncheck-action v1 composite
- golangci/golangci-lint-action v3 composite
- actions/checkout v4 composite
- actions/setup-go v5 composite
- peaceiris/actions-gh-pages v4 composite
- actions/checkout v4 composite
- actions/setup-go v5 composite
- golang/govulncheck-action v1 composite
- goreleaser/goreleaser-action v6 composite
- actions/checkout v4 composite
- cycjimmy/semantic-release-action v4 composite