wakapi

Crates.iowakapi
lib.rswakapi
version0.2.0
created_at2024-10-02 00:20:28.74617+00
updated_at2025-06-17 15:32:14.306406+00
descriptionWakatime API client
homepagehttps://dev.solidev.net/solidev/wakapi
repositoryhttps://dev.solidev.net/solidev/wakapi.git
max_upload_size
id1393537
size124,887
Jean-Matthieu BARBIER (jmbarbier)

documentation

README

Wakapi : wakatime API client

This crate is a Work In Progress API client for the Wakatime API. It is NOT ready for production.

The following endpoints are implemented, only in read mode (GET requests), as blocking or async depending on the feature flag blocking:

  • Commits : [Commits], [CommitsParams], [Commits::fetch]
  • Projects : [Projects], [ProjectsParams], [Projects::fetch]
  • Commit : [Commit], [CommitParams], [Commit::fetch]
  • Stats : [Stats], [StatsParams], [Stats::fetch]
  • Durations : [Durations], [DurationsParams], [Durations::fetch]
  • Summaries : [Summaries], [SummariesParams], [Summaries::fetch]
  • Heartbeats : [Heartbeats], [HeartbeatsParams], [Heartbeats::fetch]
  • All Time Since Today : [AllTimeSinceToday], [AllTimeSinceTodayParams], [AllTimeSinceToday::fetch]

The structures are based on the official documentation at 2024-10-01 with a few modifications to correct some errors / inconsistencies.

Usage

Async mode

use wakapi::{WakapiClient, CommitsParams};
let client = wakapi::WakapiClient::new(
    "https://api.wakatime.com",
    "YOUR_WAKATIME_API_KEY",
);
let res = wakapi::Summaries::fetch(&client,
   wakapi::SummariesParams::from_interval("2024-01-01", "2024-01-05"),
).await.unwrap();
println!("{:?}", res);
```

### Blocking mode
```rust
use wakapi::{WakapiClient, CommitsParams};
let client = wakapi::WakapiClient::new(
    "https://api.wakatime.com",
    "YOUR_WAKATIME_API_KEY",
);
let res = wakapi::Summaries::fetch(&client,
   wakapi::SummariesParams::from_interval("2024-01-01", "2024-01-05"),
).unwrap();
println!("{:?}", res);

License

This project is licensed under the MIT License.

Commit count: 0

cargo fmt