iso639_rust

Crates.ioiso639_rust
lib.rsiso639_rust
version0.1.0
created_at2025-08-04 17:25:35.627883+00
updated_at2025-08-04 17:25:35.627883+00
descriptionA super cool ISO 639 language code library in Rust.
homepage
repositoryhttps://github.com/sumitsharansatsangi/iso639_rust
max_upload_size
id1780969
size1,912,095
Sumit Kumar (sumitsharansatsangi)

documentation

README

iso639-rust

A comprehensive, fast, and idiomatic Rust library for ISO 639 language codes — supporting language identification, conversion between two-letter and three-letter codes, detection of deprecated codes, and more.

This crate is a Rust port inspired by the popular iso639-lang Python library, covering ISO 639-1, ISO 639-2, ISO 639-3 and ISO 639-5 standards.


Features

  • Lookup languages by any ISO 639 code or reference name (two-letter, three-letter, or name)
  • Access language metadata (name, pt1 (2-letter code), pt2b, pt2t, pt3 (3-letter code), pt5)
  • Detect deprecated language codes with detailed reasons and suggested replacements
  • Retrieve language scope, type, macrolanguage, and individual languages of macrolanguages
  • Convert between two-letter and three-letter language codes easily
  • Iterate over all ISO 639 recognized languages
  • Query all alternate names of a language

Installation

Add this to your Cargo.toml:

[dependencies]
iso639_rust = "0.1.0"

Usage

Lookup Languages

use iso639_rust::{Lang, is_language};

let lang = Lang::new(Some("deu"), None, None, None, None, None, None).unwrap();

assert_eq!(lang.name, "German");
assert_eq!(lang.pt1, "de");
assert_eq!(lang.pt3, "deu");

Convert 2-letter to 3-letter

 let french = Lang::new(Some("fr"), None, None, None, None, None, None).unwrap();
    println!("'fr' => pt3: {}", french.pt3); // prints "fra"
    println!("'fr' => name: {}", french.name); // prints "French"

Contributing

Contributions welcome! If you find bugs, or want to improve data handling and add features, please open an issue or submit a pull request.


License

This project is licensed under the MIT License - see the LICENSE file for details.


Acknowledgments

Commit count: 0

cargo fmt