minor: про Python
This commit is contained in:
50
python/README.md
Normal file
50
python/README.md
Normal file
@@ -0,0 +1,50 @@
|
||||
# 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/ # Зарезервировано для будущих решений
|
||||
```
|
||||
Reference in New Issue
Block a user