1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
[]
= "wavekat-platform-client"
= "Rust client for the WaveKat platform — auth, sessions, artifact upload"
= true
= true
= true
= true
= "https://github.com/wavekat/wavekat-platform-client"
= "https://github.com/wavekat/wavekat-platform-client"
= "https://docs.rs/wavekat-platform-client"
= "../../README.md"
= ["wavekat", "platform", "client", "sdk"]
= ["api-bindings", "web-programming::http-client"]
= ["CHANGELOG.md"]
[]
# HTTP client. rustls-tls keeps us off OpenSSL across platforms; json + gzip
# match what wavekat-cli already vetted; stream is needed for get_stream_to.
= { = "0.12", = false, = ["rustls-tls", "json", "gzip", "stream"] }
= { = "1", = ["derive"] }
= "1"
= "2"
= "0.8"
= "1"
# `time` for the handshake timeout; `sync` for the oneshot used to hand
# the token off the blocking accept thread. Deliberately NOT enabling
# `rt-multi-thread` or `macros` — let the consumer pick the runtime.
= { = "1", = false, = ["time", "sync", "rt"] }
= "0.3"
# Host-environment probes for the anonymous install heartbeat
# (`Client::install_heartbeat`). `os_info` resolves the OS version
# string; `sys-locale` reads the system BCP-47 locale. Both are small,
# dependency-light, and cross-platform — kept here (not in the consumer)
# so callers don't re-implement detection. See src/voice.rs.
= { = "3", = false }
= "0.3"
# Ed25519 release-attestation signing for public endpoints
# (`Client::post_public_signed_json`). A build carries a per-version
# Ed25519 key + a certificate issued by the offline release master key;
# it signs a canonical (timestamp, nonce, method, path, body-hash) string
# so the platform can verify — with only the master *public* key — that
# the request came from a genuine release and reject stale replays. See
# src/sign.rs. `sha2`/`hex` hash the body and encode keys/sigs for
# headers + env-var transport.
= "2"
= "0.10"
= "0.4"
[]
# Opt-in build of the `release-keys` CLI (src/bin/release-keys.rs). Kept
# out of the default build surface because it's release-CI / operator
# tooling, not part of the client library. Needs no extra dependencies —
# it only drives the already-present sign module. Install with:
# cargo install wavekat-platform-client --bin release-keys --features release-tooling
= []
# The release-key CLI. `required-features` gates it behind `release-tooling`
# so a plain `cargo build` / dependent build never compiles it.
[[]]
= "release-keys"
= "src/bin/release-keys.rs"
= ["release-tooling"]
[]
= { = "1", = false, = ["macros", "rt-multi-thread", "time", "sync"] }
# `examples/smoke.rs` is a small CLI-shaped binary for the manual smoke
# test (see docs/01-initial-port.md). The library itself does not depend
# on `webbrowser` — the example just uses it for convenience.
= "1"
[]
= true
= ["--cfg", "docsrs"]