51 lines
3.3 KiB
Markdown
51 lines
3.3 KiB
Markdown
# Python решения
|
||
|
||
Эта папка зарезервирована для Python реализации решений, но в данном проекте основной фокус на bash-утилиты для диагностики и тестирования сетевого доступа.
|
||
|
||
## Почему только bash?
|
||
|
||
Задача этого проекта — быстрая и портативная диагностика:
|
||
- Сравнение методов доступа к GitHub репозиторию (HTTPS, SSH, GitHub CLI)
|
||
- Измерение скорости загрузки между разными серверами
|
||
- Демонстрация влияния HTTP-сжатия на скорость передачи
|
||
|
||
Для этих задач bash-скрипты идеальны:
|
||
- Не требуют установки зависимостей (только `curl`, `bc`)
|
||
- Работают на любой Unix-системе out of the box
|
||
- Быстрая диагностика и отладка
|
||
|
||
### Почему не Python?
|
||
|
||
Любое Python решение в итоге:
|
||
1. **Использует `curl` через обертку** (типа `plumbum`, `subprocess`) — тогда это просто Python-обертка над bash
|
||
2. или портебует **Реализации собственного HTTP-клиена**, что уже никак не будет "быстрым решением" и, вдобавок, потеряется функциональность:
|
||
- HTTPS с самоподписанными сертификатами
|
||
- SFTP, WebDAV, SMB и другие протоколы
|
||
- Пулинг соединений, redirect handling
|
||
- Прокси, cookies, headers, auth методы
|
||
|
||
Python-библиотеки (`requests`, `httpx`) хороши для приложений, но для простой диагностики они избыточны и требуют:
|
||
- Установку пакетов (`pip`, `poetry` и т.п.)
|
||
- Управление версиями зависимостей
|
||
- Дополнительный код для разбора результатов
|
||
- дополнительные 120-240 мс на каждый запрос из-за интерпретатора Python, что критично для замеров скорости
|
||
|
||
**Вывод:** Bash + `curl` = минимум зависимостей + максимум функциональности + прямой доступ к инструментам системы.
|
||
|
||
## Мой Python код
|
||
|
||
Если вас интересуют примеры моего Python кода, смотрите другие репозитории:
|
||
- [GitHub профиль](https://github.com/erjemin)
|
||
- [Селфхостед Gitea](https://git.cube2.ru/erjemin)
|
||
|
||
## Содержимое проекта
|
||
|
||
```
|
||
├── bash/ # Bash утилиты и скрипты
|
||
│ ├── speed_test.sh # Измерение скорости интернета
|
||
│ ├── compare_modes.sh # Сравнение методов доступа к GitHub
|
||
│ ├── compare_servers.sh # Сравнение скорости серверов
|
||
│ └── USAGE.md # Документация
|
||
└── python/ # Зарезервировано для будущих решений
|
||
```
|