A Rust library for the Plausible Analytics API.
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
```rust
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::new(
domain.clone(),
PAGEVIEW_EVENT.to_string(),
format!("https://{}/test", domain),
Some(String::from("https://www.toddgriffin.me/")),
Some(2560),
Some(HashMap::from([(
String::from("author"),
PropValue::from(String::from("Todd Everett Griffin")),
)]))
)
).await.unwrap();
} ```
Built with: Rust 1.63
.
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.