simplex

Продукт выпускной квалификационной работы

https://github.com/nps-rf/simplex

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
Last synced: 6 months ago · JSON representation ·

Repository

Продукт выпускной квалификационной работы

Basic Info
  • Host: GitHub
  • Owner: Nps-rf
  • License: mit
  • Language: Go
  • Default Branch: master
  • Homepage:
  • Size: 155 KB
Statistics
  • Stars: 9
  • Watchers: 1
  • Forks: 0
  • Open Issues: 0
  • Releases: 7
Created 11 months ago · Last pushed 9 months ago
Metadata Files
Readme Changelog Contributing License Code of conduct Citation Codeowners

README.md

Simplex

Build Status Go Version License: MIT


О проекте

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

: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
  • Versions: 13
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent packages count: 5.5%
Average: 5.7%
Dependent repos count: 5.9%
Last synced: 7 months ago

Dependencies

go.mod go
  • 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
go.sum go
  • 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
.github/workflows/ci.yml actions
  • 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
.github/workflows/docs.yml actions
  • actions/checkout v4 composite
  • actions/setup-go v5 composite
  • peaceiris/actions-gh-pages v4 composite
.github/workflows/release.yml actions
  • actions/checkout v4 composite
  • actions/setup-go v5 composite
  • golang/govulncheck-action v1 composite
  • goreleaser/goreleaser-action v6 composite
.github/workflows/version.yml actions
  • actions/checkout v4 composite
  • cycjimmy/semantic-release-action v4 composite