20 个版本 (9 个稳定版)

5.7.0 2024年1月6日
5.6.0 2023年10月29日
5.5.1 2023年7月31日
5.5.0 2023年1月20日
0.2.0 2020年9月15日

631数据库接口 中排名

Download history 17/week @ 2024-03-10 1/week @ 2024-03-17 13/week @ 2024-03-31 133/week @ 2024-04-07 3/week @ 2024-04-21 15/week @ 2024-05-19 1/week @ 2024-05-26 14/week @ 2024-06-02 10/week @ 2024-06-09 44/week @ 2024-06-16 16/week @ 2024-06-23

每月下载量 84

GPL-3.0-or-later

38KB
583

toolforge

crates.io docs.rs pipeline status

toolforge crate 为 Toolforge 上的各种任务提供辅助函数。

请参阅 wikitech 以获取完整文档。

许可证

toolforge 是 (C) 2013, 2017, 2020-2021 Kunal Mehta,根据 GPL v3 或任何后续版本发布,有关详细信息请参阅 COPYING。


lib.rs:

toolforge crate 为 Toolforge 上的各种任务提供辅助函数。

构建 User-Agent

user_agent! 宏生成符合 Wikimedia 的 User-Agent 策略 的工具特定的 User-Agent 标头。唯一必需的参数是工具的名称。可选的第二个和第三个参数可以是 URL 和电子邮件的覆盖。

示例

const USER_AGENT: &str = toolforge::user_agent!("mycooltool");

assert_eq!(
    USER_AGENT,
    "https://mycooltool.toolforge.org/ [email protected]"
);

WikiReplica 连接辅助工具

connection_info! 宏构建连接到 Wiki Replicas 的 URL 字符串,以供与 mysql_async crate 一起使用。它也应该与 mysql crate 一起使用。具体来说,它遵循 Toolforge 连接处理策略

第一个参数是数据库名称,可以是带有或不带有 _p 后缀的名称。第二个(可选)参数是要连接到哪个集群,可以是 WEB(默认)或 ANALYTICS

示例

use mysql_async::Pool;
let pool = Pool::new(
    toolforge::connection_info!("enwiki", WEB)
        .expect("unable to load db config")
        .to_string()
        .as_str(),
);
let mut conn = pool.get_conn().await?;

本地开发

将您的工具的 replica.my.cnf 复制到您的本地计算机,将其保存到 ~/replica.my.cnf 并添加一个 local='true' 标志。例如

[client]
user='u####'
password='...'
local='true'

然后打开一个SSH隧道,端口号为3306,连接到你想要访问的特定维基副本数据库。以下描述的toolforge-tunnel助手可以简化此过程。

WikiPool功能

WikiPool是围绕mysql_async::Pool的一个包装器,给定一个数据库名称,将连接到相应的后端服务器。它足够智能,知道哪些数据库位于同一服务器上,因此可以优化重用连接以获得更好的性能。这是wikipool功能背后的原理。

toolforge-tunnel助手

toolforge-tunnel工具简化了打开维基副本SSH隧道的过程。示例用法:toolforge-tunnel enwiki

可以通过cargo安装:cargo install toolforge --features=cli。预构建的二进制文件可以从GitLab下载。

贡献

toolforgemwbot-rs项目的一部分。我们一直在寻找新的贡献者,如果您对此感兴趣,请联系我们

依赖关系

~0–12MB
~120K SLoC