Crates.io | plausible-rs |
lib.rs | plausible-rs |
version | 0.1.4 |
source | src |
created_at | 2022-09-06 06:15:51.382119 |
updated_at | 2024-09-27 05:00:38.168361 |
description | A Rust library for the Plausible Analytics API. |
homepage | https://www.toddgriffin.me/ |
repository | https://github.com/goddtriffin/plausible-rs |
max_upload_size | |
id | 659325 |
size | 62,249 |
A Rust library for the Plausible Analytics API.
GET /api/health
POST /api/event
GET /api/v1/stats/realtime/visitors
GET /api/v1/stats/aggregate
GET /api/v1/stats/timeseries
GET /api/v1/stats/breakdown
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
Record a pageview
event!
Useful for server-side tracking by sending analytics directly to the Plausible Analytics API.
PLAUSIBLE_DOMAIN=<domain> cargo run --example event
#[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();
}
For more examples, check out the examples directory.
Built with: Rust 1.65
.
Project is under active maintenance - even if there are no recent commits! Please submit an issue / bug request if you the library needs updating for any reason!
Currently, I only have a use-case for Plausible's server-side analytics tracking via the Events API, so I haven't prioritized developing the rest of the endpoints for the Stats API and the Sites API.
I fully intend to implement all of those features so that this library can do everything the Plausible API allows.
If you have a dire need for any of those endpoints, please ping me via an issue on Github and I'll know to prioritize that work. If you're feeling extra adventurous and/or REALLY need those endpoints implemented, please send a pull request :)
make lint
cargo fmt
.make test
cargo fmt
cargo check
cargo clippy
(with insanely strict defaults)cargo test
.Made with 🤬 and 🥲 by Todd Everett Griffin.
plausible-rs
is open source under the MIT License.