LangRank — утилита на Rust, которая собирает свежие рейтинги популярности языков программирования (TIOBE, PYPL, Languish), объединяет их с данными Benchmarks Game и вычисляет итоговое ранжирование по методу Шульце.
🎨 Визуализация итогового рейтинга
- 📚 О проекте
- 🛠️ Сборка и запуск
- 💾 Сохранение выгрузок
- 🖼️ HTML-отчёт
- 🧮 Алгоритм Шульце
- 🤖 Автодополнение команд
- 🌐 Источники данных
- 🧱 Статическая сборка
Приложение ориентировано на быструю сверку разных метрик популярности языков. Оно:
- Подтягивает сводки рейтингов TIOBE, PYPL и Languish.
- Нормализует названия языков и объединяет показатели.
- Скачивает CSV Benchmarks Game и извлекает медианное время выполнения задач.
- Строит итоговую таблицу по методу Шульце, учитывая популярность и производительность.
# Запуск с выводом топ-10 в терминале
cargo run --release
# Подробный вывод с полным Schulze-ранжированием
cargo run --release -- --full-outputКаждый флаг можно передать без пути — в этом случае используется значение по умолчанию.
# Сохраняем комбинированные рейтинги и Schulze-таблицу
cargo run --release -- \
--save-rankings data/output/rankings.csv \
--save-schulze
# Сохраняем CSV Benchmarks Game в кастомный путь
cargo run --release -- --save-benchmarks data/raw/alldata.csvLangRank умеет генерировать красивую HTML-страницу с итоговой таблицей, которую можно раздавать статически через nginx.
Если включён --full-output, в отчёт попадёт полная таблица, иначе — топ‑10.
# Сохранить HTML-отчёт (по умолчанию data/output/report.html)
cargo run --release -- --save-html
# Сохранить HTML-отчёт в кастомный путь
cargo run --release -- --save-html report.html
# Полная таблица в HTML
cargo run --release -- --save-html report.html --full-outputLangRank строит четыре «бюллетеня» предпочтений: по позициям в TIOBE, PYPL, Languish и по скорости выполнения задач. Затем для каждого языка вычисляется количество побед над конкурентами в матрице сильнейших путей Шульце. При равенстве используется комбинированный счёт: доли рейтингов + обратная величина медианного времени.
Утилита умеет генерировать скрипты автодополнения для популярных оболочек:
# Сгенерировать и установить автодополнение для Bash
cargo run -- completions bash --install
# Вывести скрипт для fish в stdout
cargo run -- completions fish- 🔵 TIOBE Index — https://www.tiobe.com/tiobe-index/
- 🔶 PYPL Popularity Index — https://pypl.github.io/PYPL.html
- 🟢 Languish (Programming Language Trends) — https://tjpalmer.github.io/languish/
- 🟥 Benchmarks Game — https://salsa.debian.org/benchmarksgame-team/benchmarksgame/-/raw/master/public/data/alldata.csv
Для сборки статического бинарника под Linux/musl используйте скрипт:
./build_musl.shОн запускает официальный контейнер clux/muslrust:nightly и собирает релизную версию.
