Rust bindings to connect with LanguageTool server API.
LanguageTool-Rust (LTRS) is both an executable and a Rust library that aims to provide correct and safe bindings for the LanguageTool API.
Disclaimer: the current work relies on an approximation of the LanguageTool API. We try to avoid breaking changes as much as possible, but we still highly depend on the future evolutions of LanguageTool.
The command line interface of LTRS allows to very quickly use any LanguageTool server to check for grammar and style errors. You can install the latest version with cargo
:
```bash
cargo install languagetool-rust --all-features ```
The reference for the CLI can be accessed via ltrs --help
.
By default, LTRS uses LanguageTool public API.
```bash
ltrs ping # to check if the server is alive PONG! Delay: 110 ms ltrs languages # to list all languages [ { "name": "Arabic", "code": "ar", "longCode": "ar" }, { "name": "Asturian", "code": "ast", "longCode": "ast-ES" }, # ... ] ltrs check --text "Some phrase with a smal mistake" { "language": { "code": "en-US", "detectedLanguage": { "code": "en-US", "confidence": 0.99, "name": "English (US)", "source": "ngram" }, "name": "English (US)" }, "matches": [ { "context": { "length": 4, "offset": 19, "text": "Some phrase with a smal mistake" }, "contextForSureMatch": 0, "ignoreForIncompleteSentence": false, "length": 4, "message": "Possible spelling mistake found.", "offset": 19, "replacements": [ { "value": "small" }, { "value": "seal" }, # ... } # ... ] # ... } ltrs --help # for more details ```
If you would like to integrate LTRS within a Rust application or crate, then we recommend reading documentation.
To use LanguageTool-Rust in your Rust project, add to your Cargo.toml
:
toml
[dependencies]
languagetool_rust = "version"
```rust use languagetool_rust::{check::CheckRequest, server::ServerClient};
async fn main() -> Result<(), Box
let req = CheckRequest::default()
.with_language("auto")
.with_text("Some phrase with a smal mistake");
println!(
"{}",
serde_json::to_string_pretty(&client.check(&req).await?)?
);
Ok(())
} ```
Option
around them.Here are listed some projects that use LTRS.
Do you use LTRS in your project? Contact me so I can add it to the list!
Contributions are more than welcome!