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
54 月下载量
用于 webserver-base
26KB
329 行
plausible-rs
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