| Crates.io | linguist |
| lib.rs | linguist |
| version | 0.1.6 |
| created_at | 2025-10-31 07:33:44.24412+00 |
| updated_at | 2025-12-16 10:18:05.505319+00 |
| description | Programming language detection library based on Github Linguist. |
| homepage | |
| repository | https://github.com/drshade/linguist |
| max_upload_size | |
| id | 1909587 |
| size | 260,611 |
A Rust library for programming language detection, inspired by GitHub Linguist. Detects programming languages by file extension, filename, and content-based heuristics.
Makefile, Dockerfile).rs, .py, .js)use linguist::detect_language_by_extension;
let languages = detect_language_by_extension("script.py")?;
assert_eq!(languages[0].name, "Python");
use linguist::detect_language_by_filename;
let languages = detect_language_by_filename("Makefile")?;
assert_eq!(languages[0].name, "Makefile");
use linguist::disambiguate;
let content = "#include <iostream>\nint main() {}";
let result = disambiguate("test.h", content)?;
if let Some(languages) = result {
assert_eq!(languages[0].name, "C++");
}
use linguist::is_vendored;
assert!(is_vendored("node_modules/react/index.js")?);
assert!(!is_vendored("src/main.rs")?);
Special thanks to @vcfxb for graciously donating the crates.io name "linguist" to this project!
This project is inspired by and uses language definitions from GitHub Linguist, maintained by GitHub and its contributors. The language definitions (definitions/languages.yml, definitions/heuristics.yml, definitions/vendor.yml) are derived from this project.