- Rust 100%
| .github/workflows | ||
| assets | ||
| examples | ||
| src | ||
| .gitignore | ||
| Cargo.toml | ||
| ChangeLog.md | ||
| LICENSE.md | ||
| README.md | ||
rust-ispell
⚠️ Attention, the project is discontinued!
Using this library on your server will result in high CPU usage. SpellLauncher uses std::process::Command to run hunspell. However, every time you run hunspell, it creates a PID process and sending simultaneous requests to hunspell will spam processes which will result in high CPU usage.
This library allows to easily use ispell or aspell from Rust.
Usage
Add this to your Cargo.toml
[dependencies]
ispell = { git = "https://github.com/uzinfocom-org/rust-ispell", branch = "master" }
Example
extern crate ispell;
use ispell::SpellLauncher;
fn main() {
let mut checker = SpellLauncher::new()
.aspell()
.dictionary("en_GB")
.launch()
.unwrap();
let errors = checker.check("A simple test to see if it detects typing errors").unwrap();
for e in errors {
println!("'{}' (pos: {}) is misspelled!", &e.misspelled, e.position);
if !e.suggestions.is_empty() {
println!("Maybe you meant '{}'?", &e.suggestions[0]);
}
}
}
will display:
'simpel' (pos: 2) is misspelled!
Maybe you meant 'simple'?
'detetcs' (pos: 27) is misspelled!
Maybe you meant 'dietetics'?
(Yes, that is exactly what I meant.)
Documentation
For more information about using this library, see the API documentation on GitHub.io or on docs.rs.
Requirements
rust-ispell 0.3 requires the 1.12.0 (or a more recent) version of
the
rustc compiler, since it uses the std::sync::mpcs::Receiver::recv_timeout
that was only stabilized in this version.
ChangeLog
See ChangeLog.md.
License
rust-ispell is free software, published under the
Mozilla Public License, version 2.0.