5 releases
0.1.4 | Sep 27, 2024 |
---|---|
0.1.3 | Feb 7, 2024 |
0.1.2 | Sep 11, 2022 |
0.1.1 | Sep 7, 2022 |
0.1.0 | Sep 6, 2022 |
#1603 in Web programming
Used in webserver-base
27KB
328 lines
plausible-rs
A Rust library for the Plausible Analytics API.
Features
- Health API
-
GET /api/health
-
- Events API
-
POST /api/event
-
- Stats API (TODO)
-
GET /api/v1/stats/realtime/visitors
-
GET /api/v1/stats/aggregate
-
GET /api/v1/stats/timeseries
-
GET /api/v1/stats/breakdown
-
- Sites API (TODO)
-
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
-
Examples
Events 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
#[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.
Developers
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!
Feature Requests
Implement the rest of the features: Stats API, Sites API
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 :)
Commands
make lint
- Lints the codebase via
cargo fmt
.
- Lints the codebase via
make test
- Tests the codebase via:
cargo fmt
cargo check
cargo clippy
(with insanely strict defaults)cargo test
.
- Tests the codebase via:
Credits
Made with 🤬 and 🥲 by Todd Everett Griffin.
plausible-rs
is open source under the MIT License.
Dependencies
~7–18MB
~233K SLoC