35个版本 (11个稳定版)

2.1.4 2023年8月10日
2.1.3 2023年7月24日
2.1.2 2023年5月29日
2.1.0 2023年2月9日
0.0.18 2022年6月22日

文本处理类别中排名87

Download history 24/week @ 2024-03-11 5/week @ 2024-03-18 23/week @ 2024-04-01 3/week @ 2024-04-08 2/week @ 2024-04-22 7/week @ 2024-04-29 16/week @ 2024-05-06 4/week @ 2024-05-13 48/week @ 2024-05-20 16/week @ 2024-05-27 4/week @ 2024-06-03 16/week @ 2024-06-10 28/week @ 2024-06-17 20/week @ 2024-06-24

每月下载量70
cargo-languagetool中使用

MIT许可证

110KB
2K SLoC

LanguageTool-Rust

Rust语言绑定,用于连接到LanguageTool服务器API。

LanguageTool是一个开源的语法和风格检查器。它可以纠正30多种语言,并且免费使用,更多详情请访问languagetool.org。它提供了一个公开的API(免费层),但您也可以在本地托管自己的服务器。LanguageTool-Rust可以帮助您通过Rust代码轻松地与这些服务器进行通信!

Crates.io docs.rs codecov

  1. 关于
  2. CLI参考
  3. API参考
  4. 变更日志
  5. 相关项目
  6. 贡献

关于

LanguageTool-Rust (LTRS) 既是可执行程序也是Rust库,旨在为LanguageTool API提供正确和安全的语言绑定。

免责声明:当前工作依赖于LanguageTool API的一个近似。我们尽可能地避免破坏性更改,但我们仍然高度依赖于LanguageTool的未来发展。

安装

您可以使用cargo安装最新版本。

cargo install languagetool-rust --features full

AUR

如果您使用Arch Linux,您也可以使用您的AUR助手进行安装

paru -S languagetool-rust

CLI参考

Screenshot from CLI

LTRS的命令行界面允许您快速使用任何LanguageTool服务器来检查语法和风格错误。

CLI的参考可以通过ltrs --help访问。

默认情况下,LTRS使用LanguageTool公开的API。

示例

> 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

Docker

由于LanguageTool的安装可能并不简单,我们提供了一个基本的Docker集成,允许您通过几行代码来pullstartstop LanguageTool Docker容器。

ltrs docker pull # only once
ltrs docker start # start the LT server
ltrs --hostname https://127.0.0.1 -p 8010 check -t "Some tex"
# Other commands...
ltrs docker stop # stop the LT server

注意: Docker 是一种工具,它可以帮助您在不考虑依赖项、平台相关问题等的情况下运行应用程序。安装指南可在这里找到。在 Linux 平台上,您可能需要通过这样做来解决 sudo 权限问题

API参考

如果您想在 Rust 应用程序或 crate 中集成 LTRS,我们建议您阅读文档

要在您的 Rust 项目中使用 LanguageTool-Rust,请将以下内容添加到您的 Cargo.toml

[dependencies]
languagetool_rust = "^2.1"

示例

use languagetool_rust::{check::CheckRequest, server::ServerClient};

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let client = ServerClient::from_env_or_default();

    let req = CheckRequest::default()
        .with_text("Some phrase with a smal mistake".to_string());

    println!(
        "{}",
        serde_json::to_string_pretty(&client.check(&req).await?)?
    );
    Ok(())
}

功能标志

默认特性

  • cli:为多个结构体添加与命令行相关的功能。此功能是安装 LTRS CLI 的必备条件,并启用以下特性:annotatecolormultithreaded
  • native-tls:启用由 native-tls 提供的 TLS 功能。

可选特性

  • annotate:为检查请求的结果添加方法。
  • cli-complete:为各种 shell 添加命令以生成完成文件。此特性还激活了 cli 特性。输入 ltrs completions --help 以获取安装完成文件的帮助。
  • color:启用终端中的彩色输出。如果同时启用 cli 特性,将出现 --color=<WHEN> 选项。
  • full:启用所有相互兼容的特性(即 cli-completedockerunstable)。
  • multithreaded:启用多线程请求。
  • native-tls-vendored:启用 native-tlsvendored 特性。如果您计划使用 HTTPS 服务器,则应激活此特性或 native-tls
  • unstable:向 JSON 响应中添加更多字段,这些字段不在 Model | Example Value 中存在,但在某些情况下可能存在。所有添加的字段都是可选的,因此用 Option 包围。

以下是使用 LTRS 的项目列表。

您是否在项目中使用 LTRS?请与我联系,以便我将它添加到列表中!

贡献

欢迎贡献!如果您有任何问题,请通过 GitHub 与我联系:问题拉取请求讨论

依赖关系

~3–18MB
~287K SLoC