Releases: sunsided/waka-rs
Releases · sunsided/waka-rs
0.2.1
Changed
- Upgraded
query-string-builderto 0.7 and adopted its zero-allocation
borrowing builder; query strings now render without per-pair string
allocations. No public API changes. - MSRV raised to 1.87, following the upgraded dependency.
Full Changelog: v0.2.0...v0.2.1
0.2.0
Added
- Full coverage of the documented WakaTime API. New read endpoints:
stats,projects,durations,heartbeats,user,commits(list),
goals,goal,insights,leaders,machine_names,user_agents,
status_bar_today,custom_rules,custom_rules_progress,data_dumps,
external_durations,editors,program_languages,meta,
stats_aggregated,private_leaderboards,private_leaderboard_leaders,
and the organization cluster (orgs,org_dashboards,
org_dashboard_members,org_dashboard_durations,
org_dashboard_summaries,org_dashboard_member_durations,
org_dashboard_member_summaries,org_custom_rules). - Write endpoints:
send_heartbeat,send_heartbeats,delete_heartbeats,
send_external_duration,send_external_durations,
delete_external_durations,set_custom_rules,delete_custom_rule,
delete_custom_rules_progress,create_data_dump. These follow the
developer docs and are tested against mocks only. - OAuth 2.0 bearer token authentication via
WakaTimeClientBuilder::new_with_bearer_token. WakaTimeClientBuilder::with_timeoutfor per-request timeouts and
with_base_urlfor pointing the client at a different host.RangeandInsightTypeenums; thestats,insights, and
stats_aggregatedmethods accept them or plain strings.projects_allandcommits_allhelpers that fetch every page.- Fine-grained error variants:
PaymentRequired,Forbidden,NotFound,
RateLimited(with the parsedRetry-Afterheader), andTimeout.
Error displays include the API's error messages. - Mocked integration test suite covering every endpoint and error path.
Fixed
- User-provided URL path parameters (project names, commit hashes, org and
dashboard identifiers, …) are now percent-encoded, so values containing
/,?,#, spaces, or other special characters produce correct
request URLs.
Changed
- Breaking: upgraded reqwest to 0.13, whose types appear in the public
error enums; the default TLS backend is now rustls. - Breaking:
ApiErrorandBuilderErrorare#[non_exhaustive];
matches need a wildcard arm. - Breaking:
ErrorsResponsegained anerrorfield for the API's
singular error body form. - The commits list deserializes the live API's
commitskey as well as
the documenteddatakey. - Breaking: standardized numeric model types:
total_seconds,
percent, and fractionalsecondsfields are nowf64(previously
f32in the summaries and all-time models), and theminutes/seconds
clock fields are nowu32(previouslyu8). - All public items now carry documentation; the crate denies
missing_docs. - Upgraded to Rust edition 2024; MSRV is 1.86.
0.1.0
To use waka/0.1.0 in your project, add:
[dependencies]
waka = "0.1.0"