LangRank is a command-line tool that combines programming-language popularity and performance data into a single ranking using the Schulze method.
View the latest report · Download LangRank
Download the archive for your system from the latest GitHub release:
| System | Release asset |
|---|---|
| Linux x86_64 | langrank-linux-x86_64-gnu.tar.gz |
| Linux x86_64, static build | langrank-linux-x86_64-musl.tar.gz |
| Windows x86_64 | langrank-windows-x86_64-msvc.zip |
| macOS Apple Silicon | langrank-macos-aarch64.tar.gz |
On Linux or macOS, extract the archive and install the binary for the current user:
tar -xzf langrank-<platform>.tar.gz
mkdir -p ~/.local/bin
install -m 755 langrank ~/.local/bin/langrankMake sure ~/.local/bin is in your PATH, then verify the installation:
langrank --versionOn Windows, extract the archive with File Explorer or PowerShell:
Expand-Archive .\langrank-windows-x86_64-msvc.zip -DestinationPath .\langrank
.\langrank\langrank.exe --versionMove langrank.exe to a permanent directory and add that directory to PATH if
you want to run it as langrank from any terminal.
Install the Rust toolchain and Git, then let Cargo build and install the current version from GitHub:
cargo install --git https://github.com/hexqnt/langrank.git --locked
langrank --versionCargo installs the executable into ~/.cargo/bin by default.
Running LangRank without options fetches the latest data and prints the top 10:
langrankAn internet connection is required while the program fetches its source data.
Print the complete ranking or see every available option:
langrank --full-output
langrank --helpOutput flags accept an optional path. When no path is supplied, LangRank uses the
default shown by langrank --help.
# Save the combined source data and final ranking as CSV
langrank --save-rankings --save-schulze
# Save a full HTML report to a custom path
langrank --save-html report.html --full-output
# Compress saved CSV files as .gz archives
langrank --save-rankings --save-schulze --archive-csvHTML is minified by default. Use --no-minify-html when you need readable HTML
source. Saving an HTML report also creates sitemap.xml and robots.txt in the
same directory.
# Install Bash completions for the current user
langrank completions bash --install
# Print a fish completion script to stdout
langrank completions fishLangRank treats TIOBE, PYPL, Languish, and the combined performance score as four preference ballots. The performance score blends relative Benchmarks Game results with the best TechEmpower framework score available for each language. The Schulze method combines these ballots into the final order; a combined popularity and performance score breaks ties.
Missing benchmark data is displayed as - and contributes zero to the relevant
performance component.
The repository also provides a Rust library for fetching normalized ranking data. Disable default features when the CLI and report-generation dependencies are not needed:
[dependencies]
langrank = { git = "https://github.com/hexqnt/langrank.git", default-features = false }The main entry point is langrank::Fetcher; individual source fetchers are also
available for applications that need more control.