4 个版本

0.1.3 2024年2月7日
0.1.2 2022年9月11日
0.1.1 2022年9月7日
0.1.0 2022年9月6日

#1 in #plausible

Download history 3/week @ 2024-04-23 7/week @ 2024-05-21 3/week @ 2024-05-28 3/week @ 2024-06-04

54 月下载量
用于 webserver-base

MIT 许可证

26KB
329

plausible-rs

Version Docs License

Plausible 分析 API 的 Rust 库。

功能

  • 健康 API
    • GET /api/health
  • 事件 API
    • POST /api/event
  • 统计 API (待办)
    • GET /api/v1/stats/realtime/visitors
    • GET /api/v1/stats/aggregate
    • GET /api/v1/stats/timeseries
    • GET /api/v1/stats/breakdown
  • 站点 API (待办)
    • POST /api/v1/sites
    • DELETE /api/v1/sites/:site_id
    • GET /api/v1/sites/:site_id
    • PUT /api/v1/sites/shared-links
    • PUT /api/v1/sites/goals
    • DELETE /api/v1/sites/goals/:goal_id

示例

事件 API

记录一个 pageview 事件!

通过直接向 Plausible 分析 API 发送分析,这适用于服务器端跟踪。

PLAUSIBLE_DOMAIN=<domain>cargo run--示例事件

#[tokio::main]
async fn main() {
    let domain: String = env::var("PLAUSIBLE_DOMAIN")
        .expect("set env var `PLAUSIBLE_DOMAIN` to name of site in Plausible");

    Plausible::new().event(
        EventHeaders::new(
            String::from("Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36"),
            String::from("127.0.0.1")
        ),
        EventPayload::builder(
            domain.clone(),
            PAGEVIEW_EVENT.to_string(),
            format!("https://{}/test", domain))
            .referrer(String::from("https://www.toddgriffin.me/"))
            .screen_width(2560)
            .props(HashMap::from([(
                String::from("author"),
                PropValue::from(String::from("Todd Everett Griffin")),
            )]))
            .build()
    ).await.unwrap();
}

有关更多示例,请参阅 示例 目录。

开发者

使用:Rust 1.65 构建。

项目正在积极维护中 - 即使没有最近的提交!如果您需要更新库,请提交问题/错误请求!

功能请求

实现其余功能:统计 API,站点 API

目前,我只有一个使用场景是通过事件 API 对 Plausible 的服务器端分析跟踪,所以我还没有优先考虑开发统计 API 和站点 API 的其余端点。

我完全打算实现所有这些功能,以便这个库可以做 Plausible API 允许的所有事情。

如果您对任何这些端点有迫切需求,请通过 Github 上的问题向我发起 ping,我会知道优先处理这项工作。如果您非常勇敢,或者真的需要实现这些端点,请发送一个 pull request :)

命令

  • makelint
    • 通过 cargo fmt 对代码库进行代码风格检查。
  • maketest
    • 通过
      • cargofmt
      • cargocheck
      • cargo clippy (具有极其严格的默认值)
      • cargotest.

致谢

由🤬和🥲制作,作者:Todd Everett Griffin

plausible-rs是在MIT许可证下开源的。

依赖项

~6–18MB
~267K SLoC