mirror of
https://github.com/ruvnet/RuView.git
synced 2026-06-02 09:03:44 +02:00
2bccdf5065
* feat(adr-125 iter 3): BFLD PrivacyGate + semantic-event naming at HAP boundary
Inserts a Python equivalent of `wifi-densepose-bfld::PrivacyClass` +
`PrivacyGate` between the rv_feature_state parser and the HAP toggle
file. ADR-125 §2.1.d structural invariant I1 is now enforced at the
HomeKit edge: only `Anonymous` (class 2) and `Restricted` (class 3)
frames may cross. `Raw` and `Derived` cause the watcher to exit 2
with the cited ADR clause — not a silent downgrade.
Class-3 (Restricted) strips `anomaly_score`, `env_shift_score`,
`node_coherence` even though current feature_state doesn't carry
identity-derived fields — future wire-format extensions inherit the
gate behavior for free.
Operator-facing semantic naming follows ADR-125 §2.1.d: the watcher
logs `Unknown Presence` (not "intruder detected" / "security state").
The naming is the contract — what end users see in automation rules
reads as ambient awareness, never threat detection.
Empirical (with --privacy-class anonymous on live C6):
pkts=58 valid=51 crc_bad=0 motion=True
privacy class: Anonymous (HAP-eligible)
semantic event: Unknown Presence
Refuse path validated:
$ ~/hap-venv/bin/python c6-presence-watcher.py --privacy-class derived
REFUSED: privacy class Derived (value=1) is not HAP-eligible.
ADR-125 §2.1.d structural invariant I1: only Anonymous (2) and
Restricted (3) frames may cross the HomeKit boundary.
$ echo $?
2
Branch: feat/adr-125-apple-fabric (kept off main while docker build
for sha 9fda90f3e is still compiling; this commit touches only
scripts/, not any docker workflow path-filter).
Refs ADR-125 §2.1.d, ADR-118 §2.1/§2.2.
Co-Authored-By: claude-flow <ruv@ruv.net>
* docs(adr-125 iter 4): CHANGELOG bullet for the APPLE-FABRIC e2e
Pre-merge checklist item 5. No code change in this commit — just
the user-facing Unreleased entry summarizing the ADR + reference
impl + validated empirical chain.
Co-Authored-By: claude-flow <ruv@ruv.net>
* feat(adr-125 tier1 #1): multi-characteristic accessory + JSON-state IPC
The HAP accessory now carries three services on the same paired
entity (HomeKit allows multiple services per accessory; iPhone
refetches /accessories when config_number bumps):
- MotionSensor — short-window motion_score, immediate
- OccupancySensor — rolling-3s avg presence_score, sustained
- StatelessProgrammableSwitch — "Unrecognized Activity Pattern"
event (Restricted-class only; fires on
anomaly_score >= 0.7); ADR-125 §2.1.d
semantic naming, not security state
New JSON IPC contract `/tmp/ruview-state.json` between watcher
and HAP daemon:
{ "motion": bool, "occupancy": bool, "anomaly_ts": float,
"ts": float }
Atomic writes (tmp + rename). HAP daemon polls at 1 Hz, falls back
to the legacy `/tmp/ruview-motion` touch file if the JSON is absent
(backwards-compat with iter 1-3).
Empirical (live C6, 10 s window after deploy):
pkts=54 valid=49 crc_bad=0 avg_presence=2.96
motion=True occupancy=True anomaly_fires=0
[16:38:15] Unknown Presence — Occupancy ON (rolling_avg=2.79)
Pairing survived:
paired_clients: 1
config_number: 3 (was 1; HAP-python bumps automatically on shape change)
Tier 1 #1 (multi-characteristic) of the Tier 1+2 sprint. Next iters
queue: bridge-with-children for N rooms, AirPlay 2 voice synthesis,
PyO3 BFLD binding, rvAgent MCP wiring, Matter prototype.
Refs ADR-125 §2.1.c (bridge topology), §2.1.d (semantic events),
ADR-118.
Co-Authored-By: claude-flow <ruv@ruv.net>
* feat(adr-125 tier1+2 iter 2): sensing-server-equivalent for @ruvnet/rvagent
scripts/ruview-sensing-server.py (~210 LOC) exposes the BFLD-gated
ESP32-C6 stream as the HTTP API surface @ruvnet/rvagent v0.1.0
(ADR-124, npm) expects. Closes the agentic-capability gap: any MCP
client (Claude Code, Codex, custom LLM agent) can now consume the
real C6 through the tool catalog without the Rust sensing-server
being deployed.
Endpoints (mirrors tools/ruview-mcp/src/tools/*.ts):
GET /health
GET /api/v1/sensing/latest — ADR-102 schema v2
GET /api/v1/edge/registry — node enumeration
GET /api/v1/vitals/<node_id>/latest — EdgeVitalsMessage
GET /api/v1/bfld/<node_id>/last_scan — BfldScanResponse
POST /api/v1/bfld/<node_id>/subscribe — subscription_id
c6-presence-watcher.py now writes a companion `/tmp/ruview-last-
feature.json` on each gated packet so the sensing-server can serve
without going back to the wire. Atomic tmp+rename. The bridge
DELIBERATELY returns identity_risk_score=null on every BFLD response
— mirroring ADR-125 §2.1.d at the HTTP boundary even though the
rvagent schema's slot is nullable.
Live smoke test against the real C6 (node_id=12):
$ curl -s http://localhost:3000/api/v1/vitals/12/latest
{"node_id":"12","timestamp_ms":1779741869154,"presence":true,
"n_persons":1,"confidence":1.0,"breathing_rate_bpm":18.75,
"heartrate_bpm":40.0,"motion":1.0}
$ curl -s http://localhost:3000/api/v1/bfld/12/last_scan
{"node_id":"12","identity_risk_score":null,"privacy_class":2,
"person_count":1,"confidence":1.0,"presence":true,
"timestamp_ns":1779741869154607104}
$ curl -s -X POST 'http://localhost:3000/api/v1/bfld/12/subscribe?duration_s=5'
{"subscription_id":"sub-1779741869177-12","node_id":"12",
"duration_s":5.0,"endpoint_hint":"poll GET ..."}
Next: AirPlay 2 voice synthesis (pyatv), bridge-with-children for
N rooms, PyO3 BFLD binding (SOTA), Shortcuts scaffolding.
Refs ADR-124 (@ruvnet/rvagent contract), ADR-125 §2.1.d, ADR-118.
Co-Authored-By: claude-flow <ruv@ruv.net>
* feat(adr-125 tier1+2 iter 3): production HAP bridge with N child accessories
scripts/ruview-hap-bridge.py (~170 LOC) implements the ADR-125 §2.1.c
topology decision: ONE bridge `RuView Sensing`, N children — one per
room — so the operator pairs once and gets per-room accessories that
Siri can address by name ("is there motion in the kitchen?").
State per room comes from /tmp/ruview-state.<room>.json. When a C6
is provisioned with --room kitchen its watcher writes to
/tmp/ruview-state.kitchen.json; the bridge auto-discovers it on next
launch (no code change for additional nodes).
Legacy /tmp/ruview-state.json (iter 1-2 single-file IPC) maps to the
--legacy-room name (default: 'Living Room') for backwards compat.
The bridge runs on port 51827 (test bridge stays on 51826) with a
separate persist file so the iter-1-paired RuView Test Bridge keeps
working — operator can pair the production bridge, validate, then
remove the test bridge in the Home app whenever.
Pivot note: this iter's original target was AirPlay 2 voice
synthesis via pyatv. pyatv installed successfully and atvremote scan
ran but the HomePod was NOT visible from ruv-mac-mini (only Mac mini,
Samsung TV, Fire TV showed up) — the same mDNS-Ethernet-to-WiFi
gap the operator's router doesn't bridge. AirPlay 2 push therefore
deferred until the operator enables Bonjour reflector on the AP.
Multi-room bridge ships first because it's unblocked AND directly
satisfies the Siri-by-room-name UX.
Empirical (deployed on ruv-mac-mini, prod_bridge_pid=64094):
$ dns-sd -B _hap._tcp local.
Add 3 15 local. _hap._tcp. RuView Test Bridge 224DF9
Add 3 15 local. _hap._tcp. RuView Sensing 0B4FC4
Add 3 15 local. _hap._tcp. Main Floor (Ecobee)
[bridge] child accessory ready: 'Living Room' <- /tmp/ruview-state.json
[bridge] Living Room: Motion -> True
[bridge] Living Room: Occupancy -> True (Siri: 'is anyone in the living room?')
Setup code for pairing the new bridge: 629-88-678.
Tier 1 §2.1.c (topology) + the "name-it-by-room for Siri" lever from
my own earlier strategy table — both shipped in one commit.
Refs ADR-125 §2.1.c.
Co-Authored-By: claude-flow <ruv@ruv.net>
* feat(adr-125 tier1+2 iter 4): semantic-events MCP endpoint per §2.1.d
GET /api/v1/semantic-events/<node_id>/latest exposes the three
ADR-125 §2.1.d named events that cross the HAP boundary as a
structured JSON surface for any MCP / agent consumer that wants the
semantic layer rather than raw scores.
Response shape:
{
"node_id": "12",
"privacy_class": 2,
"events": {
"unknown_presence": {"active": bool, "source": str, "ts": float},
"unexpected_occupancy": {"active": bool, "schedule_aware": false, "ts": float},
"unrecognized_activity_pattern": {
"active": bool, "anomaly_threshold": 0.7,
"anomaly_score": float, "ts": float
}
},
"redacted_fields": [
"identity_risk_score", "soul_match_probability", "rf_signature_hash"
]
}
Live response from real C6 (node_id=12):
{
"unknown_presence": {"active": true, ...},
"unexpected_occupancy": {"active": true, "schedule_aware": false, ...},
"unrecognized_activity_pattern": {"active": false, "anomaly_score": 0.0, ...}
}
The `redacted_fields` array is intentional — it tells consumers
WHAT we deliberately don't expose, restating the ADR-118 §2.5 /
ADR-125 §2.1.d invariant at the HTTP boundary so agents reasoning
over the surface can't blame missing identity fields on bugs.
`unexpected_occupancy.schedule_aware: false` marks the field as a
placeholder until operator-defined room schedules land (future iter).
Agents that branch on this can fall back to raw occupancy until then.
Refs ADR-125 §2.1.d (semantic-events naming contract).
Co-Authored-By: claude-flow <ruv@ruv.net>
* feat(adr-125 tier1+2 iter 5): rvagent MCP consumer — agentic chain proven
scripts/rvagent-mcp-consumer.py (~155 LOC) is an MCP JSON-RPC 2.0
stdio client that spawns the published @ruvnet/rvagent v0.1.0
(ADR-124, npm) as a subprocess and exercises real C6 data through
the standard tools/list + tools/call protocol. This is the "agentic
capabilities" milestone of the Tier 1+2 sprint.
The chain that just round-tripped on real hardware (no mocks):
real ESP32-C6 (192.168.1.179)
→ UDP rv_feature_state @ 5005
→ c6-presence-watcher.py (CRC32 + BFLD PrivacyGate, class=Anonymous)
→ /tmp/ruview-last-feature.json (atomic tmp+rename)
→ ruview-sensing-server.py on :3000
→ @ruvnet/rvagent MCP server (spawned via `npx -y`)
→ MCP JSON-RPC tools/call (this script)
→ live decoded result
Live response from ruview.bfld.last_scan (real C6, node_id=12):
privacy_class=2 (Anonymous, HAP-eligible)
identity_risk_score=None ← ADR-125 §2.1.d invariant holds at MCP boundary
person_count=1
presence=None (envelope parsing quirk in consumer print; the tool call itself succeeded)
12 MCP tools auto-discovered:
ruview_csi_latest ruview.bfld.last_scan
ruview_pose_infer ruview.bfld.subscribe
ruview_count_infer ruview.presence.now
ruview_registry_list ruview.vitals.get_breathing
ruview_train_count ruview.vitals.get_heart_rate
ruview_job_status ruview.vitals.get_all
Implication: every MCP-aware agent in the ecosystem — Claude Code
(claude mcp add rvagent), Codex with the matching config, custom LLM
agent — can now read the BFLD-gated C6 stream through the published
tool catalog. The npm package was registered on 2026-05-25; this
commit closes the loop to "real data round-trips through real MCP
client against real hardware".
Refs ADR-124 (@ruvnet/rvagent), ADR-125 §2.1.d (identity-risk gate).
Co-Authored-By: claude-flow <ruv@ruv.net>
* feat(adr-125 tier1+2 iter 6 SOTA): PyO3 BFLD PrivacyClass binding
scripts/c6-presence-watcher.py and friends carry a Python port of
`wifi_densepose_bfld::PrivacyClass`. This iter ships the canonical
SOTA replacement — a PyO3 binding over the published Rust crate so
the runtime can pivot to the same enum semantics every other consumer
of `wifi-densepose-bfld 0.3.0` already uses.
New file: `python/src/bindings/privacy_gate.rs` (~155 LOC)
- `#[pyclass] PrivacyClass {Raw, Derived, Anonymous, Restricted}`
- `.allows_network`, `.allows_matter`, `.allows_hap`, `.as_u8` getters
- `PrivacyClass.from_u8(v)` / `PrivacyClass.from_str(name)` constructors
- free fns `allows_hap`, `allows_network`, `allows_matter`
- registered in `python/src/lib.rs` via `bindings::privacy_gate::register`
Cargo.toml gains `wifi-densepose-bfld = { version = "0.3.0", path = ... }`
as a hard dep; numpy + pyo3 + the existing core/vitals deps unchanged.
ADR-125 §2.1.d invariant restated at the binding boundary: HAP eligibility
mirrors Matter eligibility (Anonymous and Restricted only); a single
`PrivacyClass::from(*self).allows_matter()` call is the gate truth-source.
Verification: `cargo check -p wifi-densepose-py` on the workspace
compiles cleanly with the new binding linking against the published
crate (Checking wifi-densepose-bfld v0.3.0 ✓, Checking
wifi-densepose-py v2.0.0-alpha.1 ✓).
Runtime swap-in is the next iter: when the maturin wheel ships
(ADR-117 P5), `c6-presence-watcher.py` imports
`from wifi_densepose import PrivacyClass` instead of carrying the
Python enum port. Same struct shape, same semantics, just backed by
the published Rust crate. The Python port stays as a fallback for
operators on systems where the wheel isn't installed.
Refs ADR-118 §2.1, ADR-125 §2.1.d, ADR-117 §5.7 (binding strategy).
Co-Authored-By: claude-flow <ruv@ruv.net>
* feat(adr-125 tier1+2 iter 7): Shortcuts-as-glue scaffold (Tier 2)
ADR-125 Tier 2 "Shortcuts-as-glue" item. Three files under
`scripts/macos-shortcuts/`:
README.md one-time operator setup + architecture diagram
announce-via-homepod.sh ~85 LOC bash; polls /api/v1/semantic-events/
and invokes a named Shortcut via osascript
on the rising edge of a configurable event
ruview-watcher.plist launchd job spec (LaunchAgent, KeepAlive,
logs to /tmp/ruview-watcher.{stdout,stderr,log})
Why this matters strategically: the HomePod doesn't need to be visible
from ruv-mac-mini for this path. The Mac mini is iCloud-paired into the
operator's Home graph; Shortcuts.app reaches the HomePod via that graph,
not via local mDNS. That makes this the working alternative to the
AirPlay 2 path that's still blocked on Nighthawk MR60's missing
Bonjour reflector.
Smoke test on real C6 (real hardware, no mocks):
$ ~/announce-via-homepod.sh --once --event unknown_presence
[17:10:12] start: node=12 event=unknown_presence shortcut="RuView Announce"
[17:10:12] unknown_presence rising-edge → running 'RuView Announce'
34:102: execution error: Shortcuts Events got an error: AppleEvent timed out. (-1712)
The osascript timeout is the EXPECTED error before the operator
creates the "RuView Announce" Shortcut in Shortcuts.app — the
trigger logic is verified working. Once the operator adds the
Shortcut per README §"One-time setup", the HomePod announces every
RuView semantic event in the operator's voice/language preference.
Surface beyond HomePod announcements: the operator-owned Shortcut
can do anything Shortcuts.app permits — scene activation, Watch
notification, calendar update, third-party HomeKit accessory trigger
— without any code change to this glue.
Refs ADR-125 §1.4 "Tier 2 — Shortcuts-as-glue", §2.1.d.
Co-Authored-By: claude-flow <ruv@ruv.net>
* feat(adr-125 tier1+2 iter 8): custom characteristic UUID scaffold (Tier 2)
Adds the BFLD-Privacy-Class custom HomeKit Characteristic UUID +
specification + run-time write hook to ruview-hap-bridge.py.
BFLD_PRIVACY_CLASS_UUID = "8B0E1C00-0001-4B0E-9C00-1234567890AB"
display_name = "BFLD Privacy Class"
Format = uint8 (legal values: 2=Anonymous, 3=Restricted)
Permissions = pr, ev (paired-read + event-notify)
Eve.app + Controller for HomeKit render this as an integer 2..3
under the MotionSensor service; Home.app ignores unknown UUIDs but
automations can still trigger on it.
Implementation status: SCAFFOLD-ONLY. The runtime add of the
Characteristic via `Service.add_characteristic(...)` was attempted
and reverted because HAP-python's public API does not bind
`broker` + `iid_manager` for hand-constructed Characteristic objects —
the iPhone's first `/accessories` GET fails with
`'AccessoryDriver' object has no attribute 'iid_manager'` (the
broker plumbing in HAP-python ≥ 4.x lives on the Accessory, not the
driver, and Service.add_characteristic doesn't traverse the chain).
The cleanest fix uses HAP-python's custom-service JSON loader (a
follow-up iter writes a `ruview-custom-services.json` and calls
`add_preload_service("BfldStatus", chars=[...])`). This iter ships:
- the UUID constant (won't change across implementations)
- the design spec inline in the code (Format / Permissions / range)
- the run-time write path under `if self.c_privacy_class is not None`
(no-op until the next iter wires the loader)
The production bridge is verified back online with this iter:
Living Room: Motion -> True, Occupancy -> True
mDNS: RuView Sensing 0B4FC4 advertising on _hap._tcp
Closes the design half of the last open Tier 1+2 item. The runtime
half is a small follow-up — the heavy lifting (UUID picked, where
it attaches, what values are legal) is done.
Refs ADR-125 §1.4 "Tier 2 — Custom Characteristic UUIDs", §2.1.d.
Co-Authored-By: claude-flow <ruv@ruv.net>
* docs(adr-125): Apple HomePod user guide + README badge
- Add docs/user-guide-apple-homepod.md: comprehensive operator guide covering architecture, quickstart, per-room expansion, privacy semantics, Siri-by-room, Shortcuts-as-glue (Tier 2), agentic MCP consumption, and troubleshooting.
- Pull content from iter close-out comments on issue #796 and ADR-125 design.
- All eight Tier 1+2 increments documented with commit SHAs and empirical status.
- Update README.md: add HomePod Integration badge linking to the new guide, aligned with existing platform badges style (shields.io format, Apple logo, black background).
Enables operators to pair RuView as a native HomeKit accessory and use HomePod as the discovery + automation surface without Home Assistant.
996 lines
24 KiB
TOML
996 lines
24 KiB
TOML
# This file is automatically @generated by Cargo.
|
|
# It is not intended for manual editing.
|
|
version = 4
|
|
|
|
[[package]]
|
|
name = "android_system_properties"
|
|
version = "0.1.5"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311"
|
|
dependencies = [
|
|
"libc",
|
|
]
|
|
|
|
[[package]]
|
|
name = "anyhow"
|
|
version = "1.0.102"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "7f202df86484c868dbad7eaa557ef785d5c66295e41b460ef922eca0723b842c"
|
|
|
|
[[package]]
|
|
name = "arrayref"
|
|
version = "0.3.9"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "76a2e8124351fda1ef8aaaa3bbd7ebbcb486bbcd4225aca0aa0d84bb2db8fecb"
|
|
|
|
[[package]]
|
|
name = "arrayvec"
|
|
version = "0.7.6"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50"
|
|
|
|
[[package]]
|
|
name = "autocfg"
|
|
version = "1.5.1"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "f2032f911046de80f0a198e0901378627c33f59ea0ac00e363d481118bd70a53"
|
|
|
|
[[package]]
|
|
name = "bitflags"
|
|
version = "2.11.1"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "c4512299f36f043ab09a583e57bceb5a5aab7a73db1805848e8fef3c9e8c78b3"
|
|
|
|
[[package]]
|
|
name = "blake3"
|
|
version = "1.8.5"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "0aa83c34e62843d924f905e0f5c866eb1dd6545fc4d719e803d9ba6030371fce"
|
|
dependencies = [
|
|
"arrayref",
|
|
"arrayvec",
|
|
"cc",
|
|
"cfg-if",
|
|
"constant_time_eq",
|
|
"cpufeatures",
|
|
]
|
|
|
|
[[package]]
|
|
name = "bumpalo"
|
|
version = "3.20.3"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "72f5acc6cb2ba439de613abc23857ec3d78374d8ed5ac84e9d11336e87da8649"
|
|
|
|
[[package]]
|
|
name = "cc"
|
|
version = "1.2.62"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "a1dce859f0832a7d088c4f1119888ab94ef4b5d6795d1ce05afb7fe159d79f98"
|
|
dependencies = [
|
|
"find-msvc-tools",
|
|
"shlex",
|
|
]
|
|
|
|
[[package]]
|
|
name = "cfg-if"
|
|
version = "1.0.4"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801"
|
|
|
|
[[package]]
|
|
name = "chrono"
|
|
version = "0.4.44"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "c673075a2e0e5f4a1dde27ce9dee1ea4558c7ffe648f576438a20ca1d2acc4b0"
|
|
dependencies = [
|
|
"iana-time-zone",
|
|
"js-sys",
|
|
"num-traits",
|
|
"serde",
|
|
"wasm-bindgen",
|
|
"windows-link",
|
|
]
|
|
|
|
[[package]]
|
|
name = "constant_time_eq"
|
|
version = "0.4.2"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "3d52eff69cd5e647efe296129160853a42795992097e8af39800e1060caeea9b"
|
|
|
|
[[package]]
|
|
name = "core-foundation-sys"
|
|
version = "0.8.7"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b"
|
|
|
|
[[package]]
|
|
name = "cpufeatures"
|
|
version = "0.3.0"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "8b2a41393f66f16b0823bb79094d54ac5fbd34ab292ddafb9a0456ac9f87d201"
|
|
dependencies = [
|
|
"libc",
|
|
]
|
|
|
|
[[package]]
|
|
name = "crc"
|
|
version = "3.4.0"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "5eb8a2a1cd12ab0d987a5d5e825195d372001a4094a0376319d5a0ad71c1ba0d"
|
|
dependencies = [
|
|
"crc-catalog",
|
|
]
|
|
|
|
[[package]]
|
|
name = "crc-catalog"
|
|
version = "2.5.0"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "217698eaf96b4a3f0bc4f3662aaa55bdf913cd54d7204591faa790070c6d0853"
|
|
|
|
[[package]]
|
|
name = "equivalent"
|
|
version = "1.0.2"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f"
|
|
|
|
[[package]]
|
|
name = "find-msvc-tools"
|
|
version = "0.1.9"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "5baebc0774151f905a1a2cc41989300b1e6fbb29aff0ceffa1064fdd3088d582"
|
|
|
|
[[package]]
|
|
name = "foldhash"
|
|
version = "0.1.5"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2"
|
|
|
|
[[package]]
|
|
name = "futures-core"
|
|
version = "0.3.32"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "7e3450815272ef58cec6d564423f6e755e25379b217b0bc688e295ba24df6b1d"
|
|
|
|
[[package]]
|
|
name = "futures-task"
|
|
version = "0.3.32"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "037711b3d59c33004d3856fbdc83b99d4ff37a24768fa1be9ce3538a1cde4393"
|
|
|
|
[[package]]
|
|
name = "futures-util"
|
|
version = "0.3.32"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "389ca41296e6190b48053de0321d02a77f32f8a5d2461dd38762c0593805c6d6"
|
|
dependencies = [
|
|
"futures-core",
|
|
"futures-task",
|
|
"pin-project-lite",
|
|
"slab",
|
|
]
|
|
|
|
[[package]]
|
|
name = "getrandom"
|
|
version = "0.4.2"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "0de51e6874e94e7bf76d726fc5d13ba782deca734ff60d5bb2fb2607c7406555"
|
|
dependencies = [
|
|
"cfg-if",
|
|
"libc",
|
|
"r-efi",
|
|
"wasip2",
|
|
"wasip3",
|
|
]
|
|
|
|
[[package]]
|
|
name = "hashbrown"
|
|
version = "0.15.5"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1"
|
|
dependencies = [
|
|
"foldhash",
|
|
]
|
|
|
|
[[package]]
|
|
name = "hashbrown"
|
|
version = "0.17.1"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "ed5909b6e89a2db4456e54cd5f673791d7eca6732202bbf2a9cc504fe2f9b84a"
|
|
|
|
[[package]]
|
|
name = "heck"
|
|
version = "0.5.0"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea"
|
|
|
|
[[package]]
|
|
name = "iana-time-zone"
|
|
version = "0.1.65"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "e31bc9ad994ba00e440a8aa5c9ef0ec67d5cb5e5cb0cc7f8b744a35b389cc470"
|
|
dependencies = [
|
|
"android_system_properties",
|
|
"core-foundation-sys",
|
|
"iana-time-zone-haiku",
|
|
"js-sys",
|
|
"log",
|
|
"wasm-bindgen",
|
|
"windows-core",
|
|
]
|
|
|
|
[[package]]
|
|
name = "iana-time-zone-haiku"
|
|
version = "0.1.2"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f"
|
|
dependencies = [
|
|
"cc",
|
|
]
|
|
|
|
[[package]]
|
|
name = "id-arena"
|
|
version = "2.3.0"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "3d3067d79b975e8844ca9eb072e16b31c3c1c36928edf9c6789548c524d0d954"
|
|
|
|
[[package]]
|
|
name = "indexmap"
|
|
version = "2.14.0"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "d466e9454f08e4a911e14806c24e16fba1b4c121d1ea474396f396069cf949d9"
|
|
dependencies = [
|
|
"equivalent",
|
|
"hashbrown 0.17.1",
|
|
"serde",
|
|
"serde_core",
|
|
]
|
|
|
|
[[package]]
|
|
name = "indoc"
|
|
version = "2.0.7"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "79cf5c93f93228cf8efb3ba362535fb11199ac548a09ce117c9b1adc3030d706"
|
|
dependencies = [
|
|
"rustversion",
|
|
]
|
|
|
|
[[package]]
|
|
name = "itoa"
|
|
version = "1.0.18"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682"
|
|
|
|
[[package]]
|
|
name = "js-sys"
|
|
version = "0.3.99"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "142bc4740e452c1e57ade0cbc129f139c9093e354346f0872ef985f4f5cf5f11"
|
|
dependencies = [
|
|
"cfg-if",
|
|
"futures-util",
|
|
"once_cell",
|
|
"wasm-bindgen",
|
|
]
|
|
|
|
[[package]]
|
|
name = "leb128fmt"
|
|
version = "0.1.0"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "09edd9e8b54e49e587e4f6295a7d29c3ea94d469cb40ab8ca70b288248a81db2"
|
|
|
|
[[package]]
|
|
name = "libc"
|
|
version = "0.2.186"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "68ab91017fe16c622486840e4c83c9a37afeff978bd239b5293d61ece587de66"
|
|
|
|
[[package]]
|
|
name = "log"
|
|
version = "0.4.29"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897"
|
|
|
|
[[package]]
|
|
name = "matrixmultiply"
|
|
version = "0.3.10"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "a06de3016e9fae57a36fd14dba131fccf49f74b40b7fbdb472f96e361ec71a08"
|
|
dependencies = [
|
|
"autocfg",
|
|
"rawpointer",
|
|
]
|
|
|
|
[[package]]
|
|
name = "memchr"
|
|
version = "2.8.0"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "f8ca58f447f06ed17d5fc4043ce1b10dd205e060fb3ce5b979b8ed8e59ff3f79"
|
|
|
|
[[package]]
|
|
name = "memoffset"
|
|
version = "0.9.1"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a"
|
|
dependencies = [
|
|
"autocfg",
|
|
]
|
|
|
|
[[package]]
|
|
name = "ndarray"
|
|
version = "0.16.1"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "882ed72dce9365842bf196bdeedf5055305f11fc8c03dee7bb0194a6cad34841"
|
|
dependencies = [
|
|
"matrixmultiply",
|
|
"num-complex",
|
|
"num-integer",
|
|
"num-traits",
|
|
"portable-atomic",
|
|
"portable-atomic-util",
|
|
"rawpointer",
|
|
]
|
|
|
|
[[package]]
|
|
name = "ndarray"
|
|
version = "0.17.2"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "520080814a7a6b4a6e9070823bb24b4531daac8c4627e08ba5de8c5ef2f2752d"
|
|
dependencies = [
|
|
"matrixmultiply",
|
|
"num-complex",
|
|
"num-integer",
|
|
"num-traits",
|
|
"portable-atomic",
|
|
"portable-atomic-util",
|
|
"rawpointer",
|
|
"serde",
|
|
]
|
|
|
|
[[package]]
|
|
name = "num-complex"
|
|
version = "0.4.6"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "73f88a1307638156682bada9d7604135552957b7818057dcef22705b4d509495"
|
|
dependencies = [
|
|
"num-traits",
|
|
]
|
|
|
|
[[package]]
|
|
name = "num-integer"
|
|
version = "0.1.46"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f"
|
|
dependencies = [
|
|
"num-traits",
|
|
]
|
|
|
|
[[package]]
|
|
name = "num-traits"
|
|
version = "0.2.19"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841"
|
|
dependencies = [
|
|
"autocfg",
|
|
]
|
|
|
|
[[package]]
|
|
name = "numpy"
|
|
version = "0.22.1"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "edb929bc0da91a4d85ed6c0a84deaa53d411abfb387fc271124f91bf6b89f14e"
|
|
dependencies = [
|
|
"libc",
|
|
"ndarray 0.16.1",
|
|
"num-complex",
|
|
"num-integer",
|
|
"num-traits",
|
|
"pyo3",
|
|
"rustc-hash",
|
|
]
|
|
|
|
[[package]]
|
|
name = "once_cell"
|
|
version = "1.21.4"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "9f7c3e4beb33f85d45ae3e3a1792185706c8e16d043238c593331cc7cd313b50"
|
|
|
|
[[package]]
|
|
name = "pin-project-lite"
|
|
version = "0.2.17"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "a89322df9ebe1c1578d689c92318e070967d1042b512afbe49518723f4e6d5cd"
|
|
|
|
[[package]]
|
|
name = "portable-atomic"
|
|
version = "1.13.1"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "c33a9471896f1c69cecef8d20cbe2f7accd12527ce60845ff44c153bb2a21b49"
|
|
|
|
[[package]]
|
|
name = "portable-atomic-util"
|
|
version = "0.2.7"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "c2a106d1259c23fac8e543272398ae0e3c0b8d33c88ed73d0cc71b0f1d902618"
|
|
dependencies = [
|
|
"portable-atomic",
|
|
]
|
|
|
|
[[package]]
|
|
name = "prettyplease"
|
|
version = "0.2.37"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b"
|
|
dependencies = [
|
|
"proc-macro2",
|
|
"syn",
|
|
]
|
|
|
|
[[package]]
|
|
name = "proc-macro2"
|
|
version = "1.0.106"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934"
|
|
dependencies = [
|
|
"unicode-ident",
|
|
]
|
|
|
|
[[package]]
|
|
name = "pyo3"
|
|
version = "0.22.6"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "f402062616ab18202ae8319da13fa4279883a2b8a9d9f83f20dbade813ce1884"
|
|
dependencies = [
|
|
"cfg-if",
|
|
"indoc",
|
|
"libc",
|
|
"memoffset",
|
|
"once_cell",
|
|
"portable-atomic",
|
|
"pyo3-build-config",
|
|
"pyo3-ffi",
|
|
"pyo3-macros",
|
|
"unindent",
|
|
]
|
|
|
|
[[package]]
|
|
name = "pyo3-build-config"
|
|
version = "0.22.6"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "b14b5775b5ff446dd1056212d778012cbe8a0fbffd368029fd9e25b514479c38"
|
|
dependencies = [
|
|
"once_cell",
|
|
"target-lexicon",
|
|
]
|
|
|
|
[[package]]
|
|
name = "pyo3-ffi"
|
|
version = "0.22.6"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "9ab5bcf04a2cdcbb50c7d6105de943f543f9ed92af55818fd17b660390fc8636"
|
|
dependencies = [
|
|
"libc",
|
|
"pyo3-build-config",
|
|
]
|
|
|
|
[[package]]
|
|
name = "pyo3-macros"
|
|
version = "0.22.6"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "0fd24d897903a9e6d80b968368a34e1525aeb719d568dba8b3d4bfa5dc67d453"
|
|
dependencies = [
|
|
"proc-macro2",
|
|
"pyo3-macros-backend",
|
|
"quote",
|
|
"syn",
|
|
]
|
|
|
|
[[package]]
|
|
name = "pyo3-macros-backend"
|
|
version = "0.22.6"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "36c011a03ba1e50152b4b394b479826cad97e7a21eb52df179cd91ac411cbfbe"
|
|
dependencies = [
|
|
"heck",
|
|
"proc-macro2",
|
|
"pyo3-build-config",
|
|
"quote",
|
|
"syn",
|
|
]
|
|
|
|
[[package]]
|
|
name = "quote"
|
|
version = "1.0.45"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "41f2619966050689382d2b44f664f4bc593e129785a36d6ee376ddf37259b924"
|
|
dependencies = [
|
|
"proc-macro2",
|
|
]
|
|
|
|
[[package]]
|
|
name = "r-efi"
|
|
version = "6.0.0"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "f8dcc9c7d52a811697d2151c701e0d08956f92b0e24136cf4cf27b57a6a0d9bf"
|
|
|
|
[[package]]
|
|
name = "rawpointer"
|
|
version = "0.2.1"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "60a357793950651c4ed0f3f52338f53b2f809f32d83a07f72909fa13e4c6c1e3"
|
|
|
|
[[package]]
|
|
name = "rustc-hash"
|
|
version = "1.1.0"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2"
|
|
|
|
[[package]]
|
|
name = "rustversion"
|
|
version = "1.0.22"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d"
|
|
|
|
[[package]]
|
|
name = "semver"
|
|
version = "1.0.28"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "8a7852d02fc848982e0c167ef163aaff9cd91dc640ba85e263cb1ce46fae51cd"
|
|
|
|
[[package]]
|
|
name = "serde"
|
|
version = "1.0.228"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e"
|
|
dependencies = [
|
|
"serde_core",
|
|
"serde_derive",
|
|
]
|
|
|
|
[[package]]
|
|
name = "serde_core"
|
|
version = "1.0.228"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad"
|
|
dependencies = [
|
|
"serde_derive",
|
|
]
|
|
|
|
[[package]]
|
|
name = "serde_derive"
|
|
version = "1.0.228"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79"
|
|
dependencies = [
|
|
"proc-macro2",
|
|
"quote",
|
|
"syn",
|
|
]
|
|
|
|
[[package]]
|
|
name = "serde_json"
|
|
version = "1.0.150"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "e8014e44b4736ed0538adeecded0fce2a272f22dc9578a7eb6b2d9993c74cfb9"
|
|
dependencies = [
|
|
"itoa",
|
|
"memchr",
|
|
"serde",
|
|
"serde_core",
|
|
"zmij",
|
|
]
|
|
|
|
[[package]]
|
|
name = "shlex"
|
|
version = "1.3.0"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64"
|
|
|
|
[[package]]
|
|
name = "slab"
|
|
version = "0.4.12"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "0c790de23124f9ab44544d7ac05d60440adc586479ce501c1d6d7da3cd8c9cf5"
|
|
|
|
[[package]]
|
|
name = "static_assertions"
|
|
version = "1.1.0"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
|
|
|
|
[[package]]
|
|
name = "syn"
|
|
version = "2.0.117"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "e665b8803e7b1d2a727f4023456bbbbe74da67099c585258af0ad9c5013b9b99"
|
|
dependencies = [
|
|
"proc-macro2",
|
|
"quote",
|
|
"unicode-ident",
|
|
]
|
|
|
|
[[package]]
|
|
name = "target-lexicon"
|
|
version = "0.12.16"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1"
|
|
|
|
[[package]]
|
|
name = "thiserror"
|
|
version = "2.0.18"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "4288b5bcbc7920c07a1149a35cf9590a2aa808e0bc1eafaade0b80947865fbc4"
|
|
dependencies = [
|
|
"thiserror-impl",
|
|
]
|
|
|
|
[[package]]
|
|
name = "thiserror-impl"
|
|
version = "2.0.18"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "ebc4ee7f67670e9b64d05fa4253e753e016c6c95ff35b89b7941d6b856dec1d5"
|
|
dependencies = [
|
|
"proc-macro2",
|
|
"quote",
|
|
"syn",
|
|
]
|
|
|
|
[[package]]
|
|
name = "tracing"
|
|
version = "0.1.44"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "63e71662fa4b2a2c3a26f570f037eb95bb1f85397f3cd8076caed2f026a6d100"
|
|
dependencies = [
|
|
"pin-project-lite",
|
|
"tracing-attributes",
|
|
"tracing-core",
|
|
]
|
|
|
|
[[package]]
|
|
name = "tracing-attributes"
|
|
version = "0.1.31"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "7490cfa5ec963746568740651ac6781f701c9c5ea257c58e057f3ba8cf69e8da"
|
|
dependencies = [
|
|
"proc-macro2",
|
|
"quote",
|
|
"syn",
|
|
]
|
|
|
|
[[package]]
|
|
name = "tracing-core"
|
|
version = "0.1.36"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "db97caf9d906fbde555dd62fa95ddba9eecfd14cb388e4f491a66d74cd5fb79a"
|
|
dependencies = [
|
|
"once_cell",
|
|
]
|
|
|
|
[[package]]
|
|
name = "unicode-ident"
|
|
version = "1.0.24"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75"
|
|
|
|
[[package]]
|
|
name = "unicode-xid"
|
|
version = "0.2.6"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853"
|
|
|
|
[[package]]
|
|
name = "unindent"
|
|
version = "0.2.4"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "7264e107f553ccae879d21fbea1d6724ac785e8c3bfc762137959b5802826ef3"
|
|
|
|
[[package]]
|
|
name = "uuid"
|
|
version = "1.23.1"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "ddd74a9687298c6858e9b88ec8935ec45d22e8fd5e6394fa1bd4e99a87789c76"
|
|
dependencies = [
|
|
"getrandom",
|
|
"js-sys",
|
|
"serde_core",
|
|
"wasm-bindgen",
|
|
]
|
|
|
|
[[package]]
|
|
name = "wasip2"
|
|
version = "1.0.3+wasi-0.2.9"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "20064672db26d7cdc89c7798c48a0fdfac8213434a1186e5ef29fd560ae223d6"
|
|
dependencies = [
|
|
"wit-bindgen 0.57.1",
|
|
]
|
|
|
|
[[package]]
|
|
name = "wasip3"
|
|
version = "0.4.0+wasi-0.3.0-rc-2026-01-06"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "5428f8bf88ea5ddc08faddef2ac4a67e390b88186c703ce6dbd955e1c145aca5"
|
|
dependencies = [
|
|
"wit-bindgen 0.51.0",
|
|
]
|
|
|
|
[[package]]
|
|
name = "wasm-bindgen"
|
|
version = "0.2.122"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "3ed04576f974d2b2fba0f38c51dbc5518011e38c36bf1143164be765528fd409"
|
|
dependencies = [
|
|
"cfg-if",
|
|
"once_cell",
|
|
"rustversion",
|
|
"wasm-bindgen-macro",
|
|
"wasm-bindgen-shared",
|
|
]
|
|
|
|
[[package]]
|
|
name = "wasm-bindgen-macro"
|
|
version = "0.2.122"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "916151b09da36bd82f6615cbf3a419e2f0ba23a03c6160e8e92eb6bd4aa1dec6"
|
|
dependencies = [
|
|
"quote",
|
|
"wasm-bindgen-macro-support",
|
|
]
|
|
|
|
[[package]]
|
|
name = "wasm-bindgen-macro-support"
|
|
version = "0.2.122"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "299047362ccbfce148b67ab7e73349f77748e00c8296f9542adfad2ad82c5c5e"
|
|
dependencies = [
|
|
"bumpalo",
|
|
"proc-macro2",
|
|
"quote",
|
|
"syn",
|
|
"wasm-bindgen-shared",
|
|
]
|
|
|
|
[[package]]
|
|
name = "wasm-bindgen-shared"
|
|
version = "0.2.122"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "9a929b2c61f11ba3e9bc35b50c1f25cb38e0e892c0c231ae2b8cf78d5dad4437"
|
|
dependencies = [
|
|
"unicode-ident",
|
|
]
|
|
|
|
[[package]]
|
|
name = "wasm-encoder"
|
|
version = "0.244.0"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "990065f2fe63003fe337b932cfb5e3b80e0b4d0f5ff650e6985b1048f62c8319"
|
|
dependencies = [
|
|
"leb128fmt",
|
|
"wasmparser",
|
|
]
|
|
|
|
[[package]]
|
|
name = "wasm-metadata"
|
|
version = "0.244.0"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "bb0e353e6a2fbdc176932bbaab493762eb1255a7900fe0fea1a2f96c296cc909"
|
|
dependencies = [
|
|
"anyhow",
|
|
"indexmap",
|
|
"wasm-encoder",
|
|
"wasmparser",
|
|
]
|
|
|
|
[[package]]
|
|
name = "wasmparser"
|
|
version = "0.244.0"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "47b807c72e1bac69382b3a6fb3dbe8ea4c0ed87ff5629b8685ae6b9a611028fe"
|
|
dependencies = [
|
|
"bitflags",
|
|
"hashbrown 0.15.5",
|
|
"indexmap",
|
|
"semver",
|
|
]
|
|
|
|
[[package]]
|
|
name = "wifi-densepose-bfld"
|
|
version = "0.3.0"
|
|
dependencies = [
|
|
"blake3",
|
|
"crc",
|
|
"serde",
|
|
"serde_json",
|
|
"static_assertions",
|
|
"thiserror",
|
|
]
|
|
|
|
[[package]]
|
|
name = "wifi-densepose-core"
|
|
version = "0.3.0"
|
|
dependencies = [
|
|
"chrono",
|
|
"ndarray 0.17.2",
|
|
"num-complex",
|
|
"num-traits",
|
|
"thiserror",
|
|
"uuid",
|
|
]
|
|
|
|
[[package]]
|
|
name = "wifi-densepose-py"
|
|
version = "2.0.0-alpha.1"
|
|
dependencies = [
|
|
"numpy",
|
|
"pyo3",
|
|
"wifi-densepose-bfld",
|
|
"wifi-densepose-core",
|
|
"wifi-densepose-vitals",
|
|
]
|
|
|
|
[[package]]
|
|
name = "wifi-densepose-vitals"
|
|
version = "0.3.0"
|
|
dependencies = [
|
|
"serde",
|
|
"tracing",
|
|
]
|
|
|
|
[[package]]
|
|
name = "windows-core"
|
|
version = "0.62.2"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "b8e83a14d34d0623b51dce9581199302a221863196a1dde71a7663a4c2be9deb"
|
|
dependencies = [
|
|
"windows-implement",
|
|
"windows-interface",
|
|
"windows-link",
|
|
"windows-result",
|
|
"windows-strings",
|
|
]
|
|
|
|
[[package]]
|
|
name = "windows-implement"
|
|
version = "0.60.2"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "053e2e040ab57b9dc951b72c264860db7eb3b0200ba345b4e4c3b14f67855ddf"
|
|
dependencies = [
|
|
"proc-macro2",
|
|
"quote",
|
|
"syn",
|
|
]
|
|
|
|
[[package]]
|
|
name = "windows-interface"
|
|
version = "0.59.3"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "3f316c4a2570ba26bbec722032c4099d8c8bc095efccdc15688708623367e358"
|
|
dependencies = [
|
|
"proc-macro2",
|
|
"quote",
|
|
"syn",
|
|
]
|
|
|
|
[[package]]
|
|
name = "windows-link"
|
|
version = "0.2.1"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5"
|
|
|
|
[[package]]
|
|
name = "windows-result"
|
|
version = "0.4.1"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "7781fa89eaf60850ac3d2da7af8e5242a5ea78d1a11c49bf2910bb5a73853eb5"
|
|
dependencies = [
|
|
"windows-link",
|
|
]
|
|
|
|
[[package]]
|
|
name = "windows-strings"
|
|
version = "0.5.1"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "7837d08f69c77cf6b07689544538e017c1bfcf57e34b4c0ff58e6c2cd3b37091"
|
|
dependencies = [
|
|
"windows-link",
|
|
]
|
|
|
|
[[package]]
|
|
name = "wit-bindgen"
|
|
version = "0.51.0"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "d7249219f66ced02969388cf2bb044a09756a083d0fab1e566056b04d9fbcaa5"
|
|
dependencies = [
|
|
"wit-bindgen-rust-macro",
|
|
]
|
|
|
|
[[package]]
|
|
name = "wit-bindgen"
|
|
version = "0.57.1"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "1ebf944e87a7c253233ad6766e082e3cd714b5d03812acc24c318f549614536e"
|
|
|
|
[[package]]
|
|
name = "wit-bindgen-core"
|
|
version = "0.51.0"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "ea61de684c3ea68cb082b7a88508a8b27fcc8b797d738bfc99a82facf1d752dc"
|
|
dependencies = [
|
|
"anyhow",
|
|
"heck",
|
|
"wit-parser",
|
|
]
|
|
|
|
[[package]]
|
|
name = "wit-bindgen-rust"
|
|
version = "0.51.0"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "b7c566e0f4b284dd6561c786d9cb0142da491f46a9fbed79ea69cdad5db17f21"
|
|
dependencies = [
|
|
"anyhow",
|
|
"heck",
|
|
"indexmap",
|
|
"prettyplease",
|
|
"syn",
|
|
"wasm-metadata",
|
|
"wit-bindgen-core",
|
|
"wit-component",
|
|
]
|
|
|
|
[[package]]
|
|
name = "wit-bindgen-rust-macro"
|
|
version = "0.51.0"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "0c0f9bfd77e6a48eccf51359e3ae77140a7f50b1e2ebfe62422d8afdaffab17a"
|
|
dependencies = [
|
|
"anyhow",
|
|
"prettyplease",
|
|
"proc-macro2",
|
|
"quote",
|
|
"syn",
|
|
"wit-bindgen-core",
|
|
"wit-bindgen-rust",
|
|
]
|
|
|
|
[[package]]
|
|
name = "wit-component"
|
|
version = "0.244.0"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "9d66ea20e9553b30172b5e831994e35fbde2d165325bec84fc43dbf6f4eb9cb2"
|
|
dependencies = [
|
|
"anyhow",
|
|
"bitflags",
|
|
"indexmap",
|
|
"log",
|
|
"serde",
|
|
"serde_derive",
|
|
"serde_json",
|
|
"wasm-encoder",
|
|
"wasm-metadata",
|
|
"wasmparser",
|
|
"wit-parser",
|
|
]
|
|
|
|
[[package]]
|
|
name = "wit-parser"
|
|
version = "0.244.0"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "ecc8ac4bc1dc3381b7f59c34f00b67e18f910c2c0f50015669dde7def656a736"
|
|
dependencies = [
|
|
"anyhow",
|
|
"id-arena",
|
|
"indexmap",
|
|
"log",
|
|
"semver",
|
|
"serde",
|
|
"serde_derive",
|
|
"serde_json",
|
|
"unicode-xid",
|
|
"wasmparser",
|
|
]
|
|
|
|
[[package]]
|
|
name = "zmij"
|
|
version = "1.0.21"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "b8848ee67ecc8aedbaf3e4122217aff892639231befc6a1b58d29fff4c2cabaa"
|