Crate cld2 [] [src]

DEPRECATED in favor of whatlang, which is native Rust and smaller. If you have a compelling use-case for this code, please open an issue.

Detect the language of a string using the cld2 library from the Chromium project.

use cld2::{detect_language, Format, Reliable, Lang};

let text = "It is an ancient Mariner,
And he stoppeth one of three.
'By thy long grey beard and glittering eye,
Now wherefore stopp'st thou me?";

assert_eq!((Some(Lang("en")), Reliable),
           detect_language(text, Format::Text));

This library wraps the cld2-sys library, which provides a raw interface to cld2. The only major feature which isn't yet wrapped is the ResultChunk interface, because it tends to give fairly imprecise answers—it wouldn't make a very good multi-lingual spellchecker component, for example. As always, pull requests are eagerly welcome!

WARNING: We assume that nobody tries to change the loaded cld2 data tables or calls the C++ function CLD2::DetectLanguageVersion behind our backs. These configuration and debugging APIs in cld2 are not thread safe.

For more information, see the GitHub project for this library.


pub use self::Reliability::Reliable;
pub use self::Reliability::Unreliable;



Detailed language detection results.


Hints to the decoder, which it will use to make better guesses.


A language code, normally two letters for common languages.


Detailed information about how well the input text matched a specific language.



Possible data formats.


Is the output of the language decoder reliable?



Detect the language of the input text.


Detect the language of the input text, using optional hints, and return detailed statistics.


Get the version of cld2 and its embedded data files as a string.