Rocksky SDK demos across 10 languages — a tour of the AppView read-query API. docs.rocksky.app/sdks/overview
lastfm scrobbling atproto
0

Configure Feed

Select the types of activity you want to include in your feed.

demos: tour the full AppView read-query API in every SDK

Each demo now shows a typed DateInterval chart (top tracks this week), the
album catalog + a tracklist drill-down, an actor's loved songs + follow graph,
and the universal get(nsid, params) escape hatch — not just global stats + top
tracks. Pins bumped to the new SDK versions (rust 0.2, ts/py/rb 0.5, kotlin
0.6, gleam 1.5, clojure 0.5.0-SNAPSHOT).

author
Tsiry Sandratraina
date (Jul 22, 2026, 7:45 PM +0300) commit 08de6dd9
+4970
+14
.gitignore
··· 1 + # build outputs / deps 2 + target/ 3 + node_modules/ 4 + dist/ 5 + .venv/ 6 + _build/ 7 + deps/ 8 + build/ 9 + .gradle/ 10 + .cpcache/ 11 + *.beam 12 + Gemfile.lock 13 + bun.lock 14 + go.sum
+84
README.md
··· 1 + # Rocksky SDK demos 2 + 3 + Minimal, runnable example projects for every official [Rocksky](https://rocksky.app) 4 + SDK — one per language. Each project **installs the published SDK package** from 5 + its registry and runs the same read-only tour of the AppView query API. No auth 6 + required. Every demo touches: 7 + 8 + - **platform stats** — `global_stats` 9 + - **a typed date-window chart** — top tracks *this past week* via a 10 + `DateInterval` (`LastDays(7)`) plus the all-time top artists 11 + - **catalog + drill-down** — the album catalog, then one album's tracklist 12 + - **an actor** — profile, loved songs, and follows/followers 13 + - **the universal escape hatch** — `get(nsid, params)`, which reaches *any* 14 + `app.rocksky.*` read query by name 15 + - **a Rocksky identity hash** 16 + 17 + The SDKs are native AT Protocol clients (they read from the AppView and write 18 + `app.rocksky.*` records straight to the user's PDS). See each SDK's own docs for 19 + the write side (`Agent` / app-password login), the local dedup index, and 20 + Jetstream real-time sync. 21 + 22 + ## The demos 23 + 24 + | Language | Package (registry) | Install | Run | 25 + | --- | --- | --- | --- | 26 + | [Rust](rust) | `rocksky-sdk` (crates.io) | `cargo build` | `cargo run` | 27 + | [TypeScript](typescript) | `@rocksky/sdk` (npm) | `bun install` | `bun run index.ts` | 28 + | [Python](python) | `rocksky` (PyPI) | `pip install rocksky` | `python main.py` | 29 + | [Go](go) | `github.com/tsirysndr/rocksky/sdk/go` | `go mod tidy` | `go run .` | 30 + | [Ruby](ruby) | `rocksky` (RubyGems) | `bundle install` | `ruby demo.rb` | 31 + | [Kotlin](kotlin) | `app.rocksky:rocksky-kotlin` (Maven Central) | `gradle build` | `gradle run` | 32 + | [Elixir](elixir) | `rocksky_ex` (Hex) | `mix deps.get` | `mix run demo.exs` | 33 + | [Erlang](erlang) | `rocksky_erl` (Hex) | `rebar3 compile` | `./demo.escript` | 34 + | [Clojure](clojure) | `app.rocksky/sdk` (Clojars) | — | `clojure -M:run` | 35 + | [Gleam](gleam) | `rocksky` (Hex) | `gleam deps download` | `gleam run` | 36 + 37 + Each subdirectory has its own README with the exact commands. 38 + 39 + ## Expected output 40 + 41 + ``` 42 + global: 493280 scrobbles · 810 users · 402724 tracks 43 + 44 + top tracks this week: 45 + underscores — The Peace 46 + BTS — 2.0 47 + System Of A Down — Chop Suey! 48 + ... 49 + 50 + top artists (all-time): 51 + Linkin Park · 2194 plays 52 + Gorillaz · 1295 plays 53 + ... 54 + 55 + albums: 56 + BTS — ARIRANG 57 + ... 58 + tracks on "ARIRANG": 59 + 1. Body to Body 60 + 2. Hooligan 61 + ... 62 + 63 + actor: tsiry-sandratraina.com 64 + loved songs: 3 65 + follows: 42 · followers: 5 66 + 67 + get() escape hatch — stats keys: [albums, artists, lovedTracks, scrobbles] 68 + 69 + song hash: 8171255408bd5ef33a18ed0a9a42dad4a38926108aef44781509348b1908e584 70 + ``` 71 + 72 + (Exact numbers drift as people scrobble; the shape is what matters.) 73 + 74 + The `song hash` is identical across every SDK and the server — the SDKs all 75 + derive it the same way (`sha256(lower("{title} - {artist} - {album}"))`). 76 + 77 + ## Notes 78 + 79 + - **Rust, Go, TypeScript** need no native library download — Rust and Go compile 80 + the client, TypeScript is pure JS (atcute). 81 + - **Python, Ruby, Kotlin, Clojure, Elixir, Erlang, Gleam** bind a shared native 82 + Rust core. The published packages fetch the matching prebuilt library from the 83 + GitHub release on first use (Kotlin bundles it in the jar). Clojure needs 84 + JDK 22+ (Panama FFM).
+8
clojure/README.md
··· 1 + # Rocksky Clojure SDK — demo 2 + 3 + ```sh 4 + clojure -M:run 5 + ``` 6 + 7 + Installs [`app.rocksky/sdk`](https://clojars.org/app.rocksky/sdk) from Clojars. 8 + Needs JDK 22+ (Panama FFM).
+5
clojure/deps.edn
··· 1 + {:paths ["src"] 2 + :deps {org.clojure/clojure {:mvn/version "1.12.0"} 3 + app.rocksky/sdk {:mvn/version "0.5.0-SNAPSHOT"}} 4 + :aliases {:run {:jvm-opts ["--enable-native-access=ALL-UNNAMED"] 5 + :main-opts ["-m" "rocksky-demo"]}}}
+40
clojure/src/rocksky_demo.clj
··· 1 + (ns rocksky-demo 2 + (:require [rocksky.core :as rk])) 3 + 4 + (def actor "did:plc:7vdlgi2bflelz7mmuxoqjfcr") 5 + 6 + (defn -main [& _] 7 + ;; Platform totals. 8 + (let [s (rk/global-stats)] 9 + (println (format "global: %s scrobbles · %s users · %s tracks" 10 + (get s "scrobbles") (get s "users") (get s "tracks")))) 11 + 12 + ;; Charts over a typed date window — this past week. 13 + (println "\ntop tracks this week:") 14 + (doseq [t (rk/top-tracks-interval 5 0 [:days 7])] 15 + (println (format " %s — %s" (get t "artist") (get t "title")))) 16 + 17 + ;; Top artists, all-time. 18 + (println "\ntop artists (all-time):") 19 + (doseq [a (rk/top-artists-interval 5 0 :all)] 20 + (println (format " %s · %s plays" (get a "name") (get a "playCount")))) 21 + 22 + ;; The whole read-query catalog is reachable via query(nsid, params). 23 + (let [albums (get (rk/query "app.rocksky.album.getAlbums" {:limit 3}) "albums")] 24 + (println "\nalbums:") 25 + (doseq [al albums] 26 + (println (format " %s — %s" (get al "artist") (get al "title")))) 27 + (when-let [uri (get (first albums) "uri")] 28 + (println (format "tracks on \"%s\":" (get (first albums) "title"))) 29 + (doseq [t (get (rk/query "app.rocksky.album.getAlbumTracks" {:uri uri}) "tracks")] 30 + (println (format " %s. %s" (get t "trackNumber") (get t "title")))))) 31 + 32 + ;; An actor: profile + follow graph. 33 + (let [profile (rk/profile actor) 34 + follows (get (rk/query "app.rocksky.graph.getFollows" {:actor actor :limit 100}) "follows")] 35 + (println (format "\nactor: %s" (or (get profile "handle") actor))) 36 + (println (format " follows: %s" (count follows)))) 37 + 38 + ;; Identity hash — identical across every Rocksky SDK. 39 + (println "\nsong hash:" (rk/song-hash "Chaser" "Calibro 35" "Jazzploitation")) 40 + (shutdown-agents))
+8
elixir/README.md
··· 1 + # Rocksky Elixir SDK — demo 2 + 3 + ```sh 4 + mix deps.get 5 + mix run demo.exs 6 + ``` 7 + 8 + Installs [`rocksky_ex`](https://hex.pm/packages/rocksky_ex) from Hex.
+40
elixir/demo.exs
··· 1 + # Rocksky Elixir SDK demo — a tour of the AppView read queries (no auth). 2 + actor = "did:plc:7vdlgi2bflelz7mmuxoqjfcr" 3 + 4 + # Platform totals. 5 + {:ok, stats} = Rocksky.global_stats() 6 + IO.puts("global: #{stats["scrobbles"]} scrobbles · #{stats["users"]} users · #{stats["tracks"]} tracks") 7 + 8 + # Charts over a typed date window — this past week. 9 + IO.puts("\ntop tracks this week:") 10 + {:ok, top} = Rocksky.top_tracks_interval(5, 0, {:days, 7}) 11 + for t <- top, do: IO.puts(" #{t["artist"]} — #{t["title"]}") 12 + 13 + # Top artists, all-time. 14 + IO.puts("\ntop artists (all-time):") 15 + {:ok, artists} = Rocksky.top_artists_interval(5, 0, :all) 16 + for a <- artists, do: IO.puts(" #{a["name"]} · #{a["playCount"]} plays") 17 + 18 + # The whole read-query catalog is reachable via get(nsid, params). 19 + {:ok, %{"albums" => albums}} = Rocksky.get("app.rocksky.album.getAlbums", %{"limit" => 3}) 20 + IO.puts("\nalbums:") 21 + for al <- albums, do: IO.puts(" #{al["artist"]} — #{al["title"]}") 22 + 23 + case albums do 24 + [%{"uri" => uri, "title" => title} | _] -> 25 + IO.puts(~s(tracks on "#{title}":)) 26 + {:ok, %{"tracks" => tracks}} = Rocksky.get("app.rocksky.album.getAlbumTracks", %{"uri" => uri}) 27 + for t <- tracks, do: IO.puts(" #{t["trackNumber"]}. #{t["title"]}") 28 + 29 + _ -> 30 + :ok 31 + end 32 + 33 + # An actor: profile + social graph. 34 + {:ok, profile} = Rocksky.profile(actor) 35 + {:ok, %{"follows" => follows}} = Rocksky.get("app.rocksky.graph.getFollows", %{"actor" => actor, "limit" => 100}) 36 + IO.puts("\nactor: #{profile["handle"] || actor}") 37 + IO.puts(" follows: #{length(follows)}") 38 + 39 + # Identity hash — identical across every Rocksky SDK. 40 + IO.puts("\nsong hash: #{Rocksky.song_hash("Chaser", "Calibro 35", "Jazzploitation")}")
+6
elixir/mix.exs
··· 1 + defmodule RockskyDemo.MixProject do 2 + use Mix.Project 3 + def project, do: [app: :rocksky_demo, version: "0.1.0", elixir: "~> 1.15", deps: deps()] 4 + def application, do: [extra_applications: [:logger]] 5 + defp deps, do: [{:rocksky_ex, "~> 0.5"}] 6 + end
+4
elixir/mix.lock
··· 1 + %{ 2 + "rocksky_erl": {:hex, :rocksky_erl, "0.1.0", "8b3f71da2a17b40bae1e93c83a6dfe404d29dc4100dfda05705bf5f54d9c6f01", [:rebar3], [], "hexpm", "970135f16bed26d03d70e54d1da537de8bc3caecdb3774f7ba5fd34854ac9c43"}, 3 + "rocksky_ex": {:hex, :rocksky_ex, "0.4.0", "47603a428f577f6e989a9154d3e1348e9d1e277860a58ab7e4830d8acdd54934", [:mix], [{:rocksky_erl, "~> 0.1", [hex: :rocksky_erl, repo: "hexpm", optional: false]}], "hexpm", "000d5f0ef741e7891e3f2f19b713623b93ddcbae0818e1db7e56b6a5e13cf8f3"}, 4 + }
+36
erlang/README.md
··· 1 + # Rocksky Erlang SDK — demo 2 + 3 + Uses [`rocksky_erl`](https://hex.pm/packages/rocksky_erl) from Hex. 4 + 5 + ## Prerequisites 6 + 7 + - [Erlang/OTP](https://www.erlang.org/downloads) (`erl`, `escript`) 8 + - [rebar3](https://rebar3.org/) 9 + 10 + On macOS: 11 + 12 + ```sh 13 + brew install erlang rebar3 14 + ``` 15 + 16 + ## Compile & run 17 + 18 + ```sh 19 + rebar3 compile # fetches rocksky_erl from Hex and builds 20 + ./demo.escript # runs the demo 21 + ``` 22 + 23 + Expected output: 24 + 25 + ``` 26 + global: 492460 scrobbles · 809 users · 402424 tracks 27 + top tracks: 28 + Tame Impala - The Less I Know The Better 29 + Billie Eilish - BIRDS OF A FEATHER 30 + System Of A Down - Chop Suey! 31 + Chappell Roan - Good Luck, Babe! 32 + Gorillaz - On Melancholy Hill 33 + song hash: 8171255408bd5ef33a18ed0a9a42dad4a38926108aef44781509348b1908e584 34 + ``` 35 + 36 + The escript loads the compiled beam files from `_build/`, so `rebar3 compile` must be run first.
+40
erlang/demo.escript
··· 1 + #!/usr/bin/env escript 2 + %%! -pa _build/default/lib/rocksky_erl/ebin -pa _build/default/lib/rocksky_demo/ebin 3 + main(_) -> 4 + Actor = <<"did:plc:7vdlgi2bflelz7mmuxoqjfcr">>, 5 + 6 + %% Platform totals. 7 + {ok, S} = rocksky:global_stats(), 8 + io:format("global: ~p scrobbles · ~p users · ~p tracks~n", 9 + [maps:get(<<"scrobbles">>,S), maps:get(<<"users">>,S), maps:get(<<"tracks">>,S)]), 10 + 11 + %% Charts over a typed date window — this past week. 12 + io:format("~ntop tracks this week:~n", []), 13 + {ok, TT} = rocksky:top_tracks_interval(5, 0, {days, 7}), 14 + [io:format(" ~s - ~s~n", [maps:get(<<"artist">>,T,<<"?">>), maps:get(<<"title">>,T,<<"?">>)]) || T <- TT], 15 + 16 + %% The whole read-query catalog is reachable via get(Nsid, Params). 17 + {ok, #{<<"albums">> := Albums}} = 18 + rocksky:get(<<"app.rocksky.album.getAlbums">>, #{<<"limit">> => 3}), 19 + io:format("~nalbums:~n", []), 20 + [io:format(" ~s - ~s~n", [maps:get(<<"artist">>,A,<<"?">>), maps:get(<<"title">>,A,<<"?">>)]) || A <- Albums], 21 + case Albums of 22 + [#{<<"uri">> := Uri, <<"title">> := Title} | _] -> 23 + io:format("tracks on \"~s\":~n", [Title]), 24 + {ok, #{<<"tracks">> := Tracks}} = 25 + rocksky:get(<<"app.rocksky.album.getAlbumTracks">>, #{<<"uri">> => Uri}), 26 + [io:format(" ~p. ~s~n", 27 + [maps:get(<<"trackNumber">>,Tk,0), maps:get(<<"title">>,Tk,<<"?">>)]) || Tk <- Tracks]; 28 + _ -> ok 29 + end, 30 + 31 + %% An actor: profile + social graph. 32 + {ok, Profile} = rocksky:profile(Actor), 33 + {ok, #{<<"follows">> := Follows}} = 34 + rocksky:get(<<"app.rocksky.graph.getFollows">>, #{<<"actor">> => Actor, <<"limit">> => 100}), 35 + io:format("~nactor: ~s~n", [maps:get(<<"handle">>, Profile, Actor)]), 36 + io:format(" follows: ~p~n", [length(Follows)]), 37 + 38 + %% Identity hash — identical across every Rocksky SDK. 39 + io:format("~nsong hash: ~s~n", 40 + [rocksky:song_hash(<<"Chaser">>,<<"Calibro 35">>,<<"Jazzploitation">>)]).
+2
erlang/rebar.config
··· 1 + {deps, [rocksky_erl]}. 2 + {escript_main_app, rocksky_demo}.
+8
erlang/rebar.lock
··· 1 + {"1.2.0", 2 + [{<<"rocksky_erl">>,{pkg,<<"rocksky_erl">>,<<"0.1.0">>},0}]}. 3 + [ 4 + {pkg_hash,[ 5 + {<<"rocksky_erl">>, <<"8B3F71DA2A17B40BAE1E93C83A6DFE404D29DC4100DFDA05705BF5F54D9C6F01">>}]}, 6 + {pkg_hash_ext,[ 7 + {<<"rocksky_erl">>, <<"970135F16BED26D03D70E54D1DA537DE8BC3CAECDB3774F7BA5FD34854AC9C43">>}]} 8 + ].
+3
erlang/src/rocksky_demo.app.src
··· 1 + {application, rocksky_demo, 2 + [{description, "Rocksky Erlang SDK demo"}, {vsn, "0.1.0"}, {registered, []}, 3 + {applications, [kernel, stdlib, rocksky_erl]}, {modules, []}]}.
+7
gleam/README.md
··· 1 + # Rocksky Gleam SDK — demo 2 + 3 + ```sh 4 + gleam run 5 + ``` 6 + 7 + Installs [`rocksky`](https://hex.pm/packages/rocksky) from Hex.
+7
gleam/gleam.toml
··· 1 + name = "rocksky_demo" 2 + version = "0.1.0" 3 + target = "erlang" 4 + 5 + [dependencies] 6 + gleam_stdlib = ">= 0.44.0 and < 2.0.0" 7 + rocksky = ">= 1.5.0 and < 2.0.0"
+17
gleam/manifest.toml
··· 1 + # Do not manually edit this file, it is managed by Gleam. 2 + # 3 + # This file locks the dependency versions used, to make your build 4 + # deterministic and to prevent unexpected versions from being included 5 + # in your application. 6 + # 7 + # You should check this file into your source control repository. 8 + 9 + packages = [ 10 + { name = "gleam_stdlib", version = "1.0.3", build_tools = ["gleam"], requirements = [], otp_app = "gleam_stdlib", source = "hex", outer_checksum = "1F543AFBA5D33DA493E6087F4E4C4F20D899411343512686C98A8ABB2963CF22" }, 11 + { name = "rocksky", version = "1.4.0", build_tools = ["gleam"], requirements = ["gleam_stdlib", "rocksky_erl"], otp_app = "rocksky", source = "hex", outer_checksum = "03706B5EFA237A9397BE573327533967CC1EA0F6A30D6919D1EAFFD2E8101FE7" }, 12 + { name = "rocksky_erl", version = "0.1.0", build_tools = ["rebar3"], requirements = [], otp_app = "rocksky_erl", source = "hex", outer_checksum = "970135F16BED26D03D70E54D1DA537DE8BC3CAECDB3774F7BA5FD34854AC9C43" }, 13 + ] 14 + 15 + [requirements] 16 + gleam_stdlib = { version = ">= 0.44.0 and < 2.0.0" } 17 + rocksky = { version = ">= 1.4.0 and < 2.0.0" }
+43
gleam/src/rocksky_demo.gleam
··· 1 + // Rocksky Gleam SDK demo — a tour of the AppView read queries (no auth). 2 + import gleam/io 3 + import gleam/string 4 + import rocksky/client 5 + 6 + const actor = "did:plc:7vdlgi2bflelz7mmuxoqjfcr" 7 + 8 + pub fn main() { 9 + // Platform totals. 10 + io.println("global stats: " <> string.inspect(client.global_stats())) 11 + 12 + // Charts over a typed date window — this past week (Dynamic {ok, tracks}). 13 + io.println( 14 + "top tracks this week: " 15 + <> string.inspect(client.top_tracks_interval(5, 0, client.LastDays(7))), 16 + ) 17 + 18 + // Top artists, all-time. 19 + io.println( 20 + "top artists: " 21 + <> string.inspect(client.top_artists_interval(5, 0, client.AllTime)), 22 + ) 23 + 24 + // The whole read-query catalog is reachable via get(nsid, params_json). 25 + io.println( 26 + "albums: " 27 + <> string.inspect(client.get("app.rocksky.album.getAlbums", "{\"limit\":3}")), 28 + ) 29 + 30 + // An actor's follow graph, via get. 31 + io.println( 32 + "follows: " 33 + <> string.inspect(client.get( 34 + "app.rocksky.graph.getFollows", 35 + "{\"actor\":\"" <> actor <> "\",\"limit\":100}", 36 + )), 37 + ) 38 + 39 + // Identity hash — identical across every Rocksky SDK. 40 + io.println( 41 + "song hash: " <> client.song_hash("Chaser", "Calibro 35", "Jazzploitation"), 42 + ) 43 + }
+7
go/README.md
··· 1 + # Rocksky Go SDK — demo 2 + 3 + ```sh 4 + go run . 5 + ``` 6 + 7 + Installs `github.com/tsirysndr/rocksky/sdk/go` from the module proxy.
+78
go/go.mod
··· 1 + module rocksky-demo-go 2 + 3 + go 1.26 4 + 5 + require github.com/tsirysndr/rocksky/sdk/go v0.0.0-20260722121420-ec95b1b46ea4 6 + 7 + require ( 8 + github.com/beorn7/perks v1.0.1 // indirect 9 + github.com/bluesky-social/indigo v0.0.0-20260629160527-dfe5578fd537 // indirect 10 + github.com/cespare/xxhash/v2 v2.3.0 // indirect 11 + github.com/coder/websocket v1.8.15 // indirect 12 + github.com/earthboundkid/versioninfo/v2 v2.24.1 // indirect 13 + github.com/felixge/httpsnoop v1.0.4 // indirect 14 + github.com/go-logr/logr v1.4.3 // indirect 15 + github.com/go-logr/stdr v1.2.2 // indirect 16 + github.com/gogo/protobuf v1.3.2 // indirect 17 + github.com/google/uuid v1.6.0 // indirect 18 + github.com/hashicorp/go-cleanhttp v0.5.2 // indirect 19 + github.com/hashicorp/go-retryablehttp v0.7.5 // indirect 20 + github.com/hashicorp/golang-lru v1.0.2 // indirect 21 + github.com/hashicorp/golang-lru/v2 v2.0.7 // indirect 22 + github.com/ipfs/bbloom v0.0.4 // indirect 23 + github.com/ipfs/boxo v0.30.0 // indirect 24 + github.com/ipfs/go-block-format v0.2.1 // indirect 25 + github.com/ipfs/go-blockservice v0.5.2 // indirect 26 + github.com/ipfs/go-cid v0.6.1 // indirect 27 + github.com/ipfs/go-datastore v0.8.3 // indirect 28 + github.com/ipfs/go-ipfs-blockstore v1.3.1 // indirect 29 + github.com/ipfs/go-ipfs-ds-help v1.1.1 // indirect 30 + github.com/ipfs/go-ipfs-exchange-interface v0.2.1 // indirect 31 + github.com/ipfs/go-ipfs-util v0.0.3 // indirect 32 + github.com/ipfs/go-ipld-cbor v0.1.0 // indirect 33 + github.com/ipfs/go-ipld-format v0.6.1 // indirect 34 + github.com/ipfs/go-ipld-legacy v0.2.1 // indirect 35 + github.com/ipfs/go-log v1.0.5 // indirect 36 + github.com/ipfs/go-log/v2 v2.5.1 // indirect 37 + github.com/ipfs/go-merkledag v0.11.0 // indirect 38 + github.com/ipfs/go-metrics-interface v0.3.0 // indirect 39 + github.com/ipfs/go-verifcid v0.0.3 // indirect 40 + github.com/ipld/go-car v0.6.2 // indirect 41 + github.com/ipld/go-codec-dagpb v1.7.0 // indirect 42 + github.com/ipld/go-ipld-prime v0.21.0 // indirect 43 + github.com/klauspost/cpuid/v2 v2.3.0 // indirect 44 + github.com/mattn/go-isatty v0.0.20 // indirect 45 + github.com/minio/sha256-simd v1.0.1 // indirect 46 + github.com/mr-tron/base58 v1.3.0 // indirect 47 + github.com/multiformats/go-base32 v0.1.0 // indirect 48 + github.com/multiformats/go-base36 v0.2.0 // indirect 49 + github.com/multiformats/go-multibase v0.3.0 // indirect 50 + github.com/multiformats/go-multihash v0.2.3 // indirect 51 + github.com/multiformats/go-varint v0.1.0 // indirect 52 + github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect 53 + github.com/opentracing/opentracing-go v1.2.0 // indirect 54 + github.com/polydawn/refmt v0.90.0 // indirect 55 + github.com/prometheus/client_golang v1.23.0 // indirect 56 + github.com/prometheus/client_model v0.6.2 // indirect 57 + github.com/prometheus/common v0.65.0 // indirect 58 + github.com/prometheus/procfs v0.17.0 // indirect 59 + github.com/spaolacci/murmur3 v1.1.0 // indirect 60 + github.com/whyrusleeping/cbor-gen v0.3.1 // indirect 61 + gitlab.com/yawning/secp256k1-voi v0.0.0-20230925100816-f2616030848b // indirect 62 + gitlab.com/yawning/tuplehash v0.0.0-20230713102510-df83abbf9a02 // indirect 63 + go.etcd.io/bbolt v1.5.0 // indirect 64 + go.opentelemetry.io/auto/sdk v1.1.0 // indirect 65 + go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.62.0 // indirect 66 + go.opentelemetry.io/otel v1.37.0 // indirect 67 + go.opentelemetry.io/otel/metric v1.37.0 // indirect 68 + go.opentelemetry.io/otel/trace v1.37.0 // indirect 69 + go.uber.org/atomic v1.11.0 // indirect 70 + go.uber.org/multierr v1.11.0 // indirect 71 + go.uber.org/zap v1.27.0 // indirect 72 + golang.org/x/crypto v0.50.0 // indirect 73 + golang.org/x/sys v0.45.0 // indirect 74 + golang.org/x/time v0.12.0 // indirect 75 + golang.org/x/xerrors v0.0.0-20240903120638-7835f813f4da // indirect 76 + google.golang.org/protobuf v1.36.7 // indirect 77 + lukechampine.com/blake3 v1.4.1 // indirect 78 + )
+75
go/main.go
··· 1 + // Rocksky Go SDK demo — a tour of the AppView read queries (no auth). 2 + package main 3 + 4 + import ( 5 + "context" 6 + "encoding/json" 7 + "fmt" 8 + 9 + "github.com/tsirysndr/rocksky/sdk/go/rocksky" 10 + ) 11 + 12 + // A sample actor with plenty of history. 13 + const actor = "did:plc:7vdlgi2bflelz7mmuxoqjfcr" 14 + 15 + func main() { 16 + ctx := context.Background() 17 + c := rocksky.NewClient("") 18 + 19 + // Platform totals. 20 + s, err := c.GlobalStats(ctx) 21 + if err != nil { 22 + panic(err) 23 + } 24 + fmt.Printf("global: %d scrobbles · %d users · %d tracks\n", s.Scrobbles, s.Users, s.Tracks) 25 + 26 + // Charts over a typed date window — this past week. 27 + fmt.Println("\ntop tracks this week:") 28 + tt, _ := c.TopTracksInterval(ctx, 5, 0, rocksky.LastDays(7)) 29 + for _, t := range tt { 30 + fmt.Printf(" %s — %s\n", t.Artist, t.Title) 31 + } 32 + 33 + // Top artists, all-time. 34 + fmt.Println("\ntop artists (all-time):") 35 + ta, _ := c.TopArtists(ctx, 5, 0) 36 + for _, a := range ta { 37 + fmt.Printf(" %s · %d plays\n", a.Name, a.PlayCount) 38 + } 39 + 40 + // Catalog + drill down into one album's tracklist. 41 + albums, _ := c.CatalogAlbums(ctx, 3, 0, "") 42 + fmt.Println("\nalbums:") 43 + for _, al := range albums { 44 + fmt.Printf(" %s — %s\n", al.Artist, al.Title) 45 + } 46 + if len(albums) > 0 && albums[0].URI != "" { 47 + fmt.Printf("tracks on %q:\n", albums[0].Title) 48 + tracks, _ := c.AlbumTracks(ctx, albums[0].URI) 49 + for _, t := range tracks { 50 + fmt.Printf(" %d. %s\n", t.TrackNumber, t.Title) 51 + } 52 + } 53 + 54 + // An actor: profile, loved songs, and social graph. 55 + profile, _ := c.Profile(ctx, actor) 56 + fmt.Printf("\nactor: %s\n", profile.Handle) 57 + loved, _ := c.LovedSongs(ctx, actor, 3, 0) 58 + follows, _ := c.Follows(ctx, actor, 100, "") 59 + followers, _ := c.Followers(ctx, actor, 100, "") 60 + fmt.Printf(" loved songs: %d\n", len(loved)) 61 + fmt.Printf(" follows: %d · followers: %d\n", len(follows), len(followers)) 62 + 63 + // Universal escape hatch — any read query by nsid returns raw JSON. 64 + raw, _ := c.Get(ctx, "app.rocksky.stats.getStats", map[string]any{"did": actor}) 65 + var stats map[string]any 66 + _ = json.Unmarshal(raw, &stats) 67 + keys := make([]string, 0, len(stats)) 68 + for k := range stats { 69 + keys = append(keys, k) 70 + } 71 + fmt.Printf("\nget() escape hatch — stats keys: %v\n", keys) 72 + 73 + // Identity hash — identical across every Rocksky SDK. 74 + fmt.Println("\nsong hash:", rocksky.SongHash("Chaser", "Calibro 35", "Jazzploitation")) 75 + }
go/rocksky-demo-go

This is a binary file and will not be displayed.

+8
kotlin/README.md
··· 1 + # Rocksky Kotlin SDK — demo 2 + 3 + ```sh 4 + gradle run 5 + ``` 6 + 7 + Installs [`app.rocksky:rocksky-kotlin`](https://central.sonatype.com/artifact/app.rocksky/rocksky-kotlin) 8 + from Maven Central. Needs a JDK (the published jar bundles the native library).
+8
kotlin/build.gradle.kts
··· 1 + plugins { 2 + kotlin("jvm") version "2.0.21" 3 + application 4 + } 5 + repositories { mavenCentral() } 6 + dependencies { implementation("app.rocksky:rocksky-kotlin:0.6.0") } 7 + application { mainClass.set("DemoKt") } 8 + tasks.named<JavaExec>("run") { jvmArgs("--enable-native-access=ALL-UNNAMED") }
+2
kotlin/mise.toml
··· 1 + [tools] 2 + java = "temurin-17.0.13+11"
+1
kotlin/settings.gradle.kts
··· 1 + rootProject.name = "rocksky-demo-kotlin"
+47
kotlin/src/main/kotlin/Demo.kt
··· 1 + // Rocksky Kotlin SDK demo — a tour of the AppView read queries (no auth). 2 + import app.rocksky.AppView 3 + import app.rocksky.DateInterval 4 + import app.rocksky.songHash 5 + 6 + // A sample actor with plenty of history. 7 + const val ACTOR = "did:plc:7vdlgi2bflelz7mmuxoqjfcr" 8 + 9 + fun main() { 10 + val av = AppView() 11 + 12 + // Platform totals. 13 + val s = av.globalStats() 14 + println("global: ${s.scrobbles} scrobbles · ${s.users} users · ${s.tracks} tracks") 15 + 16 + // Charts over a typed date window — this past week. 17 + println("\ntop tracks this week:") 18 + av.topTracksInterval(5u, 0u, DateInterval.LastDays(7u)).forEach { 19 + println(" ${it.artist} — ${it.title}") 20 + } 21 + 22 + // Top artists, all-time. 23 + println("\ntop artists (all-time):") 24 + av.topArtists(5u, 0u).forEach { println(" ${it.name} · ${it.playCount ?: 0u} plays") } 25 + 26 + // Catalog + drill down into one album's tracklist. 27 + val albums = av.catalogAlbums(3u, 0u, null) 28 + println("\nalbums:") 29 + albums.forEach { println(" ${it.artist} — ${it.title}") } 30 + albums.firstOrNull()?.uri?.let { uri -> 31 + println("tracks on \"${albums[0].title}\":") 32 + av.albumTracks(uri).forEach { println(" ${it.trackNumber ?: 0u}. ${it.title}") } 33 + } 34 + 35 + // An actor: profile, loved songs, and social graph. 36 + val profile = av.profile(ACTOR) 37 + println("\nactor: ${profile.handle ?: ACTOR}") 38 + println(" loved songs: ${av.lovedSongs(ACTOR, 3u, 0u).size}") 39 + println(" follows: ${av.follows(ACTOR, 100u, null).size} · followers: ${av.followers(ACTOR, 100u, null).size}") 40 + 41 + // Universal escape hatch — any read query by nsid returns raw JSON (a string). 42 + val stats = av.get("app.rocksky.stats.getStats", mapOf("did" to ACTOR)) 43 + println("\nget() escape hatch — stats json: ${stats.take(60)}…") 44 + 45 + // Identity hash — identical across every Rocksky SDK. 46 + println("\nsong hash: " + songHash("Chaser", "Calibro 35", "Jazzploitation")) 47 + }
+8
python/README.md
··· 1 + # Rocksky Python SDK — demo 2 + 3 + ```sh 4 + pip install rocksky # or: uv sync 5 + python main.py 6 + ``` 7 + 8 + Installs [`rocksky`](https://pypi.org/project/rocksky/) from PyPI.
+46
python/main.py
··· 1 + # Rocksky Python SDK demo — a tour of the AppView read queries (no auth). 2 + import json 3 + 4 + from rocksky import AppView, DateInterval, song_hash 5 + 6 + # A sample actor with plenty of history. 7 + ACTOR = "did:plc:7vdlgi2bflelz7mmuxoqjfcr" 8 + 9 + av = AppView() # defaults to https://api.rocksky.app 10 + 11 + # Platform totals. 12 + s = av.global_stats() 13 + print(f"global: {s.scrobbles} scrobbles · {s.users} users · {s.tracks} tracks") 14 + 15 + # Charts over a typed date window — this past week. 16 + print("\ntop tracks this week:") 17 + for t in av.top_tracks_interval(5, 0, DateInterval.LAST_DAYS(days=7)): 18 + print(f" {t.artist} — {t.title}") 19 + 20 + # Top artists, all-time. 21 + print("\ntop artists (all-time):") 22 + for a in av.top_artists(5, 0): 23 + print(f" {a.name} · {a.play_count or 0} plays") 24 + 25 + # Catalog + drill down into one album's tracklist. 26 + albums = av.catalog_albums(3, 0, None) 27 + print("\nalbums:") 28 + for al in albums: 29 + print(f" {al.artist} — {al.title}") 30 + if albums and albums[0].uri: 31 + print(f'tracks on "{albums[0].title}":') 32 + for t in av.album_tracks(albums[0].uri): 33 + print(f" {t.track_number or 0}. {t.title}") 34 + 35 + # An actor: profile, loved songs, and social graph. 36 + profile = av.profile(ACTOR) 37 + print(f"\nactor: {profile.handle or ACTOR}") 38 + print(f" loved songs: {len(av.loved_songs(ACTOR, 3, 0))}") 39 + print(f" follows: {len(av.follows(ACTOR, 100, None))} · followers: {len(av.followers(ACTOR, 100, None))}") 40 + 41 + # Universal escape hatch — any read query by nsid returns raw JSON (a string). 42 + stats = json.loads(av.get("app.rocksky.stats.getStats", {"did": ACTOR})) 43 + print("\nget() escape hatch — stats keys:", list(stats.keys())) 44 + 45 + # Identity hash — identical across every Rocksky SDK. 46 + print("\nsong hash:", song_hash("Chaser", "Calibro 35", "Jazzploitation"))
+5
python/pyproject.toml
··· 1 + [project] 2 + name = "rocksky-demo-py" 3 + version = "0.1.0" 4 + requires-python = ">=3.10" 5 + dependencies = ["rocksky>=0.5.0"]
+23
python/uv.lock
··· 1 + version = 1 2 + revision = 3 3 + requires-python = ">=3.10" 4 + 5 + [[package]] 6 + name = "rocksky" 7 + version = "0.4.2" 8 + source = { registry = "https://pypi.org/simple" } 9 + sdist = { url = "https://files.pythonhosted.org/packages/84/12/d6c31fb645304be5fca482483c321cbdf78cf4e292d91c5c05e8e572a64c/rocksky-0.4.2.tar.gz", hash = "sha256:c2bb942673e84b1f5f038b8f737f963420c06b5d68cac49713a332e256dc58c8", size = 61174, upload-time = "2026-07-22T13:12:02.787Z" } 10 + wheels = [ 11 + { url = "https://files.pythonhosted.org/packages/15/c2/da48cd444b74c7b72b81141cfc7ac9de481c43b518eb84aeb51e9c20e9c6/rocksky-0.4.2-py3-none-any.whl", hash = "sha256:9cc5ce6202ce2981d7f22d196fee6d96062795dcfdf692202b01b3381a47e5a2", size = 21395, upload-time = "2026-07-22T13:12:01.345Z" }, 12 + ] 13 + 14 + [[package]] 15 + name = "rocksky-demo-py" 16 + version = "0.1.0" 17 + source = { virtual = "." } 18 + dependencies = [ 19 + { name = "rocksky" }, 20 + ] 21 + 22 + [package.metadata] 23 + requires-dist = [{ name = "rocksky", specifier = ">=0.4.2" }]
+5
ruby/Gemfile
··· 1 + source "https://rubygems.org" 2 + 3 + gem "rocksky", "~> 0.5.0" 4 + # fiddle (the C-ABI loader the native core uses) left Ruby's default gems in 4.0. 5 + gem "fiddle"
+8
ruby/README.md
··· 1 + # Rocksky Ruby SDK — demo 2 + 3 + ```sh 4 + bundle install # or: gem install rocksky 5 + ruby demo.rb 6 + ``` 7 + 8 + Installs [`rocksky`](https://rubygems.org/gems/rocksky) from RubyGems.
+43
ruby/demo.rb
··· 1 + # Rocksky Ruby SDK demo — a tour of the AppView read queries (no auth). 2 + require "rocksky" 3 + 4 + # A sample actor with plenty of history. 5 + ACTOR = "did:plc:7vdlgi2bflelz7mmuxoqjfcr" 6 + 7 + # Platform totals. 8 + stats = Rocksky.global_stats 9 + puts "global: #{stats["scrobbles"]} scrobbles · #{stats["users"]} users · #{stats["tracks"]} tracks" 10 + 11 + # Charts over a typed date window — this past week. 12 + puts "\ntop tracks this week:" 13 + Rocksky.top_tracks_interval(limit: 5, interval: [:days, 7]).each do |t| 14 + puts " #{t["artist"]} — #{t["title"]}" 15 + end 16 + 17 + # Top artists, all-time. 18 + puts "\ntop artists (all-time):" 19 + Rocksky.top_artists_interval(limit: 5, interval: :all).each do |a| 20 + puts " #{a["name"]} · #{a["playCount"]} plays" 21 + end 22 + 23 + # The whole read-query catalog is reachable via get(nsid, params). 24 + albums = Rocksky.get("app.rocksky.album.getAlbums", { limit: 3 })["albums"] 25 + puts "\nalbums:" 26 + albums.each { |al| puts " #{al["artist"]} — #{al["title"]}" } 27 + if (uri = albums.first && albums.first["uri"]) 28 + puts "tracks on \"#{albums.first["title"]}\":" 29 + Rocksky.get("app.rocksky.album.getAlbumTracks", { uri: uri })["tracks"].each do |t| 30 + puts " #{t["trackNumber"]}. #{t["title"]}" 31 + end 32 + end 33 + 34 + # An actor: profile, loved songs, and social graph — all via get / named reads. 35 + profile = Rocksky.profile(ACTOR) 36 + loved = Rocksky.get("app.rocksky.actor.getActorLovedSongs", { did: ACTOR, limit: 3 })["tracks"] 37 + follows = Rocksky.get("app.rocksky.graph.getFollows", { actor: ACTOR, limit: 100 })["follows"] 38 + puts "\nactor: #{profile["handle"] || ACTOR}" 39 + puts " loved songs: #{loved.length}" 40 + puts " follows: #{follows.length}" 41 + 42 + # Identity hash — identical across every Rocksky SDK. 43 + puts "\nsong hash: #{Rocksky.song_hash("Chaser", "Calibro 35", "Jazzploitation")}"
+4093
rust/Cargo.lock
··· 1 + # This file is automatically @generated by Cargo. 2 + # It is not intended for manual editing. 3 + version = 4 4 + 5 + [[package]] 6 + name = "adler2" 7 + version = "2.0.1" 8 + source = "registry+https://github.com/rust-lang/crates.io-index" 9 + checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa" 10 + 11 + [[package]] 12 + name = "aho-corasick" 13 + version = "1.1.4" 14 + source = "registry+https://github.com/rust-lang/crates.io-index" 15 + checksum = "ddd31a130427c27518df266943a5308ed92d4b226cc639f5a8f1002816174301" 16 + dependencies = [ 17 + "memchr", 18 + ] 19 + 20 + [[package]] 21 + name = "alloc-no-stdlib" 22 + version = "2.0.4" 23 + source = "registry+https://github.com/rust-lang/crates.io-index" 24 + checksum = "cc7bb162ec39d46ab1ca8c77bf72e890535becd1751bb45f64c597edb4c8c6b3" 25 + 26 + [[package]] 27 + name = "alloc-stdlib" 28 + version = "0.2.4" 29 + source = "registry+https://github.com/rust-lang/crates.io-index" 30 + checksum = "0e76a019e91224d279006ff972f1e984179a6e9feb050adba6ce8274aef23195" 31 + dependencies = [ 32 + "alloc-no-stdlib", 33 + ] 34 + 35 + [[package]] 36 + name = "allocator-api2" 37 + version = "0.2.21" 38 + source = "registry+https://github.com/rust-lang/crates.io-index" 39 + checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" 40 + 41 + [[package]] 42 + name = "android_system_properties" 43 + version = "0.1.5" 44 + source = "registry+https://github.com/rust-lang/crates.io-index" 45 + checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" 46 + dependencies = [ 47 + "libc", 48 + ] 49 + 50 + [[package]] 51 + name = "async-compression" 52 + version = "0.4.42" 53 + source = "registry+https://github.com/rust-lang/crates.io-index" 54 + checksum = "e79b3f8a79cccc2898f31920fc69f304859b3bd567490f75ebf51ae1c792a9ac" 55 + dependencies = [ 56 + "compression-codecs", 57 + "compression-core", 58 + "pin-project-lite", 59 + "tokio", 60 + ] 61 + 62 + [[package]] 63 + name = "async-trait" 64 + version = "0.1.91" 65 + source = "registry+https://github.com/rust-lang/crates.io-index" 66 + checksum = "ae36dc4177970ef04fde5178d3e2429882def40e57a451f919c098f72baa6cec" 67 + dependencies = [ 68 + "proc-macro2", 69 + "quote", 70 + "syn 3.0.3", 71 + ] 72 + 73 + [[package]] 74 + name = "atomic-polyfill" 75 + version = "1.0.3" 76 + source = "registry+https://github.com/rust-lang/crates.io-index" 77 + checksum = "8cf2bce30dfe09ef0bfaef228b9d414faaf7e563035494d7fe092dba54b300f4" 78 + dependencies = [ 79 + "critical-section", 80 + ] 81 + 82 + [[package]] 83 + name = "atomic-waker" 84 + version = "1.1.2" 85 + source = "registry+https://github.com/rust-lang/crates.io-index" 86 + checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" 87 + 88 + [[package]] 89 + name = "autocfg" 90 + version = "1.5.1" 91 + source = "registry+https://github.com/rust-lang/crates.io-index" 92 + checksum = "f2032f911046de80f0a198e0901378627c33f59ea0ac00e363d481118bd70a53" 93 + 94 + [[package]] 95 + name = "base-x" 96 + version = "0.2.11" 97 + source = "registry+https://github.com/rust-lang/crates.io-index" 98 + checksum = "4cbbc9d0964165b47557570cce6c952866c2678457aca742aafc9fb771d30270" 99 + 100 + [[package]] 101 + name = "base16ct" 102 + version = "0.2.0" 103 + source = "registry+https://github.com/rust-lang/crates.io-index" 104 + checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf" 105 + 106 + [[package]] 107 + name = "base256emoji" 108 + version = "1.0.2" 109 + source = "registry+https://github.com/rust-lang/crates.io-index" 110 + checksum = "b5e9430d9a245a77c92176e649af6e275f20839a48389859d1661e9a128d077c" 111 + dependencies = [ 112 + "const-str", 113 + "match-lookup", 114 + ] 115 + 116 + [[package]] 117 + name = "base45" 118 + version = "3.2.0" 119 + source = "registry+https://github.com/rust-lang/crates.io-index" 120 + checksum = "240e56f4d3c453c36faacb695c535a4d5f8c7d23dac175014f32eb0a71012a03" 121 + 122 + [[package]] 123 + name = "base64" 124 + version = "0.22.1" 125 + source = "registry+https://github.com/rust-lang/crates.io-index" 126 + checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" 127 + 128 + [[package]] 129 + name = "base64ct" 130 + version = "1.8.3" 131 + source = "registry+https://github.com/rust-lang/crates.io-index" 132 + checksum = "2af50177e190e07a26ab74f8b1efbfe2ef87da2116221318cb1c2e82baf7de06" 133 + 134 + [[package]] 135 + name = "bitflags" 136 + version = "2.13.1" 137 + source = "registry+https://github.com/rust-lang/crates.io-index" 138 + checksum = "b588b76d00fde79687d7646a9b5bdf3cc0f655e0bbd080335a95d7e96f3587da" 139 + 140 + [[package]] 141 + name = "block-buffer" 142 + version = "0.10.4" 143 + source = "registry+https://github.com/rust-lang/crates.io-index" 144 + checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" 145 + dependencies = [ 146 + "generic-array", 147 + ] 148 + 149 + [[package]] 150 + name = "bon" 151 + version = "3.9.3" 152 + source = "registry+https://github.com/rust-lang/crates.io-index" 153 + checksum = "a602c73c7b0148ec6d12af6fd5cc7a46e2eacc8878271a999abac56eed12f561" 154 + dependencies = [ 155 + "bon-macros", 156 + "rustversion", 157 + ] 158 + 159 + [[package]] 160 + name = "bon-macros" 161 + version = "3.9.3" 162 + source = "registry+https://github.com/rust-lang/crates.io-index" 163 + checksum = "6dee98b0db6a962de883bf5d20362dee4d7ca0d12fe39a7c6c73c844e1cd7c1f" 164 + dependencies = [ 165 + "darling", 166 + "ident_case", 167 + "prettyplease", 168 + "proc-macro2", 169 + "quote", 170 + "rustversion", 171 + "syn 2.0.119", 172 + ] 173 + 174 + [[package]] 175 + name = "borrow-or-share" 176 + version = "0.2.4" 177 + source = "registry+https://github.com/rust-lang/crates.io-index" 178 + checksum = "dc0b364ead1874514c8c2855ab558056ebfeb775653e7ae45ff72f28f8f3166c" 179 + 180 + [[package]] 181 + name = "borsh" 182 + version = "1.8.0" 183 + source = "registry+https://github.com/rust-lang/crates.io-index" 184 + checksum = "a88b7ea17d208c4193f2c1e6de3c35fe71f98c96982d5ced308bdcc749ff6e1f" 185 + dependencies = [ 186 + "bytes", 187 + "cfg_aliases", 188 + ] 189 + 190 + [[package]] 191 + name = "brotli" 192 + version = "8.0.4" 193 + source = "registry+https://github.com/rust-lang/crates.io-index" 194 + checksum = "5cc91aac060a7a1e25823bdccbfb6af1875b88f17c6daac97894eed8207166b3" 195 + dependencies = [ 196 + "alloc-no-stdlib", 197 + "alloc-stdlib", 198 + "brotli-decompressor", 199 + ] 200 + 201 + [[package]] 202 + name = "brotli-decompressor" 203 + version = "5.0.3" 204 + source = "registry+https://github.com/rust-lang/crates.io-index" 205 + checksum = "3a32acac15fe1967bc3986b2a6347dffc965602354ea6f450ad07e8bfd253583" 206 + dependencies = [ 207 + "alloc-no-stdlib", 208 + "alloc-stdlib", 209 + ] 210 + 211 + [[package]] 212 + name = "bs58" 213 + version = "0.5.1" 214 + source = "registry+https://github.com/rust-lang/crates.io-index" 215 + checksum = "bf88ba1141d185c399bee5288d850d63b8369520c1eafc32a0430b5b6c287bf4" 216 + dependencies = [ 217 + "tinyvec", 218 + ] 219 + 220 + [[package]] 221 + name = "bumpalo" 222 + version = "3.20.3" 223 + source = "registry+https://github.com/rust-lang/crates.io-index" 224 + checksum = "72f5acc6cb2ba439de613abc23857ec3d78374d8ed5ac84e9d11336e87da8649" 225 + 226 + [[package]] 227 + name = "byteorder" 228 + version = "1.5.0" 229 + source = "registry+https://github.com/rust-lang/crates.io-index" 230 + checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" 231 + 232 + [[package]] 233 + name = "bytes" 234 + version = "1.12.1" 235 + source = "registry+https://github.com/rust-lang/crates.io-index" 236 + checksum = "fc652a48c352aef3ea3aed32080501cf3ef6ed5da78602a020c991775b0aff04" 237 + dependencies = [ 238 + "serde", 239 + ] 240 + 241 + [[package]] 242 + name = "cbor4ii" 243 + version = "0.2.14" 244 + source = "registry+https://github.com/rust-lang/crates.io-index" 245 + checksum = "b544cf8c89359205f4f990d0e6f3828db42df85b5dac95d09157a250eb0749c4" 246 + dependencies = [ 247 + "serde", 248 + ] 249 + 250 + [[package]] 251 + name = "cc" 252 + version = "1.3.0" 253 + source = "registry+https://github.com/rust-lang/crates.io-index" 254 + checksum = "c89588d05638b5b4594a3348a2d6c20277e43a7f5c5202b05cc56888475a47b8" 255 + dependencies = [ 256 + "find-msvc-tools", 257 + "shlex", 258 + ] 259 + 260 + [[package]] 261 + name = "cfg-if" 262 + version = "1.0.4" 263 + source = "registry+https://github.com/rust-lang/crates.io-index" 264 + checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" 265 + 266 + [[package]] 267 + name = "cfg_aliases" 268 + version = "0.2.2" 269 + source = "registry+https://github.com/rust-lang/crates.io-index" 270 + checksum = "f079e83a288787bcd14a6aea84cee5c87a67c5a3e660c30f557a3d24761b3527" 271 + 272 + [[package]] 273 + name = "chacha20" 274 + version = "0.10.1" 275 + source = "registry+https://github.com/rust-lang/crates.io-index" 276 + checksum = "d524456ba66e72eb8b115ff89e01e497f8e6d11d78b70b1aa13c0fbd97540a81" 277 + dependencies = [ 278 + "cfg-if", 279 + "cpufeatures 0.3.0", 280 + "rand_core 0.10.1", 281 + ] 282 + 283 + [[package]] 284 + name = "chrono" 285 + version = "0.4.45" 286 + source = "registry+https://github.com/rust-lang/crates.io-index" 287 + checksum = "1aa79e62e7697b8e29b513a68abacf485adcd1fe8284a4316c5ae868e6633327" 288 + dependencies = [ 289 + "iana-time-zone", 290 + "js-sys", 291 + "num-traits", 292 + "serde", 293 + "wasm-bindgen", 294 + "windows-link", 295 + ] 296 + 297 + [[package]] 298 + name = "ciborium" 299 + version = "0.2.2" 300 + source = "registry+https://github.com/rust-lang/crates.io-index" 301 + checksum = "42e69ffd6f0917f5c029256a24d0161db17cea3997d185db0d35926308770f0e" 302 + dependencies = [ 303 + "ciborium-io", 304 + "ciborium-ll", 305 + "serde", 306 + ] 307 + 308 + [[package]] 309 + name = "ciborium-io" 310 + version = "0.2.2" 311 + source = "registry+https://github.com/rust-lang/crates.io-index" 312 + checksum = "05afea1e0a06c9be33d539b876f1ce3692f4afea2cb41f740e7743225ed1c757" 313 + 314 + [[package]] 315 + name = "ciborium-ll" 316 + version = "0.2.2" 317 + source = "registry+https://github.com/rust-lang/crates.io-index" 318 + checksum = "57663b653d948a338bfb3eeba9bb2fd5fcfaecb9e199e87e1eda4d9e8b240fd9" 319 + dependencies = [ 320 + "ciborium-io", 321 + "half", 322 + ] 323 + 324 + [[package]] 325 + name = "cid" 326 + version = "0.11.3" 327 + source = "registry+https://github.com/rust-lang/crates.io-index" 328 + checksum = "21a304f95f84d169a6f31c4d0a30d784643aaa0bbc9c1e449a2c23e963ec4971" 329 + dependencies = [ 330 + "multibase", 331 + "multihash", 332 + "serde", 333 + "serde_bytes", 334 + "unsigned-varint", 335 + ] 336 + 337 + [[package]] 338 + name = "cobs" 339 + version = "0.3.0" 340 + source = "registry+https://github.com/rust-lang/crates.io-index" 341 + checksum = "0fa961b519f0b462e3a3b4a34b64d119eeaca1d59af726fe450bbba07a9fc0a1" 342 + dependencies = [ 343 + "thiserror 2.0.19", 344 + ] 345 + 346 + [[package]] 347 + name = "combine" 348 + version = "4.6.7" 349 + source = "registry+https://github.com/rust-lang/crates.io-index" 350 + checksum = "ba5a308b75df32fe02788e748662718f03fde005016435c444eea572398219fd" 351 + dependencies = [ 352 + "bytes", 353 + "memchr", 354 + ] 355 + 356 + [[package]] 357 + name = "compression-codecs" 358 + version = "0.4.38" 359 + source = "registry+https://github.com/rust-lang/crates.io-index" 360 + checksum = "ce2548391e9c1929c21bf6aa2680af86fe4c1b33e6cea9ac1cfeec0bd11218cf" 361 + dependencies = [ 362 + "brotli", 363 + "compression-core", 364 + "flate2", 365 + "memchr", 366 + ] 367 + 368 + [[package]] 369 + name = "compression-core" 370 + version = "0.4.32" 371 + source = "registry+https://github.com/rust-lang/crates.io-index" 372 + checksum = "cc14f565cf027a105f7a44ccf9e5b424348421a1d8952a8fc9d499d313107789" 373 + 374 + [[package]] 375 + name = "const-oid" 376 + version = "0.9.6" 377 + source = "registry+https://github.com/rust-lang/crates.io-index" 378 + checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" 379 + 380 + [[package]] 381 + name = "const-str" 382 + version = "0.4.3" 383 + source = "registry+https://github.com/rust-lang/crates.io-index" 384 + checksum = "2f421161cb492475f1661ddc9815a745a1c894592070661180fdec3d4872e9c3" 385 + 386 + [[package]] 387 + name = "cordyceps" 388 + version = "0.3.4" 389 + source = "registry+https://github.com/rust-lang/crates.io-index" 390 + checksum = "688d7fbb8092b8de775ef2536f36c8c31f2bc4006ece2e8d8ad2d17d00ce0a2a" 391 + dependencies = [ 392 + "loom", 393 + "tracing", 394 + ] 395 + 396 + [[package]] 397 + name = "core-foundation" 398 + version = "0.9.4" 399 + source = "registry+https://github.com/rust-lang/crates.io-index" 400 + checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" 401 + dependencies = [ 402 + "core-foundation-sys", 403 + "libc", 404 + ] 405 + 406 + [[package]] 407 + name = "core-foundation" 408 + version = "0.10.1" 409 + source = "registry+https://github.com/rust-lang/crates.io-index" 410 + checksum = "b2a6cd9ae233e7f62ba4e9353e81a88df7fc8a5987b8d445b4d90c879bd156f6" 411 + dependencies = [ 412 + "core-foundation-sys", 413 + "libc", 414 + ] 415 + 416 + [[package]] 417 + name = "core-foundation-sys" 418 + version = "0.8.7" 419 + source = "registry+https://github.com/rust-lang/crates.io-index" 420 + checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" 421 + 422 + [[package]] 423 + name = "cpufeatures" 424 + version = "0.2.17" 425 + source = "registry+https://github.com/rust-lang/crates.io-index" 426 + checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280" 427 + dependencies = [ 428 + "libc", 429 + ] 430 + 431 + [[package]] 432 + name = "cpufeatures" 433 + version = "0.3.0" 434 + source = "registry+https://github.com/rust-lang/crates.io-index" 435 + checksum = "8b2a41393f66f16b0823bb79094d54ac5fbd34ab292ddafb9a0456ac9f87d201" 436 + dependencies = [ 437 + "libc", 438 + ] 439 + 440 + [[package]] 441 + name = "crc32fast" 442 + version = "1.5.0" 443 + source = "registry+https://github.com/rust-lang/crates.io-index" 444 + checksum = "9481c1c90cbf2ac953f07c8d4a58aa3945c425b7185c9154d67a65e4230da511" 445 + dependencies = [ 446 + "cfg-if", 447 + ] 448 + 449 + [[package]] 450 + name = "critical-section" 451 + version = "1.2.0" 452 + source = "registry+https://github.com/rust-lang/crates.io-index" 453 + checksum = "790eea4361631c5e7d22598ecd5723ff611904e3344ce8720784c93e3d83d40b" 454 + 455 + [[package]] 456 + name = "crossbeam-channel" 457 + version = "0.5.16" 458 + source = "registry+https://github.com/rust-lang/crates.io-index" 459 + checksum = "d85363c37faeca707aef026efa9f3b34d077bce547e48f770770625c6013679e" 460 + dependencies = [ 461 + "crossbeam-utils", 462 + ] 463 + 464 + [[package]] 465 + name = "crossbeam-utils" 466 + version = "0.8.22" 467 + source = "registry+https://github.com/rust-lang/crates.io-index" 468 + checksum = "61803da095bee82a81bb1a452ecc25d3b2f1416d1897eb86430c6159ef717c17" 469 + 470 + [[package]] 471 + name = "crunchy" 472 + version = "0.2.4" 473 + source = "registry+https://github.com/rust-lang/crates.io-index" 474 + checksum = "460fbee9c2c2f33933d720630a6a0bac33ba7053db5344fac858d4b8952d77d5" 475 + 476 + [[package]] 477 + name = "crypto-bigint" 478 + version = "0.5.5" 479 + source = "registry+https://github.com/rust-lang/crates.io-index" 480 + checksum = "0dc92fb57ca44df6db8059111ab3af99a63d5d0f8375d9972e319a379c6bab76" 481 + dependencies = [ 482 + "generic-array", 483 + "rand_core 0.6.4", 484 + "subtle", 485 + "zeroize", 486 + ] 487 + 488 + [[package]] 489 + name = "crypto-common" 490 + version = "0.1.6" 491 + source = "registry+https://github.com/rust-lang/crates.io-index" 492 + checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" 493 + dependencies = [ 494 + "generic-array", 495 + "typenum", 496 + ] 497 + 498 + [[package]] 499 + name = "curve25519-dalek" 500 + version = "4.1.3" 501 + source = "registry+https://github.com/rust-lang/crates.io-index" 502 + checksum = "97fb8b7c4503de7d6ae7b42ab72a5a59857b4c937ec27a3d4539dba95b5ab2be" 503 + dependencies = [ 504 + "cfg-if", 505 + "cpufeatures 0.2.17", 506 + "curve25519-dalek-derive", 507 + "digest", 508 + "fiat-crypto", 509 + "rustc_version", 510 + "subtle", 511 + "zeroize", 512 + ] 513 + 514 + [[package]] 515 + name = "curve25519-dalek-derive" 516 + version = "0.1.1" 517 + source = "registry+https://github.com/rust-lang/crates.io-index" 518 + checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" 519 + dependencies = [ 520 + "proc-macro2", 521 + "quote", 522 + "syn 2.0.119", 523 + ] 524 + 525 + [[package]] 526 + name = "darling" 527 + version = "0.23.0" 528 + source = "registry+https://github.com/rust-lang/crates.io-index" 529 + checksum = "25ae13da2f202d56bd7f91c25fba009e7717a1e4a1cc98a76d844b65ae912e9d" 530 + dependencies = [ 531 + "darling_core", 532 + "darling_macro", 533 + ] 534 + 535 + [[package]] 536 + name = "darling_core" 537 + version = "0.23.0" 538 + source = "registry+https://github.com/rust-lang/crates.io-index" 539 + checksum = "9865a50f7c335f53564bb694ef660825eb8610e0a53d3e11bf1b0d3df31e03b0" 540 + dependencies = [ 541 + "ident_case", 542 + "proc-macro2", 543 + "quote", 544 + "strsim", 545 + "syn 2.0.119", 546 + ] 547 + 548 + [[package]] 549 + name = "darling_macro" 550 + version = "0.23.0" 551 + source = "registry+https://github.com/rust-lang/crates.io-index" 552 + checksum = "ac3984ec7bd6cfa798e62b4a642426a5be0e68f9401cfc2a01e3fa9ea2fcdb8d" 553 + dependencies = [ 554 + "darling_core", 555 + "quote", 556 + "syn 2.0.119", 557 + ] 558 + 559 + [[package]] 560 + name = "dashmap" 561 + version = "6.2.1" 562 + source = "registry+https://github.com/rust-lang/crates.io-index" 563 + checksum = "e6361d5c062261c78a176addb82d4c821ae42bed6089de0e12603cd25de2059c" 564 + dependencies = [ 565 + "cfg-if", 566 + "crossbeam-utils", 567 + "hashbrown 0.14.5", 568 + "lock_api", 569 + "once_cell", 570 + "parking_lot_core", 571 + ] 572 + 573 + [[package]] 574 + name = "data-encoding" 575 + version = "2.11.0" 576 + source = "registry+https://github.com/rust-lang/crates.io-index" 577 + checksum = "a4ae5f15dda3c708c0ade84bfee31ccab44a3da4f88015ed22f63732abe300c8" 578 + 579 + [[package]] 580 + name = "data-encoding-macro" 581 + version = "0.1.20" 582 + source = "registry+https://github.com/rust-lang/crates.io-index" 583 + checksum = "3259c913752a86488b501ed8680446a5ed2d5aeac6e596cb23ba3800768ea32c" 584 + dependencies = [ 585 + "data-encoding", 586 + "data-encoding-macro-internal", 587 + ] 588 + 589 + [[package]] 590 + name = "data-encoding-macro-internal" 591 + version = "0.1.18" 592 + source = "registry+https://github.com/rust-lang/crates.io-index" 593 + checksum = "ccc2776f0c61eca1ca32528f85548abd1a4be8fb53d1b21c013e4f18da1e7090" 594 + dependencies = [ 595 + "data-encoding", 596 + "syn 2.0.119", 597 + ] 598 + 599 + [[package]] 600 + name = "der" 601 + version = "0.7.10" 602 + source = "registry+https://github.com/rust-lang/crates.io-index" 603 + checksum = "e7c1832837b905bbfb5101e07cc24c8deddf52f93225eee6ead5f4d63d53ddcb" 604 + dependencies = [ 605 + "const-oid", 606 + "pem-rfc7468", 607 + "zeroize", 608 + ] 609 + 610 + [[package]] 611 + name = "deranged" 612 + version = "0.5.8" 613 + source = "registry+https://github.com/rust-lang/crates.io-index" 614 + checksum = "7cd812cc2bc1d69d4764bd80df88b4317eaef9e773c75226407d9bc0876b211c" 615 + 616 + [[package]] 617 + name = "derive_more" 618 + version = "1.0.0" 619 + source = "registry+https://github.com/rust-lang/crates.io-index" 620 + checksum = "4a9b99b9cbbe49445b21764dc0625032a89b145a2642e67603e1c936f5458d05" 621 + dependencies = [ 622 + "derive_more-impl", 623 + ] 624 + 625 + [[package]] 626 + name = "derive_more-impl" 627 + version = "1.0.0" 628 + source = "registry+https://github.com/rust-lang/crates.io-index" 629 + checksum = "cb7330aeadfbe296029522e6c40f315320aba36fc43a5b3632f3795348f3bd22" 630 + dependencies = [ 631 + "proc-macro2", 632 + "quote", 633 + "syn 2.0.119", 634 + "unicode-xid", 635 + ] 636 + 637 + [[package]] 638 + name = "diatomic-waker" 639 + version = "0.2.3" 640 + source = "registry+https://github.com/rust-lang/crates.io-index" 641 + checksum = "ab03c107fafeb3ee9f5925686dbb7a73bc76e3932abb0d2b365cb64b169cf04c" 642 + 643 + [[package]] 644 + name = "digest" 645 + version = "0.10.7" 646 + source = "registry+https://github.com/rust-lang/crates.io-index" 647 + checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" 648 + dependencies = [ 649 + "block-buffer", 650 + "const-oid", 651 + "crypto-common", 652 + "subtle", 653 + ] 654 + 655 + [[package]] 656 + name = "displaydoc" 657 + version = "0.2.6" 658 + source = "registry+https://github.com/rust-lang/crates.io-index" 659 + checksum = "1ac70aa55017e108007fbaf5aa0f54b021c98f92ff8af59d42eda9da96e3dd4f" 660 + dependencies = [ 661 + "proc-macro2", 662 + "quote", 663 + "syn 2.0.119", 664 + ] 665 + 666 + [[package]] 667 + name = "ecdsa" 668 + version = "0.16.9" 669 + source = "registry+https://github.com/rust-lang/crates.io-index" 670 + checksum = "ee27f32b5c5292967d2d4a9d7f1e0b0aed2c15daded5a60300e4abb9d8020bca" 671 + dependencies = [ 672 + "der", 673 + "digest", 674 + "elliptic-curve", 675 + "rfc6979", 676 + "signature", 677 + "spki", 678 + ] 679 + 680 + [[package]] 681 + name = "ed25519" 682 + version = "2.2.3" 683 + source = "registry+https://github.com/rust-lang/crates.io-index" 684 + checksum = "115531babc129696a58c64a4fef0a8bf9e9698629fb97e9e40767d235cfbcd53" 685 + dependencies = [ 686 + "pkcs8", 687 + "signature", 688 + ] 689 + 690 + [[package]] 691 + name = "ed25519-dalek" 692 + version = "2.2.0" 693 + source = "registry+https://github.com/rust-lang/crates.io-index" 694 + checksum = "70e796c081cee67dc755e1a36a0a172b897fab85fc3f6bc48307991f64e4eca9" 695 + dependencies = [ 696 + "curve25519-dalek", 697 + "ed25519", 698 + "rand_core 0.6.4", 699 + "serde", 700 + "sha2", 701 + "subtle", 702 + "zeroize", 703 + ] 704 + 705 + [[package]] 706 + name = "elliptic-curve" 707 + version = "0.13.8" 708 + source = "registry+https://github.com/rust-lang/crates.io-index" 709 + checksum = "b5e6043086bf7973472e0c7dff2142ea0b680d30e18d9cc40f267efbf222bd47" 710 + dependencies = [ 711 + "base16ct", 712 + "crypto-bigint", 713 + "digest", 714 + "ff", 715 + "generic-array", 716 + "group", 717 + "hkdf", 718 + "pem-rfc7468", 719 + "pkcs8", 720 + "rand_core 0.6.4", 721 + "sec1", 722 + "subtle", 723 + "zeroize", 724 + ] 725 + 726 + [[package]] 727 + name = "embedded-io" 728 + version = "0.4.0" 729 + source = "registry+https://github.com/rust-lang/crates.io-index" 730 + checksum = "ef1a6892d9eef45c8fa6b9e0086428a2cca8491aca8f787c534a3d6d0bcb3ced" 731 + 732 + [[package]] 733 + name = "embedded-io" 734 + version = "0.6.1" 735 + source = "registry+https://github.com/rust-lang/crates.io-index" 736 + checksum = "edd0f118536f44f5ccd48bcb8b111bdc3de888b58c74639dfb034a357d0f206d" 737 + 738 + [[package]] 739 + name = "encoding_rs" 740 + version = "0.8.35" 741 + source = "registry+https://github.com/rust-lang/crates.io-index" 742 + checksum = "75030f3c4f45dafd7586dd6780965a8c7e8e285a5ecb86713e63a79c5b2766f3" 743 + dependencies = [ 744 + "cfg-if", 745 + ] 746 + 747 + [[package]] 748 + name = "enum-as-inner" 749 + version = "0.6.1" 750 + source = "registry+https://github.com/rust-lang/crates.io-index" 751 + checksum = "a1e6a265c649f3f5979b601d26f1d05ada116434c87741c9493cb56218f76cbc" 752 + dependencies = [ 753 + "heck", 754 + "proc-macro2", 755 + "quote", 756 + "syn 2.0.119", 757 + ] 758 + 759 + [[package]] 760 + name = "equivalent" 761 + version = "1.0.2" 762 + source = "registry+https://github.com/rust-lang/crates.io-index" 763 + checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" 764 + 765 + [[package]] 766 + name = "fastrand" 767 + version = "2.5.0" 768 + source = "registry+https://github.com/rust-lang/crates.io-index" 769 + checksum = "da7c62ceae207dd37ea5b845da6a0696c799f85e97da1ab5b7910be3c1c80223" 770 + 771 + [[package]] 772 + name = "ff" 773 + version = "0.13.1" 774 + source = "registry+https://github.com/rust-lang/crates.io-index" 775 + checksum = "c0b50bfb653653f9ca9095b427bed08ab8d75a137839d9ad64eb11810d5b6393" 776 + dependencies = [ 777 + "rand_core 0.6.4", 778 + "subtle", 779 + ] 780 + 781 + [[package]] 782 + name = "fiat-crypto" 783 + version = "0.2.9" 784 + source = "registry+https://github.com/rust-lang/crates.io-index" 785 + checksum = "28dea519a9695b9977216879a3ebfddf92f1c08c05d984f8996aecd6ecdc811d" 786 + 787 + [[package]] 788 + name = "find-msvc-tools" 789 + version = "0.1.9" 790 + source = "registry+https://github.com/rust-lang/crates.io-index" 791 + checksum = "5baebc0774151f905a1a2cc41989300b1e6fbb29aff0ceffa1064fdd3088d582" 792 + 793 + [[package]] 794 + name = "flate2" 795 + version = "1.1.9" 796 + source = "registry+https://github.com/rust-lang/crates.io-index" 797 + checksum = "843fba2746e448b37e26a819579957415c8cef339bf08564fe8b7ddbd959573c" 798 + dependencies = [ 799 + "crc32fast", 800 + "miniz_oxide", 801 + ] 802 + 803 + [[package]] 804 + name = "fluent-uri" 805 + version = "0.4.1" 806 + source = "registry+https://github.com/rust-lang/crates.io-index" 807 + checksum = "bc74ac4d8359ae70623506d512209619e5cf8f347124910440dbc221714b328e" 808 + dependencies = [ 809 + "borrow-or-share", 810 + "ref-cast", 811 + "serde", 812 + ] 813 + 814 + [[package]] 815 + name = "fnv" 816 + version = "1.0.7" 817 + source = "registry+https://github.com/rust-lang/crates.io-index" 818 + checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" 819 + 820 + [[package]] 821 + name = "foldhash" 822 + version = "0.1.5" 823 + source = "registry+https://github.com/rust-lang/crates.io-index" 824 + checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" 825 + 826 + [[package]] 827 + name = "form_urlencoded" 828 + version = "1.2.2" 829 + source = "registry+https://github.com/rust-lang/crates.io-index" 830 + checksum = "cb4cb245038516f5f85277875cdaa4f7d2c9a0fa0468de06ed190163b1581fcf" 831 + dependencies = [ 832 + "percent-encoding", 833 + ] 834 + 835 + [[package]] 836 + name = "futf" 837 + version = "0.1.5" 838 + source = "registry+https://github.com/rust-lang/crates.io-index" 839 + checksum = "df420e2e84819663797d1ec6544b13c5be84629e7bb00dc960d6917db2987843" 840 + dependencies = [ 841 + "mac", 842 + "new_debug_unreachable", 843 + ] 844 + 845 + [[package]] 846 + name = "futures" 847 + version = "0.3.33" 848 + source = "registry+https://github.com/rust-lang/crates.io-index" 849 + checksum = "a88cf1f829d945f548cf8fec32c61b1f202b6d93b45848602fc02af4b12ad218" 850 + dependencies = [ 851 + "futures-channel", 852 + "futures-core", 853 + "futures-executor", 854 + "futures-io", 855 + "futures-sink", 856 + "futures-task", 857 + "futures-util", 858 + ] 859 + 860 + [[package]] 861 + name = "futures-buffered" 862 + version = "0.2.13" 863 + source = "registry+https://github.com/rust-lang/crates.io-index" 864 + checksum = "4421cb78ee172b6b06080093479d3c50f058e7c81b7d577bbb8d118d551d4cd5" 865 + dependencies = [ 866 + "cordyceps", 867 + "diatomic-waker", 868 + "futures-core", 869 + "pin-project-lite", 870 + "spin 0.10.1", 871 + ] 872 + 873 + [[package]] 874 + name = "futures-channel" 875 + version = "0.3.33" 876 + source = "registry+https://github.com/rust-lang/crates.io-index" 877 + checksum = "262590f4fe6afeb0bc83be1daa64e52657fe185690a958af7f3ad0e92085c5ae" 878 + dependencies = [ 879 + "futures-core", 880 + "futures-sink", 881 + ] 882 + 883 + [[package]] 884 + name = "futures-core" 885 + version = "0.3.33" 886 + source = "registry+https://github.com/rust-lang/crates.io-index" 887 + checksum = "2cd50c473c80f6d7c3670a752354b8e569b1a7cbfdc0419ec88e5edad85e0dc7" 888 + 889 + [[package]] 890 + name = "futures-executor" 891 + version = "0.3.33" 892 + source = "registry+https://github.com/rust-lang/crates.io-index" 893 + checksum = "6754879cc9f2c66f88c6e5c35344bb0bdb0708b0352b1201815667c7eabc7458" 894 + dependencies = [ 895 + "futures-core", 896 + "futures-task", 897 + "futures-util", 898 + ] 899 + 900 + [[package]] 901 + name = "futures-io" 902 + version = "0.3.33" 903 + source = "registry+https://github.com/rust-lang/crates.io-index" 904 + checksum = "4577ecaa3c4f96589d473f679a71b596316f6641bc350038b962a5daf0085d7a" 905 + 906 + [[package]] 907 + name = "futures-lite" 908 + version = "2.6.1" 909 + source = "registry+https://github.com/rust-lang/crates.io-index" 910 + checksum = "f78e10609fe0e0b3f4157ffab1876319b5b0db102a2c60dc4626306dc46b44ad" 911 + dependencies = [ 912 + "fastrand", 913 + "futures-core", 914 + "futures-io", 915 + "parking", 916 + "pin-project-lite", 917 + ] 918 + 919 + [[package]] 920 + name = "futures-macro" 921 + version = "0.3.33" 922 + source = "registry+https://github.com/rust-lang/crates.io-index" 923 + checksum = "2d6d3cde68c518367be28956066ddfef33813991b77a55005a69dae04bf3b10b" 924 + dependencies = [ 925 + "proc-macro2", 926 + "quote", 927 + "syn 2.0.119", 928 + ] 929 + 930 + [[package]] 931 + name = "futures-sink" 932 + version = "0.3.33" 933 + source = "registry+https://github.com/rust-lang/crates.io-index" 934 + checksum = "e34418ac499d6305c2fb5ad0ed2f6ac998c5f8ca209b4510f7f94242c647e307" 935 + 936 + [[package]] 937 + name = "futures-task" 938 + version = "0.3.33" 939 + source = "registry+https://github.com/rust-lang/crates.io-index" 940 + checksum = "b231ed28831efb4a61a08580c4bc233ec56bc009f4cd8f52da2c3cb97df0c109" 941 + 942 + [[package]] 943 + name = "futures-util" 944 + version = "0.3.33" 945 + source = "registry+https://github.com/rust-lang/crates.io-index" 946 + checksum = "a77a90a256fce34da66415271e30f94ee91c57b04b8a2c042d9cf3220179deaa" 947 + dependencies = [ 948 + "futures-channel", 949 + "futures-core", 950 + "futures-io", 951 + "futures-macro", 952 + "futures-sink", 953 + "futures-task", 954 + "memchr", 955 + "pin-project-lite", 956 + "slab", 957 + ] 958 + 959 + [[package]] 960 + name = "generator" 961 + version = "0.8.9" 962 + source = "registry+https://github.com/rust-lang/crates.io-index" 963 + checksum = "b3b854b0e584ead1a33f18b2fcad7cf7be18b3875c78816b753639aa501513ae" 964 + dependencies = [ 965 + "cc", 966 + "cfg-if", 967 + "libc", 968 + "log", 969 + "rustversion", 970 + "windows-link", 971 + "windows-result", 972 + ] 973 + 974 + [[package]] 975 + name = "generic-array" 976 + version = "0.14.9" 977 + source = "registry+https://github.com/rust-lang/crates.io-index" 978 + checksum = "4bb6743198531e02858aeaea5398fcc883e71851fcbcb5a2f773e2fb6cb1edf2" 979 + dependencies = [ 980 + "typenum", 981 + "version_check", 982 + "zeroize", 983 + ] 984 + 985 + [[package]] 986 + name = "getrandom" 987 + version = "0.2.17" 988 + source = "registry+https://github.com/rust-lang/crates.io-index" 989 + checksum = "ff2abc00be7fca6ebc474524697ae276ad847ad0a6b3faa4bcb027e9a4614ad0" 990 + dependencies = [ 991 + "cfg-if", 992 + "js-sys", 993 + "libc", 994 + "wasi", 995 + "wasm-bindgen", 996 + ] 997 + 998 + [[package]] 999 + name = "getrandom" 1000 + version = "0.3.4" 1001 + source = "registry+https://github.com/rust-lang/crates.io-index" 1002 + checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd" 1003 + dependencies = [ 1004 + "cfg-if", 1005 + "js-sys", 1006 + "libc", 1007 + "r-efi 5.3.0", 1008 + "wasip2", 1009 + "wasm-bindgen", 1010 + ] 1011 + 1012 + [[package]] 1013 + name = "getrandom" 1014 + version = "0.4.3" 1015 + source = "registry+https://github.com/rust-lang/crates.io-index" 1016 + checksum = "300e883d756b2e4ec94e02791f39b04b522276138852cfc41d9fb7e904106099" 1017 + dependencies = [ 1018 + "cfg-if", 1019 + "js-sys", 1020 + "libc", 1021 + "r-efi 6.0.0", 1022 + "rand_core 0.10.1", 1023 + "wasm-bindgen", 1024 + ] 1025 + 1026 + [[package]] 1027 + name = "gloo-storage" 1028 + version = "0.3.0" 1029 + source = "registry+https://github.com/rust-lang/crates.io-index" 1030 + checksum = "fbc8031e8c92758af912f9bc08fbbadd3c6f3cfcbf6b64cdf3d6a81f0139277a" 1031 + dependencies = [ 1032 + "gloo-utils", 1033 + "js-sys", 1034 + "serde", 1035 + "serde_json", 1036 + "thiserror 1.0.69", 1037 + "wasm-bindgen", 1038 + "web-sys", 1039 + ] 1040 + 1041 + [[package]] 1042 + name = "gloo-utils" 1043 + version = "0.2.0" 1044 + source = "registry+https://github.com/rust-lang/crates.io-index" 1045 + checksum = "0b5555354113b18c547c1d3a98fbf7fb32a9ff4f6fa112ce823a21641a0ba3aa" 1046 + dependencies = [ 1047 + "js-sys", 1048 + "serde", 1049 + "serde_json", 1050 + "wasm-bindgen", 1051 + "web-sys", 1052 + ] 1053 + 1054 + [[package]] 1055 + name = "group" 1056 + version = "0.13.0" 1057 + source = "registry+https://github.com/rust-lang/crates.io-index" 1058 + checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63" 1059 + dependencies = [ 1060 + "ff", 1061 + "rand_core 0.6.4", 1062 + "subtle", 1063 + ] 1064 + 1065 + [[package]] 1066 + name = "h2" 1067 + version = "0.4.15" 1068 + source = "registry+https://github.com/rust-lang/crates.io-index" 1069 + checksum = "6cb093c84e8bd9b188d4c4a8cb6579fc016968d14c99882163cd3ff402a4f155" 1070 + dependencies = [ 1071 + "atomic-waker", 1072 + "bytes", 1073 + "fnv", 1074 + "futures-core", 1075 + "futures-sink", 1076 + "http", 1077 + "indexmap", 1078 + "slab", 1079 + "tokio", 1080 + "tokio-util", 1081 + "tracing", 1082 + ] 1083 + 1084 + [[package]] 1085 + name = "half" 1086 + version = "2.7.1" 1087 + source = "registry+https://github.com/rust-lang/crates.io-index" 1088 + checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" 1089 + dependencies = [ 1090 + "cfg-if", 1091 + "crunchy", 1092 + "zerocopy", 1093 + ] 1094 + 1095 + [[package]] 1096 + name = "hash32" 1097 + version = "0.2.1" 1098 + source = "registry+https://github.com/rust-lang/crates.io-index" 1099 + checksum = "b0c35f58762feb77d74ebe43bdbc3210f09be9fe6742234d573bacc26ed92b67" 1100 + dependencies = [ 1101 + "byteorder", 1102 + ] 1103 + 1104 + [[package]] 1105 + name = "hashbrown" 1106 + version = "0.14.5" 1107 + source = "registry+https://github.com/rust-lang/crates.io-index" 1108 + checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" 1109 + 1110 + [[package]] 1111 + name = "hashbrown" 1112 + version = "0.15.5" 1113 + source = "registry+https://github.com/rust-lang/crates.io-index" 1114 + checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" 1115 + dependencies = [ 1116 + "allocator-api2", 1117 + "equivalent", 1118 + "foldhash", 1119 + ] 1120 + 1121 + [[package]] 1122 + name = "hashbrown" 1123 + version = "0.17.1" 1124 + source = "registry+https://github.com/rust-lang/crates.io-index" 1125 + checksum = "ed5909b6e89a2db4456e54cd5f673791d7eca6732202bbf2a9cc504fe2f9b84a" 1126 + 1127 + [[package]] 1128 + name = "heapless" 1129 + version = "0.7.17" 1130 + source = "registry+https://github.com/rust-lang/crates.io-index" 1131 + checksum = "cdc6457c0eb62c71aac4bc17216026d8410337c4126773b9c5daba343f17964f" 1132 + dependencies = [ 1133 + "atomic-polyfill", 1134 + "hash32", 1135 + "rustc_version", 1136 + "serde", 1137 + "spin 0.9.9", 1138 + "stable_deref_trait", 1139 + ] 1140 + 1141 + [[package]] 1142 + name = "heck" 1143 + version = "0.5.0" 1144 + source = "registry+https://github.com/rust-lang/crates.io-index" 1145 + checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" 1146 + 1147 + [[package]] 1148 + name = "hex" 1149 + version = "0.4.3" 1150 + source = "registry+https://github.com/rust-lang/crates.io-index" 1151 + checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" 1152 + 1153 + [[package]] 1154 + name = "hickory-proto" 1155 + version = "0.24.4" 1156 + source = "registry+https://github.com/rust-lang/crates.io-index" 1157 + checksum = "92652067c9ce6f66ce53cc38d1169daa36e6e7eb7dd3b63b5103bd9d97117248" 1158 + dependencies = [ 1159 + "async-trait", 1160 + "cfg-if", 1161 + "data-encoding", 1162 + "enum-as-inner", 1163 + "futures-channel", 1164 + "futures-io", 1165 + "futures-util", 1166 + "idna", 1167 + "ipnet", 1168 + "once_cell", 1169 + "rand 0.8.7", 1170 + "thiserror 1.0.69", 1171 + "tinyvec", 1172 + "tokio", 1173 + "tracing", 1174 + "url", 1175 + ] 1176 + 1177 + [[package]] 1178 + name = "hickory-resolver" 1179 + version = "0.24.4" 1180 + source = "registry+https://github.com/rust-lang/crates.io-index" 1181 + checksum = "cbb117a1ca520e111743ab2f6688eddee69db4e0ea242545a604dce8a66fd22e" 1182 + dependencies = [ 1183 + "cfg-if", 1184 + "futures-util", 1185 + "hickory-proto", 1186 + "ipconfig", 1187 + "lru-cache", 1188 + "once_cell", 1189 + "parking_lot", 1190 + "rand 0.8.7", 1191 + "resolv-conf", 1192 + "smallvec", 1193 + "thiserror 1.0.69", 1194 + "tokio", 1195 + "tracing", 1196 + ] 1197 + 1198 + [[package]] 1199 + name = "hkdf" 1200 + version = "0.12.4" 1201 + source = "registry+https://github.com/rust-lang/crates.io-index" 1202 + checksum = "7b5f8eb2ad728638ea2c7d47a21db23b7b58a72ed6a38256b8a1849f15fbbdf7" 1203 + dependencies = [ 1204 + "hmac", 1205 + ] 1206 + 1207 + [[package]] 1208 + name = "hmac" 1209 + version = "0.12.1" 1210 + source = "registry+https://github.com/rust-lang/crates.io-index" 1211 + checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" 1212 + dependencies = [ 1213 + "digest", 1214 + ] 1215 + 1216 + [[package]] 1217 + name = "html5ever" 1218 + version = "0.27.0" 1219 + source = "registry+https://github.com/rust-lang/crates.io-index" 1220 + checksum = "c13771afe0e6e846f1e67d038d4cb29998a6779f93c809212e4e9c32efd244d4" 1221 + dependencies = [ 1222 + "log", 1223 + "mac", 1224 + "markup5ever", 1225 + "proc-macro2", 1226 + "quote", 1227 + "syn 2.0.119", 1228 + ] 1229 + 1230 + [[package]] 1231 + name = "http" 1232 + version = "1.4.2" 1233 + source = "registry+https://github.com/rust-lang/crates.io-index" 1234 + checksum = "6970f50e31d6fc17d3fa27329444bfa74e196cf62e95052a3f6fee181dba6425" 1235 + dependencies = [ 1236 + "bytes", 1237 + "itoa", 1238 + ] 1239 + 1240 + [[package]] 1241 + name = "http-body" 1242 + version = "1.1.0" 1243 + source = "registry+https://github.com/rust-lang/crates.io-index" 1244 + checksum = "ca2a8f2913ee65f60facd6a5905613afaa448497a0230cc41ce022d93290bc2c" 1245 + dependencies = [ 1246 + "bytes", 1247 + "http", 1248 + ] 1249 + 1250 + [[package]] 1251 + name = "http-body-util" 1252 + version = "0.1.4" 1253 + source = "registry+https://github.com/rust-lang/crates.io-index" 1254 + checksum = "e9f41fd6a08e4d4ec69df65976da761afd5ad5e58a9d4acb46bd1c953a9e3ff2" 1255 + dependencies = [ 1256 + "bytes", 1257 + "futures-core", 1258 + "http", 1259 + "http-body", 1260 + "pin-project-lite", 1261 + ] 1262 + 1263 + [[package]] 1264 + name = "httparse" 1265 + version = "1.10.1" 1266 + source = "registry+https://github.com/rust-lang/crates.io-index" 1267 + checksum = "6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87" 1268 + 1269 + [[package]] 1270 + name = "hyper" 1271 + version = "1.11.0" 1272 + source = "registry+https://github.com/rust-lang/crates.io-index" 1273 + checksum = "d22053281f852e11534f5198498373cbb59295120a20771d90f7ed1897490a72" 1274 + dependencies = [ 1275 + "atomic-waker", 1276 + "bytes", 1277 + "futures-channel", 1278 + "futures-core", 1279 + "h2", 1280 + "http", 1281 + "http-body", 1282 + "httparse", 1283 + "itoa", 1284 + "pin-project-lite", 1285 + "smallvec", 1286 + "tokio", 1287 + "want", 1288 + ] 1289 + 1290 + [[package]] 1291 + name = "hyper-rustls" 1292 + version = "0.27.9" 1293 + source = "registry+https://github.com/rust-lang/crates.io-index" 1294 + checksum = "33ca68d021ef39cf6463ab54c1d0f5daf03377b70561305bb89a8f83aab66e0f" 1295 + dependencies = [ 1296 + "http", 1297 + "hyper", 1298 + "hyper-util", 1299 + "rustls", 1300 + "tokio", 1301 + "tokio-rustls", 1302 + "tower-service", 1303 + "webpki-roots", 1304 + ] 1305 + 1306 + [[package]] 1307 + name = "hyper-util" 1308 + version = "0.1.20" 1309 + source = "registry+https://github.com/rust-lang/crates.io-index" 1310 + checksum = "96547c2556ec9d12fb1578c4eaf448b04993e7fb79cbaad930a656880a6bdfa0" 1311 + dependencies = [ 1312 + "base64", 1313 + "bytes", 1314 + "futures-channel", 1315 + "futures-util", 1316 + "http", 1317 + "http-body", 1318 + "hyper", 1319 + "ipnet", 1320 + "libc", 1321 + "percent-encoding", 1322 + "pin-project-lite", 1323 + "socket2", 1324 + "system-configuration", 1325 + "tokio", 1326 + "tower-service", 1327 + "tracing", 1328 + "windows-registry", 1329 + ] 1330 + 1331 + [[package]] 1332 + name = "iana-time-zone" 1333 + version = "0.1.65" 1334 + source = "registry+https://github.com/rust-lang/crates.io-index" 1335 + checksum = "e31bc9ad994ba00e440a8aa5c9ef0ec67d5cb5e5cb0cc7f8b744a35b389cc470" 1336 + dependencies = [ 1337 + "android_system_properties", 1338 + "core-foundation-sys", 1339 + "iana-time-zone-haiku", 1340 + "js-sys", 1341 + "log", 1342 + "wasm-bindgen", 1343 + "windows-core", 1344 + ] 1345 + 1346 + [[package]] 1347 + name = "iana-time-zone-haiku" 1348 + version = "0.1.2" 1349 + source = "registry+https://github.com/rust-lang/crates.io-index" 1350 + checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" 1351 + dependencies = [ 1352 + "cc", 1353 + ] 1354 + 1355 + [[package]] 1356 + name = "icu_collections" 1357 + version = "2.2.0" 1358 + source = "registry+https://github.com/rust-lang/crates.io-index" 1359 + checksum = "2984d1cd16c883d7935b9e07e44071dca8d917fd52ecc02c04d5fa0b5a3f191c" 1360 + dependencies = [ 1361 + "displaydoc", 1362 + "potential_utf", 1363 + "utf8_iter", 1364 + "yoke", 1365 + "zerofrom", 1366 + "zerovec", 1367 + ] 1368 + 1369 + [[package]] 1370 + name = "icu_locale_core" 1371 + version = "2.2.0" 1372 + source = "registry+https://github.com/rust-lang/crates.io-index" 1373 + checksum = "92219b62b3e2b4d88ac5119f8904c10f8f61bf7e95b640d25ba3075e6cac2c29" 1374 + dependencies = [ 1375 + "displaydoc", 1376 + "litemap", 1377 + "tinystr", 1378 + "writeable", 1379 + "zerovec", 1380 + ] 1381 + 1382 + [[package]] 1383 + name = "icu_normalizer" 1384 + version = "2.2.0" 1385 + source = "registry+https://github.com/rust-lang/crates.io-index" 1386 + checksum = "c56e5ee99d6e3d33bd91c5d85458b6005a22140021cc324cea84dd0e72cff3b4" 1387 + dependencies = [ 1388 + "icu_collections", 1389 + "icu_normalizer_data", 1390 + "icu_properties", 1391 + "icu_provider", 1392 + "smallvec", 1393 + "zerovec", 1394 + ] 1395 + 1396 + [[package]] 1397 + name = "icu_normalizer_data" 1398 + version = "2.2.0" 1399 + source = "registry+https://github.com/rust-lang/crates.io-index" 1400 + checksum = "da3be0ae77ea334f4da67c12f149704f19f81d1adf7c51cf482943e84a2bad38" 1401 + 1402 + [[package]] 1403 + name = "icu_properties" 1404 + version = "2.2.0" 1405 + source = "registry+https://github.com/rust-lang/crates.io-index" 1406 + checksum = "bee3b67d0ea5c2cca5003417989af8996f8604e34fb9ddf96208a033901e70de" 1407 + dependencies = [ 1408 + "icu_collections", 1409 + "icu_locale_core", 1410 + "icu_properties_data", 1411 + "icu_provider", 1412 + "zerotrie", 1413 + "zerovec", 1414 + ] 1415 + 1416 + [[package]] 1417 + name = "icu_properties_data" 1418 + version = "2.2.0" 1419 + source = "registry+https://github.com/rust-lang/crates.io-index" 1420 + checksum = "8e2bbb201e0c04f7b4b3e14382af113e17ba4f63e2c9d2ee626b720cbce54a14" 1421 + 1422 + [[package]] 1423 + name = "icu_provider" 1424 + version = "2.2.0" 1425 + source = "registry+https://github.com/rust-lang/crates.io-index" 1426 + checksum = "139c4cf31c8b5f33d7e199446eff9c1e02decfc2f0eec2c8d71f65befa45b421" 1427 + dependencies = [ 1428 + "displaydoc", 1429 + "icu_locale_core", 1430 + "writeable", 1431 + "yoke", 1432 + "zerofrom", 1433 + "zerotrie", 1434 + "zerovec", 1435 + ] 1436 + 1437 + [[package]] 1438 + name = "ident_case" 1439 + version = "1.0.1" 1440 + source = "registry+https://github.com/rust-lang/crates.io-index" 1441 + checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" 1442 + 1443 + [[package]] 1444 + name = "idna" 1445 + version = "1.1.0" 1446 + source = "registry+https://github.com/rust-lang/crates.io-index" 1447 + checksum = "3b0875f23caa03898994f6ddc501886a45c7d3d62d04d2d90788d47be1b1e4de" 1448 + dependencies = [ 1449 + "idna_adapter", 1450 + "smallvec", 1451 + "utf8_iter", 1452 + ] 1453 + 1454 + [[package]] 1455 + name = "idna_adapter" 1456 + version = "1.2.2" 1457 + source = "registry+https://github.com/rust-lang/crates.io-index" 1458 + checksum = "cb68373c0d6620ef8105e855e7745e18b0d00d3bdb07fb532e434244cdb9a714" 1459 + dependencies = [ 1460 + "icu_normalizer", 1461 + "icu_properties", 1462 + ] 1463 + 1464 + [[package]] 1465 + name = "indexmap" 1466 + version = "2.14.0" 1467 + source = "registry+https://github.com/rust-lang/crates.io-index" 1468 + checksum = "d466e9454f08e4a911e14806c24e16fba1b4c121d1ea474396f396069cf949d9" 1469 + dependencies = [ 1470 + "equivalent", 1471 + "hashbrown 0.17.1", 1472 + ] 1473 + 1474 + [[package]] 1475 + name = "inventory" 1476 + version = "0.3.24" 1477 + source = "registry+https://github.com/rust-lang/crates.io-index" 1478 + checksum = "a4f0c30c76f2f4ccee3fe55a2435f691ca00c0e4bd87abe4f4a851b1d4dac39b" 1479 + dependencies = [ 1480 + "rustversion", 1481 + ] 1482 + 1483 + [[package]] 1484 + name = "ipconfig" 1485 + version = "0.3.4" 1486 + source = "registry+https://github.com/rust-lang/crates.io-index" 1487 + checksum = "4d40460c0ce33d6ce4b0630ad68ff63d6661961c48b6dba35e5a4d81cfb48222" 1488 + dependencies = [ 1489 + "socket2", 1490 + "widestring", 1491 + "windows-registry", 1492 + "windows-result", 1493 + "windows-sys 0.61.2", 1494 + ] 1495 + 1496 + [[package]] 1497 + name = "ipld-core" 1498 + version = "0.4.3" 1499 + source = "registry+https://github.com/rust-lang/crates.io-index" 1500 + checksum = "090f624976d72f0b0bb71b86d58dc16c15e069193067cb3a3a09d655246cbbda" 1501 + dependencies = [ 1502 + "cid", 1503 + "serde", 1504 + "serde_bytes", 1505 + ] 1506 + 1507 + [[package]] 1508 + name = "ipnet" 1509 + version = "2.12.0" 1510 + source = "registry+https://github.com/rust-lang/crates.io-index" 1511 + checksum = "d98f6fed1fde3f8c21bc40a1abb88dd75e67924f9cffc3ef95607bad8017f8e2" 1512 + 1513 + [[package]] 1514 + name = "itoa" 1515 + version = "1.0.18" 1516 + source = "registry+https://github.com/rust-lang/crates.io-index" 1517 + checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682" 1518 + 1519 + [[package]] 1520 + name = "jacquard" 1521 + version = "0.12.1" 1522 + source = "registry+https://github.com/rust-lang/crates.io-index" 1523 + checksum = "b5055461df426c9d0ac379bcf8f59177ff4c29b4ea2b23bd98c773061b863bbe" 1524 + dependencies = [ 1525 + "bytes", 1526 + "getrandom 0.2.17", 1527 + "gloo-storage", 1528 + "http", 1529 + "jacquard-api", 1530 + "jacquard-common", 1531 + "jacquard-derive", 1532 + "jacquard-identity", 1533 + "jacquard-oauth", 1534 + "jose-jwk", 1535 + "miette", 1536 + "regex", 1537 + "regex-lite", 1538 + "reqwest", 1539 + "serde", 1540 + "serde_html_form", 1541 + "serde_json", 1542 + "smol_str", 1543 + "thiserror 2.0.19", 1544 + "tokio", 1545 + "trait-variant", 1546 + "webpage", 1547 + ] 1548 + 1549 + [[package]] 1550 + name = "jacquard-api" 1551 + version = "0.12.1" 1552 + source = "registry+https://github.com/rust-lang/crates.io-index" 1553 + checksum = "b5c803a3c097e3ef8aea63747b4fe3fc9e339cd18272dd0366b1d10dd90d5c3f" 1554 + dependencies = [ 1555 + "jacquard-common", 1556 + "jacquard-derive", 1557 + "jacquard-lexicon", 1558 + "miette", 1559 + "serde", 1560 + "thiserror 2.0.19", 1561 + ] 1562 + 1563 + [[package]] 1564 + name = "jacquard-common" 1565 + version = "0.12.1" 1566 + source = "registry+https://github.com/rust-lang/crates.io-index" 1567 + checksum = "fec8b6661e6fcfb4d8b9eb1132503be71bc3e3c6f6ff15fa5500ec62655f6da7" 1568 + dependencies = [ 1569 + "base64", 1570 + "bon", 1571 + "bytes", 1572 + "chrono", 1573 + "ciborium", 1574 + "ciborium-io", 1575 + "cid", 1576 + "fluent-uri", 1577 + "getrandom 0.2.17", 1578 + "getrandom 0.3.4", 1579 + "hashbrown 0.15.5", 1580 + "http", 1581 + "ipld-core", 1582 + "k256", 1583 + "maitake-sync", 1584 + "miette", 1585 + "multibase", 1586 + "multihash", 1587 + "oxilangtag", 1588 + "p256", 1589 + "phf", 1590 + "postcard", 1591 + "rand 0.9.5", 1592 + "regex", 1593 + "regex-automata", 1594 + "regex-lite", 1595 + "reqwest", 1596 + "rustversion", 1597 + "serde", 1598 + "serde_bytes", 1599 + "serde_html_form", 1600 + "serde_ipld_dagcbor", 1601 + "serde_json", 1602 + "signature", 1603 + "smol_str", 1604 + "spin 0.10.1", 1605 + "thiserror 2.0.19", 1606 + "tokio", 1607 + "tokio-util", 1608 + "trait-variant", 1609 + "unicode-segmentation", 1610 + ] 1611 + 1612 + [[package]] 1613 + name = "jacquard-derive" 1614 + version = "0.12.1" 1615 + source = "registry+https://github.com/rust-lang/crates.io-index" 1616 + checksum = "e41b82a9a72c0d2b907a5e0734e0692615e717cda903502c6c034ae6f3ddddf7" 1617 + dependencies = [ 1618 + "heck", 1619 + "jacquard-lexicon", 1620 + "proc-macro2", 1621 + "quote", 1622 + "syn 2.0.119", 1623 + ] 1624 + 1625 + [[package]] 1626 + name = "jacquard-identity" 1627 + version = "0.12.1" 1628 + source = "registry+https://github.com/rust-lang/crates.io-index" 1629 + checksum = "2c0a89c960d6c2245f26642830ecf85155eaf7395e5da8794173a78854f0e22b" 1630 + dependencies = [ 1631 + "bon", 1632 + "bytes", 1633 + "hickory-resolver", 1634 + "http", 1635 + "jacquard-common", 1636 + "jacquard-lexicon", 1637 + "miette", 1638 + "mini-moka-wasm", 1639 + "n0-future", 1640 + "reqwest", 1641 + "serde", 1642 + "serde_html_form", 1643 + "serde_json", 1644 + "thiserror 2.0.19", 1645 + "tokio", 1646 + "trait-variant", 1647 + ] 1648 + 1649 + [[package]] 1650 + name = "jacquard-lexicon" 1651 + version = "0.12.1" 1652 + source = "registry+https://github.com/rust-lang/crates.io-index" 1653 + checksum = "160049c269e3d7ec56f130736d25d61953fc6216da660c8b5e102f6b052dd3a1" 1654 + dependencies = [ 1655 + "cid", 1656 + "dashmap", 1657 + "heck", 1658 + "inventory", 1659 + "jacquard-common", 1660 + "miette", 1661 + "multihash", 1662 + "prettyplease", 1663 + "proc-macro2", 1664 + "quote", 1665 + "serde", 1666 + "serde_ipld_dagcbor", 1667 + "serde_json", 1668 + "serde_path_to_error", 1669 + "serde_repr", 1670 + "serde_with", 1671 + "sha2", 1672 + "syn 2.0.119", 1673 + "thiserror 2.0.19", 1674 + "unicode-segmentation", 1675 + ] 1676 + 1677 + [[package]] 1678 + name = "jacquard-oauth" 1679 + version = "0.12.1" 1680 + source = "registry+https://github.com/rust-lang/crates.io-index" 1681 + checksum = "f5da2643242cbe906e707712117eefcc37b351a5ff12909f944ef556e523bfd9" 1682 + dependencies = [ 1683 + "base64", 1684 + "bytes", 1685 + "chrono", 1686 + "dashmap", 1687 + "ed25519-dalek", 1688 + "elliptic-curve", 1689 + "http", 1690 + "jacquard-common", 1691 + "jacquard-identity", 1692 + "jose-jwa", 1693 + "jose-jwk", 1694 + "k256", 1695 + "miette", 1696 + "p256", 1697 + "p384", 1698 + "rand 0.8.7", 1699 + "reqwest", 1700 + "serde", 1701 + "serde_html_form", 1702 + "serde_json", 1703 + "sha2", 1704 + "smallvec", 1705 + "smol_str", 1706 + "thiserror 2.0.19", 1707 + "tokio", 1708 + "trait-variant", 1709 + "webbrowser", 1710 + ] 1711 + 1712 + [[package]] 1713 + name = "jni" 1714 + version = "0.22.4" 1715 + source = "registry+https://github.com/rust-lang/crates.io-index" 1716 + checksum = "5efd9a482cf3a427f00d6b35f14332adc7902ce91efb778580e180ff90fa3498" 1717 + dependencies = [ 1718 + "cfg-if", 1719 + "combine", 1720 + "jni-macros", 1721 + "jni-sys", 1722 + "log", 1723 + "simd_cesu8", 1724 + "thiserror 2.0.19", 1725 + "walkdir", 1726 + "windows-link", 1727 + ] 1728 + 1729 + [[package]] 1730 + name = "jni-macros" 1731 + version = "0.22.4" 1732 + source = "registry+https://github.com/rust-lang/crates.io-index" 1733 + checksum = "a00109accc170f0bdb141fed3e393c565b6f5e072365c3bd58f5b062591560a3" 1734 + dependencies = [ 1735 + "proc-macro2", 1736 + "quote", 1737 + "rustc_version", 1738 + "simd_cesu8", 1739 + "syn 2.0.119", 1740 + ] 1741 + 1742 + [[package]] 1743 + name = "jni-sys" 1744 + version = "0.4.1" 1745 + source = "registry+https://github.com/rust-lang/crates.io-index" 1746 + checksum = "c6377a88cb3910bee9b0fa88d4f42e1d2da8e79915598f65fb0c7ee14c878af2" 1747 + dependencies = [ 1748 + "jni-sys-macros", 1749 + ] 1750 + 1751 + [[package]] 1752 + name = "jni-sys-macros" 1753 + version = "0.4.1" 1754 + source = "registry+https://github.com/rust-lang/crates.io-index" 1755 + checksum = "38c0b942f458fe50cdac086d2f946512305e5631e720728f2a61aabcd47a6264" 1756 + dependencies = [ 1757 + "quote", 1758 + "syn 2.0.119", 1759 + ] 1760 + 1761 + [[package]] 1762 + name = "jose-b64" 1763 + version = "0.1.2" 1764 + source = "registry+https://github.com/rust-lang/crates.io-index" 1765 + checksum = "bec69375368709666b21c76965ce67549f2d2db7605f1f8707d17c9656801b56" 1766 + dependencies = [ 1767 + "base64ct", 1768 + "serde", 1769 + "subtle", 1770 + "zeroize", 1771 + ] 1772 + 1773 + [[package]] 1774 + name = "jose-jwa" 1775 + version = "0.1.2" 1776 + source = "registry+https://github.com/rust-lang/crates.io-index" 1777 + checksum = "9ab78e053fe886a351d67cf0d194c000f9d0dcb92906eb34d853d7e758a4b3a7" 1778 + dependencies = [ 1779 + "serde", 1780 + ] 1781 + 1782 + [[package]] 1783 + name = "jose-jwk" 1784 + version = "0.1.2" 1785 + source = "registry+https://github.com/rust-lang/crates.io-index" 1786 + checksum = "280fa263807fe0782ecb6f2baadc28dffc04e00558a58e33bfdb801d11fd58e7" 1787 + dependencies = [ 1788 + "jose-b64", 1789 + "jose-jwa", 1790 + "p256", 1791 + "p384", 1792 + "rsa", 1793 + "serde", 1794 + "zeroize", 1795 + ] 1796 + 1797 + [[package]] 1798 + name = "js-sys" 1799 + version = "0.3.103" 1800 + source = "registry+https://github.com/rust-lang/crates.io-index" 1801 + checksum = "53b44bfcdb3f8d5837a46dae1ca9660a837176eee74a28b229bc626816589102" 1802 + dependencies = [ 1803 + "cfg-if", 1804 + "futures-util", 1805 + "wasm-bindgen", 1806 + ] 1807 + 1808 + [[package]] 1809 + name = "k256" 1810 + version = "0.13.4" 1811 + source = "registry+https://github.com/rust-lang/crates.io-index" 1812 + checksum = "f6e3919bbaa2945715f0bb6d3934a173d1e9a59ac23767fbaaef277265a7411b" 1813 + dependencies = [ 1814 + "cfg-if", 1815 + "ecdsa", 1816 + "elliptic-curve", 1817 + "once_cell", 1818 + "sha2", 1819 + "signature", 1820 + ] 1821 + 1822 + [[package]] 1823 + name = "lazy_static" 1824 + version = "1.5.0" 1825 + source = "registry+https://github.com/rust-lang/crates.io-index" 1826 + checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" 1827 + dependencies = [ 1828 + "spin 0.9.9", 1829 + ] 1830 + 1831 + [[package]] 1832 + name = "libc" 1833 + version = "0.2.189" 1834 + source = "registry+https://github.com/rust-lang/crates.io-index" 1835 + checksum = "3eaf3ede3fee6db1a4c2ee091bf8a8b4dccdc6d17f656fb07896ee72867612f2" 1836 + 1837 + [[package]] 1838 + name = "libm" 1839 + version = "0.2.16" 1840 + source = "registry+https://github.com/rust-lang/crates.io-index" 1841 + checksum = "b6d2cec3eae94f9f509c767b45932f1ada8350c4bdb85af2fcab4a3c14807981" 1842 + 1843 + [[package]] 1844 + name = "linked-hash-map" 1845 + version = "0.5.6" 1846 + source = "registry+https://github.com/rust-lang/crates.io-index" 1847 + checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f" 1848 + 1849 + [[package]] 1850 + name = "litemap" 1851 + version = "0.8.2" 1852 + source = "registry+https://github.com/rust-lang/crates.io-index" 1853 + checksum = "92daf443525c4cce67b150400bc2316076100ce0b3686209eb8cf3c31612e6f0" 1854 + 1855 + [[package]] 1856 + name = "lock_api" 1857 + version = "0.4.14" 1858 + source = "registry+https://github.com/rust-lang/crates.io-index" 1859 + checksum = "224399e74b87b5f3557511d98dff8b14089b3dadafcab6bb93eab67d3aace965" 1860 + dependencies = [ 1861 + "scopeguard", 1862 + ] 1863 + 1864 + [[package]] 1865 + name = "log" 1866 + version = "0.4.33" 1867 + source = "registry+https://github.com/rust-lang/crates.io-index" 1868 + checksum = "0ceec5bc11778974d1bcb055b18002eba7f4b3518b6a0081b3af5f21666da9ad" 1869 + 1870 + [[package]] 1871 + name = "loom" 1872 + version = "0.7.2" 1873 + source = "registry+https://github.com/rust-lang/crates.io-index" 1874 + checksum = "419e0dc8046cb947daa77eb95ae174acfbddb7673b4151f56d1eed8e93fbfaca" 1875 + dependencies = [ 1876 + "cfg-if", 1877 + "generator", 1878 + "scoped-tls", 1879 + "tracing", 1880 + "tracing-subscriber", 1881 + ] 1882 + 1883 + [[package]] 1884 + name = "lru-cache" 1885 + version = "0.1.2" 1886 + source = "registry+https://github.com/rust-lang/crates.io-index" 1887 + checksum = "31e24f1ad8321ca0e8a1e0ac13f23cb668e6f5466c2c57319f6a5cf1cc8e3b1c" 1888 + dependencies = [ 1889 + "linked-hash-map", 1890 + ] 1891 + 1892 + [[package]] 1893 + name = "lru-slab" 1894 + version = "0.1.2" 1895 + source = "registry+https://github.com/rust-lang/crates.io-index" 1896 + checksum = "112b39cec0b298b6c1999fee3e31427f74f676e4cb9879ed1a121b43661a4154" 1897 + 1898 + [[package]] 1899 + name = "mac" 1900 + version = "0.1.1" 1901 + source = "registry+https://github.com/rust-lang/crates.io-index" 1902 + checksum = "c41e0c4fef86961ac6d6f8a82609f55f31b05e4fce149ac5710e439df7619ba4" 1903 + 1904 + [[package]] 1905 + name = "maitake-sync" 1906 + version = "0.1.2" 1907 + source = "registry+https://github.com/rust-lang/crates.io-index" 1908 + checksum = "6816ab14147f80234c675b80ed6dc4f440d8a1cefc158e766067aedb84c0bcd5" 1909 + dependencies = [ 1910 + "cordyceps", 1911 + "loom", 1912 + "mycelium-bitfield", 1913 + "pin-project", 1914 + "portable-atomic", 1915 + ] 1916 + 1917 + [[package]] 1918 + name = "markup5ever" 1919 + version = "0.12.1" 1920 + source = "registry+https://github.com/rust-lang/crates.io-index" 1921 + checksum = "16ce3abbeba692c8b8441d036ef91aea6df8da2c6b6e21c7e14d3c18e526be45" 1922 + dependencies = [ 1923 + "log", 1924 + "phf", 1925 + "phf_codegen", 1926 + "string_cache", 1927 + "string_cache_codegen", 1928 + "tendril", 1929 + ] 1930 + 1931 + [[package]] 1932 + name = "markup5ever_rcdom" 1933 + version = "0.3.0" 1934 + source = "registry+https://github.com/rust-lang/crates.io-index" 1935 + checksum = "edaa21ab3701bfee5099ade5f7e1f84553fd19228cf332f13cd6e964bf59be18" 1936 + dependencies = [ 1937 + "html5ever", 1938 + "markup5ever", 1939 + "tendril", 1940 + "xml5ever", 1941 + ] 1942 + 1943 + [[package]] 1944 + name = "match-lookup" 1945 + version = "0.1.2" 1946 + source = "registry+https://github.com/rust-lang/crates.io-index" 1947 + checksum = "757aee279b8bdbb9f9e676796fd459e4207a1f986e87886700abf589f5abf771" 1948 + dependencies = [ 1949 + "proc-macro2", 1950 + "quote", 1951 + "syn 2.0.119", 1952 + ] 1953 + 1954 + [[package]] 1955 + name = "matchers" 1956 + version = "0.2.0" 1957 + source = "registry+https://github.com/rust-lang/crates.io-index" 1958 + checksum = "d1525a2a28c7f4fa0fc98bb91ae755d1e2d1505079e05539e35bc876b5d65ae9" 1959 + dependencies = [ 1960 + "regex-automata", 1961 + ] 1962 + 1963 + [[package]] 1964 + name = "memchr" 1965 + version = "2.8.3" 1966 + source = "registry+https://github.com/rust-lang/crates.io-index" 1967 + checksum = "cf8baf1c55e62ffcace7a9f06f4bd9cd3f0c4beb022d3b367256b91b87513d98" 1968 + 1969 + [[package]] 1970 + name = "miette" 1971 + version = "7.6.0" 1972 + source = "registry+https://github.com/rust-lang/crates.io-index" 1973 + checksum = "5f98efec8807c63c752b5bd61f862c165c115b0a35685bdcfd9238c7aeb592b7" 1974 + dependencies = [ 1975 + "cfg-if", 1976 + "miette-derive", 1977 + "unicode-width", 1978 + ] 1979 + 1980 + [[package]] 1981 + name = "miette-derive" 1982 + version = "7.6.0" 1983 + source = "registry+https://github.com/rust-lang/crates.io-index" 1984 + checksum = "db5b29714e950dbb20d5e6f74f9dcec4edbcc1067bb7f8ed198c097b8c1a818b" 1985 + dependencies = [ 1986 + "proc-macro2", 1987 + "quote", 1988 + "syn 2.0.119", 1989 + ] 1990 + 1991 + [[package]] 1992 + name = "mime" 1993 + version = "0.3.17" 1994 + source = "registry+https://github.com/rust-lang/crates.io-index" 1995 + checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" 1996 + 1997 + [[package]] 1998 + name = "mini-moka-wasm" 1999 + version = "0.10.99" 2000 + source = "registry+https://github.com/rust-lang/crates.io-index" 2001 + checksum = "0102b9a2ad50fa47ca89eead2316c8222285ecfbd3f69ce99564fbe4253866e8" 2002 + dependencies = [ 2003 + "crossbeam-channel", 2004 + "crossbeam-utils", 2005 + "dashmap", 2006 + "smallvec", 2007 + "tagptr", 2008 + "triomphe", 2009 + ] 2010 + 2011 + [[package]] 2012 + name = "miniz_oxide" 2013 + version = "0.8.9" 2014 + source = "registry+https://github.com/rust-lang/crates.io-index" 2015 + checksum = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316" 2016 + dependencies = [ 2017 + "adler2", 2018 + "simd-adler32", 2019 + ] 2020 + 2021 + [[package]] 2022 + name = "mio" 2023 + version = "1.2.2" 2024 + source = "registry+https://github.com/rust-lang/crates.io-index" 2025 + checksum = "30d65c71f1ce40ab09135ce117d742b9f8a19ff91a41a8b57ed50bc2de59c427" 2026 + dependencies = [ 2027 + "libc", 2028 + "wasi", 2029 + "windows-sys 0.61.2", 2030 + ] 2031 + 2032 + [[package]] 2033 + name = "multibase" 2034 + version = "0.9.3" 2035 + source = "registry+https://github.com/rust-lang/crates.io-index" 2036 + checksum = "7e0e4a371cbf1dfd666b658ba137763edb23c45beb43cfe369b5593cd6b437b6" 2037 + dependencies = [ 2038 + "base-x", 2039 + "base256emoji", 2040 + "base45", 2041 + "data-encoding", 2042 + "data-encoding-macro", 2043 + ] 2044 + 2045 + [[package]] 2046 + name = "multihash" 2047 + version = "0.19.5" 2048 + source = "registry+https://github.com/rust-lang/crates.io-index" 2049 + checksum = "577c63b00ad74d57e8c9aa870b5fccebf2fd64a308a5aee9f1bb88e4aea19447" 2050 + dependencies = [ 2051 + "serde", 2052 + "unsigned-varint", 2053 + ] 2054 + 2055 + [[package]] 2056 + name = "mycelium-bitfield" 2057 + version = "0.1.5" 2058 + source = "registry+https://github.com/rust-lang/crates.io-index" 2059 + checksum = "24e0cc5e2c585acbd15c5ce911dff71e1f4d5313f43345873311c4f5efd741cc" 2060 + 2061 + [[package]] 2062 + name = "n0-future" 2063 + version = "0.1.3" 2064 + source = "registry+https://github.com/rust-lang/crates.io-index" 2065 + checksum = "7bb0e5d99e681ab3c938842b96fcb41bf8a7bb4bfdb11ccbd653a7e83e06c794" 2066 + dependencies = [ 2067 + "cfg_aliases", 2068 + "derive_more", 2069 + "futures-buffered", 2070 + "futures-lite", 2071 + "futures-util", 2072 + "js-sys", 2073 + "pin-project", 2074 + "send_wrapper", 2075 + "tokio", 2076 + "tokio-util", 2077 + "wasm-bindgen", 2078 + "wasm-bindgen-futures", 2079 + "web-time", 2080 + ] 2081 + 2082 + [[package]] 2083 + name = "ndk-context" 2084 + version = "0.1.1" 2085 + source = "registry+https://github.com/rust-lang/crates.io-index" 2086 + checksum = "27b02d87554356db9e9a873add8782d4ea6e3e58ea071a9adb9a2e8ddb884a8b" 2087 + 2088 + [[package]] 2089 + name = "new_debug_unreachable" 2090 + version = "1.0.6" 2091 + source = "registry+https://github.com/rust-lang/crates.io-index" 2092 + checksum = "650eef8c711430f1a879fdd01d4745a7deea475becfb90269c06775983bbf086" 2093 + 2094 + [[package]] 2095 + name = "nu-ansi-term" 2096 + version = "0.50.3" 2097 + source = "registry+https://github.com/rust-lang/crates.io-index" 2098 + checksum = "7957b9740744892f114936ab4a57b3f487491bbeafaf8083688b16841a4240e5" 2099 + dependencies = [ 2100 + "windows-sys 0.61.2", 2101 + ] 2102 + 2103 + [[package]] 2104 + name = "num-bigint-dig" 2105 + version = "0.8.6" 2106 + source = "registry+https://github.com/rust-lang/crates.io-index" 2107 + checksum = "e661dda6640fad38e827a6d4a310ff4763082116fe217f279885c97f511bb0b7" 2108 + dependencies = [ 2109 + "lazy_static", 2110 + "libm", 2111 + "num-integer", 2112 + "num-iter", 2113 + "num-traits", 2114 + "rand 0.8.7", 2115 + "smallvec", 2116 + "zeroize", 2117 + ] 2118 + 2119 + [[package]] 2120 + name = "num-conv" 2121 + version = "0.2.2" 2122 + source = "registry+https://github.com/rust-lang/crates.io-index" 2123 + checksum = "521739c6d2bac4aa25192232afe6841231376b2b26d4d9fae5ecf8ca5772e441" 2124 + 2125 + [[package]] 2126 + name = "num-integer" 2127 + version = "0.1.46" 2128 + source = "registry+https://github.com/rust-lang/crates.io-index" 2129 + checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" 2130 + dependencies = [ 2131 + "num-traits", 2132 + ] 2133 + 2134 + [[package]] 2135 + name = "num-iter" 2136 + version = "0.1.46" 2137 + source = "registry+https://github.com/rust-lang/crates.io-index" 2138 + checksum = "c92800bd69a1eac91786bcfe9da64a897eb72911b8dc3095decbd07429e8048b" 2139 + dependencies = [ 2140 + "num-integer", 2141 + "num-traits", 2142 + ] 2143 + 2144 + [[package]] 2145 + name = "num-traits" 2146 + version = "0.2.19" 2147 + source = "registry+https://github.com/rust-lang/crates.io-index" 2148 + checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" 2149 + dependencies = [ 2150 + "autocfg", 2151 + "libm", 2152 + ] 2153 + 2154 + [[package]] 2155 + name = "objc2" 2156 + version = "0.6.4" 2157 + source = "registry+https://github.com/rust-lang/crates.io-index" 2158 + checksum = "3a12a8ed07aefc768292f076dc3ac8c48f3781c8f2d5851dd3d98950e8c5a89f" 2159 + dependencies = [ 2160 + "objc2-encode", 2161 + ] 2162 + 2163 + [[package]] 2164 + name = "objc2-encode" 2165 + version = "4.1.0" 2166 + source = "registry+https://github.com/rust-lang/crates.io-index" 2167 + checksum = "ef25abbcd74fb2609453eb695bd2f860d389e457f67dc17cafc8b8cbc89d0c33" 2168 + 2169 + [[package]] 2170 + name = "objc2-foundation" 2171 + version = "0.3.2" 2172 + source = "registry+https://github.com/rust-lang/crates.io-index" 2173 + checksum = "e3e0adef53c21f888deb4fa59fc59f7eb17404926ee8a6f59f5df0fd7f9f3272" 2174 + dependencies = [ 2175 + "bitflags", 2176 + "objc2", 2177 + ] 2178 + 2179 + [[package]] 2180 + name = "once_cell" 2181 + version = "1.21.4" 2182 + source = "registry+https://github.com/rust-lang/crates.io-index" 2183 + checksum = "9f7c3e4beb33f85d45ae3e3a1792185706c8e16d043238c593331cc7cd313b50" 2184 + 2185 + [[package]] 2186 + name = "oxilangtag" 2187 + version = "0.1.6" 2188 + source = "registry+https://github.com/rust-lang/crates.io-index" 2189 + checksum = "5d3b4eb570abd4a1dcb062c31fd37b832264d9dc7292c3e69acfe926c87b063f" 2190 + dependencies = [ 2191 + "serde", 2192 + ] 2193 + 2194 + [[package]] 2195 + name = "p256" 2196 + version = "0.13.2" 2197 + source = "registry+https://github.com/rust-lang/crates.io-index" 2198 + checksum = "c9863ad85fa8f4460f9c48cb909d38a0d689dba1f6f6988a5e3e0d31071bcd4b" 2199 + dependencies = [ 2200 + "ecdsa", 2201 + "elliptic-curve", 2202 + "primeorder", 2203 + "sha2", 2204 + ] 2205 + 2206 + [[package]] 2207 + name = "p384" 2208 + version = "0.13.1" 2209 + source = "registry+https://github.com/rust-lang/crates.io-index" 2210 + checksum = "fe42f1670a52a47d448f14b6a5c61dd78fce51856e68edaa38f7ae3a46b8d6b6" 2211 + dependencies = [ 2212 + "ecdsa", 2213 + "elliptic-curve", 2214 + "primeorder", 2215 + "sha2", 2216 + ] 2217 + 2218 + [[package]] 2219 + name = "parking" 2220 + version = "2.2.1" 2221 + source = "registry+https://github.com/rust-lang/crates.io-index" 2222 + checksum = "f38d5652c16fde515bb1ecef450ab0f6a219d619a7274976324d5e377f7dceba" 2223 + 2224 + [[package]] 2225 + name = "parking_lot" 2226 + version = "0.12.5" 2227 + source = "registry+https://github.com/rust-lang/crates.io-index" 2228 + checksum = "93857453250e3077bd71ff98b6a65ea6621a19bb0f559a85248955ac12c45a1a" 2229 + dependencies = [ 2230 + "lock_api", 2231 + "parking_lot_core", 2232 + ] 2233 + 2234 + [[package]] 2235 + name = "parking_lot_core" 2236 + version = "0.9.12" 2237 + source = "registry+https://github.com/rust-lang/crates.io-index" 2238 + checksum = "2621685985a2ebf1c516881c026032ac7deafcda1a2c9b7850dc81e3dfcb64c1" 2239 + dependencies = [ 2240 + "cfg-if", 2241 + "libc", 2242 + "redox_syscall", 2243 + "smallvec", 2244 + "windows-link", 2245 + ] 2246 + 2247 + [[package]] 2248 + name = "pem-rfc7468" 2249 + version = "0.7.0" 2250 + source = "registry+https://github.com/rust-lang/crates.io-index" 2251 + checksum = "88b39c9bfcfc231068454382784bb460aae594343fb030d46e9f50a645418412" 2252 + dependencies = [ 2253 + "base64ct", 2254 + ] 2255 + 2256 + [[package]] 2257 + name = "percent-encoding" 2258 + version = "2.3.2" 2259 + source = "registry+https://github.com/rust-lang/crates.io-index" 2260 + checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" 2261 + 2262 + [[package]] 2263 + name = "phf" 2264 + version = "0.11.3" 2265 + source = "registry+https://github.com/rust-lang/crates.io-index" 2266 + checksum = "1fd6780a80ae0c52cc120a26a1a42c1ae51b247a253e4e06113d23d2c2edd078" 2267 + dependencies = [ 2268 + "phf_macros", 2269 + "phf_shared", 2270 + ] 2271 + 2272 + [[package]] 2273 + name = "phf_codegen" 2274 + version = "0.11.3" 2275 + source = "registry+https://github.com/rust-lang/crates.io-index" 2276 + checksum = "aef8048c789fa5e851558d709946d6d79a8ff88c0440c587967f8e94bfb1216a" 2277 + dependencies = [ 2278 + "phf_generator", 2279 + "phf_shared", 2280 + ] 2281 + 2282 + [[package]] 2283 + name = "phf_generator" 2284 + version = "0.11.3" 2285 + source = "registry+https://github.com/rust-lang/crates.io-index" 2286 + checksum = "3c80231409c20246a13fddb31776fb942c38553c51e871f8cbd687a4cfb5843d" 2287 + dependencies = [ 2288 + "phf_shared", 2289 + "rand 0.8.7", 2290 + ] 2291 + 2292 + [[package]] 2293 + name = "phf_macros" 2294 + version = "0.11.3" 2295 + source = "registry+https://github.com/rust-lang/crates.io-index" 2296 + checksum = "f84ac04429c13a7ff43785d75ad27569f2951ce0ffd30a3321230db2fc727216" 2297 + dependencies = [ 2298 + "phf_generator", 2299 + "phf_shared", 2300 + "proc-macro2", 2301 + "quote", 2302 + "syn 2.0.119", 2303 + ] 2304 + 2305 + [[package]] 2306 + name = "phf_shared" 2307 + version = "0.11.3" 2308 + source = "registry+https://github.com/rust-lang/crates.io-index" 2309 + checksum = "67eabc2ef2a60eb7faa00097bd1ffdb5bd28e62bf39990626a582201b7a754e5" 2310 + dependencies = [ 2311 + "siphasher", 2312 + ] 2313 + 2314 + [[package]] 2315 + name = "pin-project" 2316 + version = "1.1.13" 2317 + source = "registry+https://github.com/rust-lang/crates.io-index" 2318 + checksum = "2466b2336ed02bcdca6b294417127b90ec92038d1d5c4fbeac971a922e0e0924" 2319 + dependencies = [ 2320 + "pin-project-internal", 2321 + ] 2322 + 2323 + [[package]] 2324 + name = "pin-project-internal" 2325 + version = "1.1.13" 2326 + source = "registry+https://github.com/rust-lang/crates.io-index" 2327 + checksum = "c96395f0a926bc13b1c17622aaddda1ecb55d49c8f1bf9777e4d877800a43f8b" 2328 + dependencies = [ 2329 + "proc-macro2", 2330 + "quote", 2331 + "syn 2.0.119", 2332 + ] 2333 + 2334 + [[package]] 2335 + name = "pin-project-lite" 2336 + version = "0.2.17" 2337 + source = "registry+https://github.com/rust-lang/crates.io-index" 2338 + checksum = "a89322df9ebe1c1578d689c92318e070967d1042b512afbe49518723f4e6d5cd" 2339 + 2340 + [[package]] 2341 + name = "pkcs1" 2342 + version = "0.7.5" 2343 + source = "registry+https://github.com/rust-lang/crates.io-index" 2344 + checksum = "c8ffb9f10fa047879315e6625af03c164b16962a5368d724ed16323b68ace47f" 2345 + dependencies = [ 2346 + "der", 2347 + "pkcs8", 2348 + "spki", 2349 + ] 2350 + 2351 + [[package]] 2352 + name = "pkcs8" 2353 + version = "0.10.2" 2354 + source = "registry+https://github.com/rust-lang/crates.io-index" 2355 + checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7" 2356 + dependencies = [ 2357 + "der", 2358 + "spki", 2359 + ] 2360 + 2361 + [[package]] 2362 + name = "portable-atomic" 2363 + version = "1.14.0" 2364 + source = "registry+https://github.com/rust-lang/crates.io-index" 2365 + checksum = "3d20d5497ef88037a52ff98267d066e7f11fcc5e99bbfbd58a42336193aacec3" 2366 + 2367 + [[package]] 2368 + name = "postcard" 2369 + version = "1.1.3" 2370 + source = "registry+https://github.com/rust-lang/crates.io-index" 2371 + checksum = "6764c3b5dd454e283a30e6dfe78e9b31096d9e32036b5d1eaac7a6119ccb9a24" 2372 + dependencies = [ 2373 + "cobs", 2374 + "embedded-io 0.4.0", 2375 + "embedded-io 0.6.1", 2376 + "heapless", 2377 + "serde", 2378 + ] 2379 + 2380 + [[package]] 2381 + name = "potential_utf" 2382 + version = "0.1.5" 2383 + source = "registry+https://github.com/rust-lang/crates.io-index" 2384 + checksum = "0103b1cef7ec0cf76490e969665504990193874ea05c85ff9bab8b911d0a0564" 2385 + dependencies = [ 2386 + "zerovec", 2387 + ] 2388 + 2389 + [[package]] 2390 + name = "powerfmt" 2391 + version = "0.2.0" 2392 + source = "registry+https://github.com/rust-lang/crates.io-index" 2393 + checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" 2394 + 2395 + [[package]] 2396 + name = "ppv-lite86" 2397 + version = "0.2.21" 2398 + source = "registry+https://github.com/rust-lang/crates.io-index" 2399 + checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9" 2400 + dependencies = [ 2401 + "zerocopy", 2402 + ] 2403 + 2404 + [[package]] 2405 + name = "precomputed-hash" 2406 + version = "0.1.1" 2407 + source = "registry+https://github.com/rust-lang/crates.io-index" 2408 + checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c" 2409 + 2410 + [[package]] 2411 + name = "prettyplease" 2412 + version = "0.2.37" 2413 + source = "registry+https://github.com/rust-lang/crates.io-index" 2414 + checksum = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b" 2415 + dependencies = [ 2416 + "proc-macro2", 2417 + "syn 2.0.119", 2418 + ] 2419 + 2420 + [[package]] 2421 + name = "primeorder" 2422 + version = "0.13.6" 2423 + source = "registry+https://github.com/rust-lang/crates.io-index" 2424 + checksum = "353e1ca18966c16d9deb1c69278edbc5f194139612772bd9537af60ac231e1e6" 2425 + dependencies = [ 2426 + "elliptic-curve", 2427 + ] 2428 + 2429 + [[package]] 2430 + name = "proc-macro2" 2431 + version = "1.0.107" 2432 + source = "registry+https://github.com/rust-lang/crates.io-index" 2433 + checksum = "985e7ec9bb745e6ce6535b544d84d6cd6f7ad8bd711c398938ae983b91a766d9" 2434 + dependencies = [ 2435 + "unicode-ident", 2436 + ] 2437 + 2438 + [[package]] 2439 + name = "quinn" 2440 + version = "0.11.11" 2441 + source = "registry+https://github.com/rust-lang/crates.io-index" 2442 + checksum = "0c1a41e437b6bbd489372cd4971de128e85c855f56c57f283d20ff016cf7c0a8" 2443 + dependencies = [ 2444 + "bytes", 2445 + "cfg_aliases", 2446 + "pin-project-lite", 2447 + "quinn-proto", 2448 + "quinn-udp", 2449 + "rustc-hash", 2450 + "rustls", 2451 + "socket2", 2452 + "thiserror 2.0.19", 2453 + "tokio", 2454 + "tracing", 2455 + "web-time", 2456 + ] 2457 + 2458 + [[package]] 2459 + name = "quinn-proto" 2460 + version = "0.11.16" 2461 + source = "registry+https://github.com/rust-lang/crates.io-index" 2462 + checksum = "2f4bfc015262b9df63c8845072ce59068853ff5872180c2ce2f13038b970e560" 2463 + dependencies = [ 2464 + "bytes", 2465 + "getrandom 0.4.3", 2466 + "lru-slab", 2467 + "rand 0.10.2", 2468 + "rand_pcg", 2469 + "ring", 2470 + "rustc-hash", 2471 + "rustls", 2472 + "rustls-pki-types", 2473 + "slab", 2474 + "thiserror 2.0.19", 2475 + "tinyvec", 2476 + "tracing", 2477 + "web-time", 2478 + ] 2479 + 2480 + [[package]] 2481 + name = "quinn-udp" 2482 + version = "0.5.15" 2483 + source = "registry+https://github.com/rust-lang/crates.io-index" 2484 + checksum = "35a133f956daabe89a61a685c2649f13d82d5aa4bd5d12d1277e1072a21c0694" 2485 + dependencies = [ 2486 + "cfg_aliases", 2487 + "libc", 2488 + "once_cell", 2489 + "socket2", 2490 + "tracing", 2491 + "windows-sys 0.61.2", 2492 + ] 2493 + 2494 + [[package]] 2495 + name = "quote" 2496 + version = "1.0.47" 2497 + source = "registry+https://github.com/rust-lang/crates.io-index" 2498 + checksum = "1fbf4db142a473a8d80c26bbf18454ed458bf8d26c8219c331daecfdbd079001" 2499 + dependencies = [ 2500 + "proc-macro2", 2501 + ] 2502 + 2503 + [[package]] 2504 + name = "r-efi" 2505 + version = "5.3.0" 2506 + source = "registry+https://github.com/rust-lang/crates.io-index" 2507 + checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" 2508 + 2509 + [[package]] 2510 + name = "r-efi" 2511 + version = "6.0.0" 2512 + source = "registry+https://github.com/rust-lang/crates.io-index" 2513 + checksum = "f8dcc9c7d52a811697d2151c701e0d08956f92b0e24136cf4cf27b57a6a0d9bf" 2514 + 2515 + [[package]] 2516 + name = "rand" 2517 + version = "0.8.7" 2518 + source = "registry+https://github.com/rust-lang/crates.io-index" 2519 + checksum = "22f6172bdec972074665ed81ed53b71da00bfc44b65a753cfde883ec4c702a1a" 2520 + dependencies = [ 2521 + "libc", 2522 + "rand_chacha 0.3.1", 2523 + "rand_core 0.6.4", 2524 + ] 2525 + 2526 + [[package]] 2527 + name = "rand" 2528 + version = "0.9.5" 2529 + source = "registry+https://github.com/rust-lang/crates.io-index" 2530 + checksum = "b9ef1d0d795eb7d84685bca4f72f3649f064e6641543d3a8c415898726a57b41" 2531 + dependencies = [ 2532 + "rand_chacha 0.9.0", 2533 + "rand_core 0.9.5", 2534 + ] 2535 + 2536 + [[package]] 2537 + name = "rand" 2538 + version = "0.10.2" 2539 + source = "registry+https://github.com/rust-lang/crates.io-index" 2540 + checksum = "c7f5fa3a058cd35567ef9bfa5e75732bee0f9e4c55fa90477bef2dfcdbc4be80" 2541 + dependencies = [ 2542 + "chacha20", 2543 + "getrandom 0.4.3", 2544 + "rand_core 0.10.1", 2545 + ] 2546 + 2547 + [[package]] 2548 + name = "rand_chacha" 2549 + version = "0.3.1" 2550 + source = "registry+https://github.com/rust-lang/crates.io-index" 2551 + checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" 2552 + dependencies = [ 2553 + "ppv-lite86", 2554 + "rand_core 0.6.4", 2555 + ] 2556 + 2557 + [[package]] 2558 + name = "rand_chacha" 2559 + version = "0.9.0" 2560 + source = "registry+https://github.com/rust-lang/crates.io-index" 2561 + checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" 2562 + dependencies = [ 2563 + "ppv-lite86", 2564 + "rand_core 0.9.5", 2565 + ] 2566 + 2567 + [[package]] 2568 + name = "rand_core" 2569 + version = "0.6.4" 2570 + source = "registry+https://github.com/rust-lang/crates.io-index" 2571 + checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" 2572 + dependencies = [ 2573 + "getrandom 0.2.17", 2574 + ] 2575 + 2576 + [[package]] 2577 + name = "rand_core" 2578 + version = "0.9.5" 2579 + source = "registry+https://github.com/rust-lang/crates.io-index" 2580 + checksum = "76afc826de14238e6e8c374ddcc1fa19e374fd8dd986b0d2af0d02377261d83c" 2581 + dependencies = [ 2582 + "getrandom 0.3.4", 2583 + ] 2584 + 2585 + [[package]] 2586 + name = "rand_core" 2587 + version = "0.10.1" 2588 + source = "registry+https://github.com/rust-lang/crates.io-index" 2589 + checksum = "63b8176103e19a2643978565ca18b50549f6101881c443590420e4dc998a3c69" 2590 + 2591 + [[package]] 2592 + name = "rand_pcg" 2593 + version = "0.10.2" 2594 + source = "registry+https://github.com/rust-lang/crates.io-index" 2595 + checksum = "caa0f4137e1c0a72f4c651489402276c8e8e1cf081f3b0ba156d2cbeef09e86a" 2596 + dependencies = [ 2597 + "rand_core 0.10.1", 2598 + ] 2599 + 2600 + [[package]] 2601 + name = "redox_syscall" 2602 + version = "0.5.18" 2603 + source = "registry+https://github.com/rust-lang/crates.io-index" 2604 + checksum = "ed2bf2547551a7053d6fdfafda3f938979645c44812fbfcda098faae3f1a362d" 2605 + dependencies = [ 2606 + "bitflags", 2607 + ] 2608 + 2609 + [[package]] 2610 + name = "ref-cast" 2611 + version = "1.0.26" 2612 + source = "registry+https://github.com/rust-lang/crates.io-index" 2613 + checksum = "216e8f773d7923bcba9ceb86a86c93cabb3903a11872fc3f138c49630e50b96d" 2614 + dependencies = [ 2615 + "ref-cast-impl", 2616 + ] 2617 + 2618 + [[package]] 2619 + name = "ref-cast-impl" 2620 + version = "1.0.26" 2621 + source = "registry+https://github.com/rust-lang/crates.io-index" 2622 + checksum = "2c9283685feec7d69af75fb0e858d5e7378f33fe4fc699383b2916ab9273e03c" 2623 + dependencies = [ 2624 + "proc-macro2", 2625 + "quote", 2626 + "syn 3.0.3", 2627 + ] 2628 + 2629 + [[package]] 2630 + name = "regex" 2631 + version = "1.13.1" 2632 + source = "registry+https://github.com/rust-lang/crates.io-index" 2633 + checksum = "f020237b6c8eed93db2e2cb53c00c60a8e1bc73da7d073199a1180401450218d" 2634 + dependencies = [ 2635 + "aho-corasick", 2636 + "memchr", 2637 + "regex-automata", 2638 + "regex-syntax", 2639 + ] 2640 + 2641 + [[package]] 2642 + name = "regex-automata" 2643 + version = "0.4.16" 2644 + source = "registry+https://github.com/rust-lang/crates.io-index" 2645 + checksum = "8fcfdb36bda0c880c5931cdc7a2bcdc8ba4556847b9d912bca70bc94708711ad" 2646 + dependencies = [ 2647 + "aho-corasick", 2648 + "memchr", 2649 + "regex-syntax", 2650 + ] 2651 + 2652 + [[package]] 2653 + name = "regex-lite" 2654 + version = "0.1.9" 2655 + source = "registry+https://github.com/rust-lang/crates.io-index" 2656 + checksum = "cab834c73d247e67f4fae452806d17d3c7501756d98c8808d7c9c7aa7d18f973" 2657 + 2658 + [[package]] 2659 + name = "regex-syntax" 2660 + version = "0.8.11" 2661 + source = "registry+https://github.com/rust-lang/crates.io-index" 2662 + checksum = "d6f6ff9a378485b298a5286656da665ba74413d36db0979633275d2e708145d4" 2663 + 2664 + [[package]] 2665 + name = "reqwest" 2666 + version = "0.12.28" 2667 + source = "registry+https://github.com/rust-lang/crates.io-index" 2668 + checksum = "eddd3ca559203180a307f12d114c268abf583f59b03cb906fd0b3ff8646c1147" 2669 + dependencies = [ 2670 + "base64", 2671 + "bytes", 2672 + "encoding_rs", 2673 + "futures-core", 2674 + "futures-util", 2675 + "h2", 2676 + "http", 2677 + "http-body", 2678 + "http-body-util", 2679 + "hyper", 2680 + "hyper-rustls", 2681 + "hyper-util", 2682 + "js-sys", 2683 + "log", 2684 + "mime", 2685 + "percent-encoding", 2686 + "pin-project-lite", 2687 + "quinn", 2688 + "rustls", 2689 + "rustls-pki-types", 2690 + "serde", 2691 + "serde_json", 2692 + "serde_urlencoded", 2693 + "sync_wrapper", 2694 + "tokio", 2695 + "tokio-rustls", 2696 + "tokio-util", 2697 + "tower", 2698 + "tower-http", 2699 + "tower-service", 2700 + "url", 2701 + "wasm-bindgen", 2702 + "wasm-bindgen-futures", 2703 + "wasm-streams", 2704 + "web-sys", 2705 + "webpki-roots", 2706 + ] 2707 + 2708 + [[package]] 2709 + name = "resolv-conf" 2710 + version = "0.7.6" 2711 + source = "registry+https://github.com/rust-lang/crates.io-index" 2712 + checksum = "1e061d1b48cb8d38042de4ae0a7a6401009d6143dc80d2e2d6f31f0bdd6470c7" 2713 + 2714 + [[package]] 2715 + name = "rfc6979" 2716 + version = "0.4.0" 2717 + source = "registry+https://github.com/rust-lang/crates.io-index" 2718 + checksum = "f8dd2a808d456c4a54e300a23e9f5a67e122c3024119acbfd73e3bf664491cb2" 2719 + dependencies = [ 2720 + "hmac", 2721 + "subtle", 2722 + ] 2723 + 2724 + [[package]] 2725 + name = "ring" 2726 + version = "0.17.14" 2727 + source = "registry+https://github.com/rust-lang/crates.io-index" 2728 + checksum = "a4689e6c2294d81e88dc6261c768b63bc4fcdb852be6d1352498b114f61383b7" 2729 + dependencies = [ 2730 + "cc", 2731 + "cfg-if", 2732 + "getrandom 0.2.17", 2733 + "libc", 2734 + "untrusted", 2735 + "windows-sys 0.52.0", 2736 + ] 2737 + 2738 + [[package]] 2739 + name = "rocksky-demo-rs" 2740 + version = "0.1.0" 2741 + dependencies = [ 2742 + "rocksky-sdk", 2743 + "tokio", 2744 + ] 2745 + 2746 + [[package]] 2747 + name = "rocksky-sdk" 2748 + version = "0.1.0" 2749 + dependencies = [ 2750 + "chrono", 2751 + "futures", 2752 + "jacquard", 2753 + "jacquard-common", 2754 + "jacquard-derive", 2755 + "jacquard-lexicon", 2756 + "reqwest", 2757 + "serde", 2758 + "serde_json", 2759 + "sha2", 2760 + "smol_str", 2761 + "thiserror 2.0.19", 2762 + "tokio", 2763 + "tracing", 2764 + ] 2765 + 2766 + [[package]] 2767 + name = "rsa" 2768 + version = "0.9.10" 2769 + source = "registry+https://github.com/rust-lang/crates.io-index" 2770 + checksum = "b8573f03f5883dcaebdfcf4725caa1ecb9c15b2ef50c43a07b816e06799bb12d" 2771 + dependencies = [ 2772 + "const-oid", 2773 + "digest", 2774 + "num-bigint-dig", 2775 + "num-integer", 2776 + "num-traits", 2777 + "pkcs1", 2778 + "pkcs8", 2779 + "rand_core 0.6.4", 2780 + "signature", 2781 + "spki", 2782 + "subtle", 2783 + "zeroize", 2784 + ] 2785 + 2786 + [[package]] 2787 + name = "rustc-hash" 2788 + version = "2.1.3" 2789 + source = "registry+https://github.com/rust-lang/crates.io-index" 2790 + checksum = "6b1e7f9a428571be2dc5bc0505c13fb6bf936822b894ec87abf8a08a4e51742d" 2791 + 2792 + [[package]] 2793 + name = "rustc_version" 2794 + version = "0.4.1" 2795 + source = "registry+https://github.com/rust-lang/crates.io-index" 2796 + checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" 2797 + dependencies = [ 2798 + "semver", 2799 + ] 2800 + 2801 + [[package]] 2802 + name = "rustls" 2803 + version = "0.23.42" 2804 + source = "registry+https://github.com/rust-lang/crates.io-index" 2805 + checksum = "3c54fcab019b409d04215d3a17cb438fd7fbf192ee61461f20f4fe18704bc138" 2806 + dependencies = [ 2807 + "once_cell", 2808 + "ring", 2809 + "rustls-pki-types", 2810 + "rustls-webpki", 2811 + "subtle", 2812 + "zeroize", 2813 + ] 2814 + 2815 + [[package]] 2816 + name = "rustls-pki-types" 2817 + version = "1.15.0" 2818 + source = "registry+https://github.com/rust-lang/crates.io-index" 2819 + checksum = "764899a24af3980067ee14bc143654f297b22eaebfe3c7b6b211920a5a59b046" 2820 + dependencies = [ 2821 + "web-time", 2822 + "zeroize", 2823 + ] 2824 + 2825 + [[package]] 2826 + name = "rustls-webpki" 2827 + version = "0.103.13" 2828 + source = "registry+https://github.com/rust-lang/crates.io-index" 2829 + checksum = "61c429a8649f110dddef65e2a5ad240f747e85f7758a6bccc7e5777bd33f756e" 2830 + dependencies = [ 2831 + "ring", 2832 + "rustls-pki-types", 2833 + "untrusted", 2834 + ] 2835 + 2836 + [[package]] 2837 + name = "rustversion" 2838 + version = "1.0.23" 2839 + source = "registry+https://github.com/rust-lang/crates.io-index" 2840 + checksum = "cf54715a573b99ac80df0bc206da022bcd442c974952c7b9720069370852e21f" 2841 + 2842 + [[package]] 2843 + name = "ryu" 2844 + version = "1.0.23" 2845 + source = "registry+https://github.com/rust-lang/crates.io-index" 2846 + checksum = "9774ba4a74de5f7b1c1451ed6cd5285a32eddb5cccb8cc655a4e50009e06477f" 2847 + 2848 + [[package]] 2849 + name = "same-file" 2850 + version = "1.0.6" 2851 + source = "registry+https://github.com/rust-lang/crates.io-index" 2852 + checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" 2853 + dependencies = [ 2854 + "winapi-util", 2855 + ] 2856 + 2857 + [[package]] 2858 + name = "scoped-tls" 2859 + version = "1.0.1" 2860 + source = "registry+https://github.com/rust-lang/crates.io-index" 2861 + checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294" 2862 + 2863 + [[package]] 2864 + name = "scopeguard" 2865 + version = "1.2.0" 2866 + source = "registry+https://github.com/rust-lang/crates.io-index" 2867 + checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" 2868 + 2869 + [[package]] 2870 + name = "sec1" 2871 + version = "0.7.3" 2872 + source = "registry+https://github.com/rust-lang/crates.io-index" 2873 + checksum = "d3e97a565f76233a6003f9f5c54be1d9c5bdfa3eccfb189469f11ec4901c47dc" 2874 + dependencies = [ 2875 + "base16ct", 2876 + "der", 2877 + "generic-array", 2878 + "pkcs8", 2879 + "subtle", 2880 + "zeroize", 2881 + ] 2882 + 2883 + [[package]] 2884 + name = "semver" 2885 + version = "1.0.28" 2886 + source = "registry+https://github.com/rust-lang/crates.io-index" 2887 + checksum = "8a7852d02fc848982e0c167ef163aaff9cd91dc640ba85e263cb1ce46fae51cd" 2888 + 2889 + [[package]] 2890 + name = "send_wrapper" 2891 + version = "0.6.0" 2892 + source = "registry+https://github.com/rust-lang/crates.io-index" 2893 + checksum = "cd0b0ec5f1c1ca621c432a25813d8d60c88abe6d3e08a3eb9cf37d97a0fe3d73" 2894 + 2895 + [[package]] 2896 + name = "serde" 2897 + version = "1.0.229" 2898 + source = "registry+https://github.com/rust-lang/crates.io-index" 2899 + checksum = "4148590afebada386688f18773da617792bf2ef03ffc1e4cbd2b1d45b023e0ba" 2900 + dependencies = [ 2901 + "serde_core", 2902 + "serde_derive", 2903 + ] 2904 + 2905 + [[package]] 2906 + name = "serde_bytes" 2907 + version = "0.11.19" 2908 + source = "registry+https://github.com/rust-lang/crates.io-index" 2909 + checksum = "a5d440709e79d88e51ac01c4b72fc6cb7314017bb7da9eeff678aa94c10e3ea8" 2910 + dependencies = [ 2911 + "serde", 2912 + "serde_core", 2913 + ] 2914 + 2915 + [[package]] 2916 + name = "serde_core" 2917 + version = "1.0.229" 2918 + source = "registry+https://github.com/rust-lang/crates.io-index" 2919 + checksum = "67dca2c9c51e58a4791a4b1ed58308b39c64224d349a935ab5039aa360942a48" 2920 + dependencies = [ 2921 + "serde_derive", 2922 + ] 2923 + 2924 + [[package]] 2925 + name = "serde_derive" 2926 + version = "1.0.229" 2927 + source = "registry+https://github.com/rust-lang/crates.io-index" 2928 + checksum = "e7a5d71263a5a7d47b41f6b3f06ba276f10cc18b0931f1799f710578e2309348" 2929 + dependencies = [ 2930 + "proc-macro2", 2931 + "quote", 2932 + "syn 3.0.3", 2933 + ] 2934 + 2935 + [[package]] 2936 + name = "serde_html_form" 2937 + version = "0.3.2" 2938 + source = "registry+https://github.com/rust-lang/crates.io-index" 2939 + checksum = "2acf96b1d9364968fce46ebb548f1c0e1d7eceae27bdff73865d42e6c7369d94" 2940 + dependencies = [ 2941 + "form_urlencoded", 2942 + "indexmap", 2943 + "itoa", 2944 + "serde_core", 2945 + ] 2946 + 2947 + [[package]] 2948 + name = "serde_ipld_dagcbor" 2949 + version = "0.6.4" 2950 + source = "registry+https://github.com/rust-lang/crates.io-index" 2951 + checksum = "46182f4f08349a02b45c998ba3215d3f9de826246ba02bb9dddfe9a2a2100778" 2952 + dependencies = [ 2953 + "cbor4ii", 2954 + "ipld-core", 2955 + "scopeguard", 2956 + "serde", 2957 + ] 2958 + 2959 + [[package]] 2960 + name = "serde_json" 2961 + version = "1.0.151" 2962 + source = "registry+https://github.com/rust-lang/crates.io-index" 2963 + checksum = "c841b55ecdae098c80dcae9cf767f6f8a0c2cdb3416bbef72181df4d0fe73f14" 2964 + dependencies = [ 2965 + "itoa", 2966 + "memchr", 2967 + "serde", 2968 + "serde_core", 2969 + "zmij", 2970 + ] 2971 + 2972 + [[package]] 2973 + name = "serde_path_to_error" 2974 + version = "0.1.20" 2975 + source = "registry+https://github.com/rust-lang/crates.io-index" 2976 + checksum = "10a9ff822e371bb5403e391ecd83e182e0e77ba7f6fe0160b795797109d1b457" 2977 + dependencies = [ 2978 + "itoa", 2979 + "serde", 2980 + "serde_core", 2981 + ] 2982 + 2983 + [[package]] 2984 + name = "serde_repr" 2985 + version = "0.1.21" 2986 + source = "registry+https://github.com/rust-lang/crates.io-index" 2987 + checksum = "8d3b1629de253c70a0508c3899572da79ca359fdab27c7920ff00406df418906" 2988 + dependencies = [ 2989 + "proc-macro2", 2990 + "quote", 2991 + "syn 3.0.3", 2992 + ] 2993 + 2994 + [[package]] 2995 + name = "serde_urlencoded" 2996 + version = "0.7.1" 2997 + source = "registry+https://github.com/rust-lang/crates.io-index" 2998 + checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" 2999 + dependencies = [ 3000 + "form_urlencoded", 3001 + "itoa", 3002 + "ryu", 3003 + "serde", 3004 + ] 3005 + 3006 + [[package]] 3007 + name = "serde_with" 3008 + version = "3.21.0" 3009 + source = "registry+https://github.com/rust-lang/crates.io-index" 3010 + checksum = "76a5c54c7310e7b8b9577c286d7e399ddd876c3e12b3ed917a8aabc4b96e9e8c" 3011 + dependencies = [ 3012 + "base64", 3013 + "bs58", 3014 + "chrono", 3015 + "hex", 3016 + "serde_core", 3017 + "serde_json", 3018 + "serde_with_macros", 3019 + "time", 3020 + ] 3021 + 3022 + [[package]] 3023 + name = "serde_with_macros" 3024 + version = "3.21.0" 3025 + source = "registry+https://github.com/rust-lang/crates.io-index" 3026 + checksum = "84d57bc0c8b9a17920c178daa6bb924850d54a9c97ab45194bb8c17ad66bb660" 3027 + dependencies = [ 3028 + "darling", 3029 + "proc-macro2", 3030 + "quote", 3031 + "syn 2.0.119", 3032 + ] 3033 + 3034 + [[package]] 3035 + name = "sha2" 3036 + version = "0.10.9" 3037 + source = "registry+https://github.com/rust-lang/crates.io-index" 3038 + checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283" 3039 + dependencies = [ 3040 + "cfg-if", 3041 + "cpufeatures 0.2.17", 3042 + "digest", 3043 + ] 3044 + 3045 + [[package]] 3046 + name = "sharded-slab" 3047 + version = "0.1.7" 3048 + source = "registry+https://github.com/rust-lang/crates.io-index" 3049 + checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6" 3050 + dependencies = [ 3051 + "lazy_static", 3052 + ] 3053 + 3054 + [[package]] 3055 + name = "shlex" 3056 + version = "2.0.1" 3057 + source = "registry+https://github.com/rust-lang/crates.io-index" 3058 + checksum = "f8fadd59c855ef2080decdef8ff161eb6661b86933c9d82e5ba29dc602a55aba" 3059 + 3060 + [[package]] 3061 + name = "signature" 3062 + version = "2.2.0" 3063 + source = "registry+https://github.com/rust-lang/crates.io-index" 3064 + checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" 3065 + dependencies = [ 3066 + "digest", 3067 + "rand_core 0.6.4", 3068 + ] 3069 + 3070 + [[package]] 3071 + name = "simd-adler32" 3072 + version = "0.3.10" 3073 + source = "registry+https://github.com/rust-lang/crates.io-index" 3074 + checksum = "3a219298ac11a56ea9a6d2120044824d6f01aeb034955e7af7bc16858527deea" 3075 + 3076 + [[package]] 3077 + name = "simd_cesu8" 3078 + version = "1.2.0" 3079 + source = "registry+https://github.com/rust-lang/crates.io-index" 3080 + checksum = "11031e251abf8611c80f460e19dbdeb54a66db918e49c65a7065b46ac7aec520" 3081 + dependencies = [ 3082 + "rustc_version", 3083 + "simdutf8", 3084 + ] 3085 + 3086 + [[package]] 3087 + name = "simdutf8" 3088 + version = "0.1.5" 3089 + source = "registry+https://github.com/rust-lang/crates.io-index" 3090 + checksum = "e3a9fe34e3e7a50316060351f37187a3f546bce95496156754b601a5fa71b76e" 3091 + 3092 + [[package]] 3093 + name = "siphasher" 3094 + version = "1.0.3" 3095 + source = "registry+https://github.com/rust-lang/crates.io-index" 3096 + checksum = "8ee5873ec9cce0195efcb7a4e9507a04cd49aec9c83d0389df45b1ef7ba2e649" 3097 + 3098 + [[package]] 3099 + name = "slab" 3100 + version = "0.4.12" 3101 + source = "registry+https://github.com/rust-lang/crates.io-index" 3102 + checksum = "0c790de23124f9ab44544d7ac05d60440adc586479ce501c1d6d7da3cd8c9cf5" 3103 + 3104 + [[package]] 3105 + name = "smallvec" 3106 + version = "1.15.2" 3107 + source = "registry+https://github.com/rust-lang/crates.io-index" 3108 + checksum = "8ed6a63f02c8539c91a8685a86f4099661ba3da017932f6ebbea6de3f0fa7c90" 3109 + 3110 + [[package]] 3111 + name = "smol_str" 3112 + version = "0.3.6" 3113 + source = "registry+https://github.com/rust-lang/crates.io-index" 3114 + checksum = "4aaa7368fcf4852a4c2dd92df0cace6a71f2091ca0a23391ce7f3a31833f1523" 3115 + dependencies = [ 3116 + "borsh", 3117 + "serde_core", 3118 + ] 3119 + 3120 + [[package]] 3121 + name = "socket2" 3122 + version = "0.6.5" 3123 + source = "registry+https://github.com/rust-lang/crates.io-index" 3124 + checksum = "c3d1e2c7f27f8d4cb10542a02c49005dbd6e93095799d6f3be745fae9f8fedd4" 3125 + dependencies = [ 3126 + "libc", 3127 + "windows-sys 0.61.2", 3128 + ] 3129 + 3130 + [[package]] 3131 + name = "spin" 3132 + version = "0.9.9" 3133 + source = "registry+https://github.com/rust-lang/crates.io-index" 3134 + checksum = "3763264f6b73151db08c50ff20d7d8a0b8796e021cdea7ceedad07b80155fa0e" 3135 + dependencies = [ 3136 + "lock_api", 3137 + ] 3138 + 3139 + [[package]] 3140 + name = "spin" 3141 + version = "0.10.1" 3142 + source = "registry+https://github.com/rust-lang/crates.io-index" 3143 + checksum = "023a211cb3138dbc438680b32560ad89f699977624c9f8dbb95a47d5b4c07dd3" 3144 + 3145 + [[package]] 3146 + name = "spki" 3147 + version = "0.7.3" 3148 + source = "registry+https://github.com/rust-lang/crates.io-index" 3149 + checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d" 3150 + dependencies = [ 3151 + "base64ct", 3152 + "der", 3153 + ] 3154 + 3155 + [[package]] 3156 + name = "stable_deref_trait" 3157 + version = "1.2.1" 3158 + source = "registry+https://github.com/rust-lang/crates.io-index" 3159 + checksum = "6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596" 3160 + 3161 + [[package]] 3162 + name = "string_cache" 3163 + version = "0.8.9" 3164 + source = "registry+https://github.com/rust-lang/crates.io-index" 3165 + checksum = "bf776ba3fa74f83bf4b63c3dcbbf82173db2632ed8452cb2d891d33f459de70f" 3166 + dependencies = [ 3167 + "new_debug_unreachable", 3168 + "parking_lot", 3169 + "phf_shared", 3170 + "precomputed-hash", 3171 + "serde", 3172 + ] 3173 + 3174 + [[package]] 3175 + name = "string_cache_codegen" 3176 + version = "0.5.4" 3177 + source = "registry+https://github.com/rust-lang/crates.io-index" 3178 + checksum = "c711928715f1fe0fe509c53b43e993a9a557babc2d0a3567d0a3006f1ac931a0" 3179 + dependencies = [ 3180 + "phf_generator", 3181 + "phf_shared", 3182 + "proc-macro2", 3183 + "quote", 3184 + ] 3185 + 3186 + [[package]] 3187 + name = "strsim" 3188 + version = "0.11.1" 3189 + source = "registry+https://github.com/rust-lang/crates.io-index" 3190 + checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" 3191 + 3192 + [[package]] 3193 + name = "subtle" 3194 + version = "2.6.1" 3195 + source = "registry+https://github.com/rust-lang/crates.io-index" 3196 + checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" 3197 + 3198 + [[package]] 3199 + name = "syn" 3200 + version = "2.0.119" 3201 + source = "registry+https://github.com/rust-lang/crates.io-index" 3202 + checksum = "872831b642d1a07999a962a351ed35b955ea2cfc8f3862091e2a240a84f17297" 3203 + dependencies = [ 3204 + "proc-macro2", 3205 + "quote", 3206 + "unicode-ident", 3207 + ] 3208 + 3209 + [[package]] 3210 + name = "syn" 3211 + version = "3.0.3" 3212 + source = "registry+https://github.com/rust-lang/crates.io-index" 3213 + checksum = "53e9bae58849f64dfa4f5d5ae372c8341f7305f82a3868709269343628b659a3" 3214 + dependencies = [ 3215 + "proc-macro2", 3216 + "quote", 3217 + "unicode-ident", 3218 + ] 3219 + 3220 + [[package]] 3221 + name = "sync_wrapper" 3222 + version = "1.0.2" 3223 + source = "registry+https://github.com/rust-lang/crates.io-index" 3224 + checksum = "0bf256ce5efdfa370213c1dabab5935a12e49f2c58d15e9eac2870d3b4f27263" 3225 + dependencies = [ 3226 + "futures-core", 3227 + ] 3228 + 3229 + [[package]] 3230 + name = "synstructure" 3231 + version = "0.13.2" 3232 + source = "registry+https://github.com/rust-lang/crates.io-index" 3233 + checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" 3234 + dependencies = [ 3235 + "proc-macro2", 3236 + "quote", 3237 + "syn 2.0.119", 3238 + ] 3239 + 3240 + [[package]] 3241 + name = "system-configuration" 3242 + version = "0.7.0" 3243 + source = "registry+https://github.com/rust-lang/crates.io-index" 3244 + checksum = "a13f3d0daba03132c0aa9767f98351b3488edc2c100cda2d2ec2b04f3d8d3c8b" 3245 + dependencies = [ 3246 + "bitflags", 3247 + "core-foundation 0.9.4", 3248 + "system-configuration-sys", 3249 + ] 3250 + 3251 + [[package]] 3252 + name = "system-configuration-sys" 3253 + version = "0.6.0" 3254 + source = "registry+https://github.com/rust-lang/crates.io-index" 3255 + checksum = "8e1d1b10ced5ca923a1fcb8d03e96b8d3268065d724548c0211415ff6ac6bac4" 3256 + dependencies = [ 3257 + "core-foundation-sys", 3258 + "libc", 3259 + ] 3260 + 3261 + [[package]] 3262 + name = "tagptr" 3263 + version = "0.2.0" 3264 + source = "registry+https://github.com/rust-lang/crates.io-index" 3265 + checksum = "7b2093cf4c8eb1e67749a6762251bc9cd836b6fc171623bd0a9d324d37af2417" 3266 + 3267 + [[package]] 3268 + name = "tendril" 3269 + version = "0.4.3" 3270 + source = "registry+https://github.com/rust-lang/crates.io-index" 3271 + checksum = "d24a120c5fc464a3458240ee02c299ebcb9d67b5249c8848b09d639dca8d7bb0" 3272 + dependencies = [ 3273 + "futf", 3274 + "mac", 3275 + "utf-8", 3276 + ] 3277 + 3278 + [[package]] 3279 + name = "thiserror" 3280 + version = "1.0.69" 3281 + source = "registry+https://github.com/rust-lang/crates.io-index" 3282 + checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" 3283 + dependencies = [ 3284 + "thiserror-impl 1.0.69", 3285 + ] 3286 + 3287 + [[package]] 3288 + name = "thiserror" 3289 + version = "2.0.19" 3290 + source = "registry+https://github.com/rust-lang/crates.io-index" 3291 + checksum = "09a43598840e33d5b0331f38c5e30d13bb11c11210a4b58f0d9b18a5a5eefcd9" 3292 + dependencies = [ 3293 + "thiserror-impl 2.0.19", 3294 + ] 3295 + 3296 + [[package]] 3297 + name = "thiserror-impl" 3298 + version = "1.0.69" 3299 + source = "registry+https://github.com/rust-lang/crates.io-index" 3300 + checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" 3301 + dependencies = [ 3302 + "proc-macro2", 3303 + "quote", 3304 + "syn 2.0.119", 3305 + ] 3306 + 3307 + [[package]] 3308 + name = "thiserror-impl" 3309 + version = "2.0.19" 3310 + source = "registry+https://github.com/rust-lang/crates.io-index" 3311 + checksum = "43cbfe0cf76104d42a574802844187e84a305e531ed54455f11fbde0f10541cd" 3312 + dependencies = [ 3313 + "proc-macro2", 3314 + "quote", 3315 + "syn 3.0.3", 3316 + ] 3317 + 3318 + [[package]] 3319 + name = "thread_local" 3320 + version = "1.1.10" 3321 + source = "registry+https://github.com/rust-lang/crates.io-index" 3322 + checksum = "1ad99c4c6d32803332c548b1af0540b357b3f5fc0be8f6c6bfe8b2e6ae784070" 3323 + dependencies = [ 3324 + "cfg-if", 3325 + ] 3326 + 3327 + [[package]] 3328 + name = "time" 3329 + version = "0.3.54" 3330 + source = "registry+https://github.com/rust-lang/crates.io-index" 3331 + checksum = "3e1d5e639ff6bab73cb6885cc7e7b1de96c3f32c68ec55f3952614bec1092244" 3332 + dependencies = [ 3333 + "deranged", 3334 + "num-conv", 3335 + "powerfmt", 3336 + "serde_core", 3337 + "time-core", 3338 + ] 3339 + 3340 + [[package]] 3341 + name = "time-core" 3342 + version = "0.1.9" 3343 + source = "registry+https://github.com/rust-lang/crates.io-index" 3344 + checksum = "9e1c906769ad99c88eaa54e728060edef082f8e358ff32030cb7c7d315e81109" 3345 + 3346 + [[package]] 3347 + name = "tinystr" 3348 + version = "0.8.3" 3349 + source = "registry+https://github.com/rust-lang/crates.io-index" 3350 + checksum = "c8323304221c2a851516f22236c5722a72eaa19749016521d6dff0824447d96d" 3351 + dependencies = [ 3352 + "displaydoc", 3353 + "zerovec", 3354 + ] 3355 + 3356 + [[package]] 3357 + name = "tinyvec" 3358 + version = "1.12.0" 3359 + source = "registry+https://github.com/rust-lang/crates.io-index" 3360 + checksum = "bb4ebadaa0af04fab11ae01eb5f9fdb5f9c5b875506e210e71c07873528baa7f" 3361 + dependencies = [ 3362 + "tinyvec_macros", 3363 + ] 3364 + 3365 + [[package]] 3366 + name = "tinyvec_macros" 3367 + version = "0.1.1" 3368 + source = "registry+https://github.com/rust-lang/crates.io-index" 3369 + checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" 3370 + 3371 + [[package]] 3372 + name = "tokio" 3373 + version = "1.53.1" 3374 + source = "registry+https://github.com/rust-lang/crates.io-index" 3375 + checksum = "202caea871b69668250d242070849eb495be178ed697a3e98aebce5bc81a0bed" 3376 + dependencies = [ 3377 + "bytes", 3378 + "libc", 3379 + "mio", 3380 + "pin-project-lite", 3381 + "socket2", 3382 + "tokio-macros", 3383 + "windows-sys 0.61.2", 3384 + ] 3385 + 3386 + [[package]] 3387 + name = "tokio-macros" 3388 + version = "2.7.1" 3389 + source = "registry+https://github.com/rust-lang/crates.io-index" 3390 + checksum = "6328af13490e73a9b4694030fafd93f8c8c6a9dede33e821c3fc63eddf8042ba" 3391 + dependencies = [ 3392 + "proc-macro2", 3393 + "quote", 3394 + "syn 2.0.119", 3395 + ] 3396 + 3397 + [[package]] 3398 + name = "tokio-rustls" 3399 + version = "0.26.4" 3400 + source = "registry+https://github.com/rust-lang/crates.io-index" 3401 + checksum = "1729aa945f29d91ba541258c8df89027d5792d85a8841fb65e8bf0f4ede4ef61" 3402 + dependencies = [ 3403 + "rustls", 3404 + "tokio", 3405 + ] 3406 + 3407 + [[package]] 3408 + name = "tokio-util" 3409 + version = "0.7.19" 3410 + source = "registry+https://github.com/rust-lang/crates.io-index" 3411 + checksum = "494815d09bf52b5548659851081238f0ca39ff638363907596da739561c62c52" 3412 + dependencies = [ 3413 + "bytes", 3414 + "futures-core", 3415 + "futures-sink", 3416 + "futures-util", 3417 + "libc", 3418 + "pin-project-lite", 3419 + "tokio", 3420 + ] 3421 + 3422 + [[package]] 3423 + name = "tower" 3424 + version = "0.5.3" 3425 + source = "registry+https://github.com/rust-lang/crates.io-index" 3426 + checksum = "ebe5ef63511595f1344e2d5cfa636d973292adc0eec1f0ad45fae9f0851ab1d4" 3427 + dependencies = [ 3428 + "futures-core", 3429 + "futures-util", 3430 + "pin-project-lite", 3431 + "sync_wrapper", 3432 + "tokio", 3433 + "tower-layer", 3434 + "tower-service", 3435 + ] 3436 + 3437 + [[package]] 3438 + name = "tower-http" 3439 + version = "0.6.11" 3440 + source = "registry+https://github.com/rust-lang/crates.io-index" 3441 + checksum = "4cfcf7e2740e6fc6d4d688b4ef00650406bb94adf4731e43c096c3a19fe40840" 3442 + dependencies = [ 3443 + "async-compression", 3444 + "bitflags", 3445 + "bytes", 3446 + "futures-core", 3447 + "futures-util", 3448 + "http", 3449 + "http-body", 3450 + "http-body-util", 3451 + "pin-project-lite", 3452 + "tokio", 3453 + "tokio-util", 3454 + "tower", 3455 + "tower-layer", 3456 + "tower-service", 3457 + "url", 3458 + ] 3459 + 3460 + [[package]] 3461 + name = "tower-layer" 3462 + version = "0.3.3" 3463 + source = "registry+https://github.com/rust-lang/crates.io-index" 3464 + checksum = "121c2a6cda46980bb0fcd1647ffaf6cd3fc79a013de288782836f6df9c48780e" 3465 + 3466 + [[package]] 3467 + name = "tower-service" 3468 + version = "0.3.3" 3469 + source = "registry+https://github.com/rust-lang/crates.io-index" 3470 + checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" 3471 + 3472 + [[package]] 3473 + name = "tracing" 3474 + version = "0.1.44" 3475 + source = "registry+https://github.com/rust-lang/crates.io-index" 3476 + checksum = "63e71662fa4b2a2c3a26f570f037eb95bb1f85397f3cd8076caed2f026a6d100" 3477 + dependencies = [ 3478 + "pin-project-lite", 3479 + "tracing-attributes", 3480 + "tracing-core", 3481 + ] 3482 + 3483 + [[package]] 3484 + name = "tracing-attributes" 3485 + version = "0.1.31" 3486 + source = "registry+https://github.com/rust-lang/crates.io-index" 3487 + checksum = "7490cfa5ec963746568740651ac6781f701c9c5ea257c58e057f3ba8cf69e8da" 3488 + dependencies = [ 3489 + "proc-macro2", 3490 + "quote", 3491 + "syn 2.0.119", 3492 + ] 3493 + 3494 + [[package]] 3495 + name = "tracing-core" 3496 + version = "0.1.36" 3497 + source = "registry+https://github.com/rust-lang/crates.io-index" 3498 + checksum = "db97caf9d906fbde555dd62fa95ddba9eecfd14cb388e4f491a66d74cd5fb79a" 3499 + dependencies = [ 3500 + "once_cell", 3501 + "valuable", 3502 + ] 3503 + 3504 + [[package]] 3505 + name = "tracing-log" 3506 + version = "0.2.0" 3507 + source = "registry+https://github.com/rust-lang/crates.io-index" 3508 + checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3" 3509 + dependencies = [ 3510 + "log", 3511 + "once_cell", 3512 + "tracing-core", 3513 + ] 3514 + 3515 + [[package]] 3516 + name = "tracing-subscriber" 3517 + version = "0.3.23" 3518 + source = "registry+https://github.com/rust-lang/crates.io-index" 3519 + checksum = "cb7f578e5945fb242538965c2d0b04418d38ec25c79d160cd279bf0731c8d319" 3520 + dependencies = [ 3521 + "matchers", 3522 + "nu-ansi-term", 3523 + "once_cell", 3524 + "regex-automata", 3525 + "sharded-slab", 3526 + "smallvec", 3527 + "thread_local", 3528 + "tracing", 3529 + "tracing-core", 3530 + "tracing-log", 3531 + ] 3532 + 3533 + [[package]] 3534 + name = "trait-variant" 3535 + version = "0.1.3" 3536 + source = "registry+https://github.com/rust-lang/crates.io-index" 3537 + checksum = "b19a4867a870f6edc4c283f2b455804b1879c0baf0e642f26b03ed8ee262d9d3" 3538 + dependencies = [ 3539 + "proc-macro2", 3540 + "quote", 3541 + "syn 2.0.119", 3542 + ] 3543 + 3544 + [[package]] 3545 + name = "triomphe" 3546 + version = "0.1.16" 3547 + source = "registry+https://github.com/rust-lang/crates.io-index" 3548 + checksum = "b40688ea6389c8171614b25491f71d4a27946e0c7ce2da1c6de27e25abf1a0ae" 3549 + 3550 + [[package]] 3551 + name = "try-lock" 3552 + version = "0.2.5" 3553 + source = "registry+https://github.com/rust-lang/crates.io-index" 3554 + checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" 3555 + 3556 + [[package]] 3557 + name = "typenum" 3558 + version = "1.20.1" 3559 + source = "registry+https://github.com/rust-lang/crates.io-index" 3560 + checksum = "b6f5e870be6c3b371b77fe0ee0bafb859fa4964b4404c27de1d380043c4dda20" 3561 + 3562 + [[package]] 3563 + name = "unicode-ident" 3564 + version = "1.0.24" 3565 + source = "registry+https://github.com/rust-lang/crates.io-index" 3566 + checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75" 3567 + 3568 + [[package]] 3569 + name = "unicode-segmentation" 3570 + version = "1.13.3" 3571 + source = "registry+https://github.com/rust-lang/crates.io-index" 3572 + checksum = "c6f5d3c3b1bf09027a88a6bc961fc00497d651009560b5463668dc81b0fa87a8" 3573 + 3574 + [[package]] 3575 + name = "unicode-width" 3576 + version = "0.1.14" 3577 + source = "registry+https://github.com/rust-lang/crates.io-index" 3578 + checksum = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af" 3579 + 3580 + [[package]] 3581 + name = "unicode-xid" 3582 + version = "0.2.6" 3583 + source = "registry+https://github.com/rust-lang/crates.io-index" 3584 + checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" 3585 + 3586 + [[package]] 3587 + name = "unsigned-varint" 3588 + version = "0.8.0" 3589 + source = "registry+https://github.com/rust-lang/crates.io-index" 3590 + checksum = "eb066959b24b5196ae73cb057f45598450d2c5f71460e98c49b738086eff9c06" 3591 + 3592 + [[package]] 3593 + name = "untrusted" 3594 + version = "0.9.0" 3595 + source = "registry+https://github.com/rust-lang/crates.io-index" 3596 + checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" 3597 + 3598 + [[package]] 3599 + name = "url" 3600 + version = "2.5.8" 3601 + source = "registry+https://github.com/rust-lang/crates.io-index" 3602 + checksum = "ff67a8a4397373c3ef660812acab3268222035010ab8680ec4215f38ba3d0eed" 3603 + dependencies = [ 3604 + "form_urlencoded", 3605 + "idna", 3606 + "percent-encoding", 3607 + "serde", 3608 + ] 3609 + 3610 + [[package]] 3611 + name = "utf-8" 3612 + version = "0.7.6" 3613 + source = "registry+https://github.com/rust-lang/crates.io-index" 3614 + checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" 3615 + 3616 + [[package]] 3617 + name = "utf8_iter" 3618 + version = "1.0.4" 3619 + source = "registry+https://github.com/rust-lang/crates.io-index" 3620 + checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" 3621 + 3622 + [[package]] 3623 + name = "valuable" 3624 + version = "0.1.1" 3625 + source = "registry+https://github.com/rust-lang/crates.io-index" 3626 + checksum = "ba73ea9cf16a25df0c8caa16c51acb937d5712a8429db78a3ee29d5dcacd3a65" 3627 + 3628 + [[package]] 3629 + name = "version_check" 3630 + version = "0.9.5" 3631 + source = "registry+https://github.com/rust-lang/crates.io-index" 3632 + checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" 3633 + 3634 + [[package]] 3635 + name = "walkdir" 3636 + version = "2.5.0" 3637 + source = "registry+https://github.com/rust-lang/crates.io-index" 3638 + checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" 3639 + dependencies = [ 3640 + "same-file", 3641 + "winapi-util", 3642 + ] 3643 + 3644 + [[package]] 3645 + name = "want" 3646 + version = "0.3.1" 3647 + source = "registry+https://github.com/rust-lang/crates.io-index" 3648 + checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" 3649 + dependencies = [ 3650 + "try-lock", 3651 + ] 3652 + 3653 + [[package]] 3654 + name = "wasi" 3655 + version = "0.11.1+wasi-snapshot-preview1" 3656 + source = "registry+https://github.com/rust-lang/crates.io-index" 3657 + checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" 3658 + 3659 + [[package]] 3660 + name = "wasip2" 3661 + version = "1.0.4+wasi-0.2.12" 3662 + source = "registry+https://github.com/rust-lang/crates.io-index" 3663 + checksum = "b67efb37e106e55ce722a510d6b5f9c17f083e5fc79afc2badeb12cc313d9487" 3664 + dependencies = [ 3665 + "wit-bindgen", 3666 + ] 3667 + 3668 + [[package]] 3669 + name = "wasm-bindgen" 3670 + version = "0.2.126" 3671 + source = "registry+https://github.com/rust-lang/crates.io-index" 3672 + checksum = "4b067c0c11094aef6b7a801c1e34a26affafdf3d051dba08456b868789aaf9a4" 3673 + dependencies = [ 3674 + "cfg-if", 3675 + "once_cell", 3676 + "rustversion", 3677 + "wasm-bindgen-macro", 3678 + "wasm-bindgen-shared", 3679 + ] 3680 + 3681 + [[package]] 3682 + name = "wasm-bindgen-futures" 3683 + version = "0.4.76" 3684 + source = "registry+https://github.com/rust-lang/crates.io-index" 3685 + checksum = "c62df1340f32221cb9c54d6a27b030e3dba64361d4a95bed55f9aacb44da291d" 3686 + dependencies = [ 3687 + "js-sys", 3688 + "wasm-bindgen", 3689 + ] 3690 + 3691 + [[package]] 3692 + name = "wasm-bindgen-macro" 3693 + version = "0.2.126" 3694 + source = "registry+https://github.com/rust-lang/crates.io-index" 3695 + checksum = "167ce5e579f6bcf889c4f7175a8a5a585de84e8ff93976ce393efa5f2837aab1" 3696 + dependencies = [ 3697 + "quote", 3698 + "wasm-bindgen-macro-support", 3699 + ] 3700 + 3701 + [[package]] 3702 + name = "wasm-bindgen-macro-support" 3703 + version = "0.2.126" 3704 + source = "registry+https://github.com/rust-lang/crates.io-index" 3705 + checksum = "f3997c7839262f4ef12cf90b818d6340c18e80f263f1a94bf157d0ec4420380e" 3706 + dependencies = [ 3707 + "bumpalo", 3708 + "proc-macro2", 3709 + "quote", 3710 + "syn 2.0.119", 3711 + "wasm-bindgen-shared", 3712 + ] 3713 + 3714 + [[package]] 3715 + name = "wasm-bindgen-shared" 3716 + version = "0.2.126" 3717 + source = "registry+https://github.com/rust-lang/crates.io-index" 3718 + checksum = "dc1b4cb0cc549fcf58d7dfc081778139b3d283a081644e833e84682ad71cea24" 3719 + dependencies = [ 3720 + "unicode-ident", 3721 + ] 3722 + 3723 + [[package]] 3724 + name = "wasm-streams" 3725 + version = "0.4.2" 3726 + source = "registry+https://github.com/rust-lang/crates.io-index" 3727 + checksum = "15053d8d85c7eccdbefef60f06769760a563c7f0a9d6902a13d35c7800b0ad65" 3728 + dependencies = [ 3729 + "futures-util", 3730 + "js-sys", 3731 + "wasm-bindgen", 3732 + "wasm-bindgen-futures", 3733 + "web-sys", 3734 + ] 3735 + 3736 + [[package]] 3737 + name = "web-sys" 3738 + version = "0.3.103" 3739 + source = "registry+https://github.com/rust-lang/crates.io-index" 3740 + checksum = "8622dcb61c0bcc9fffa6938bed81210af2da9a7e4a1a834b2e37a59b6dfb6141" 3741 + dependencies = [ 3742 + "js-sys", 3743 + "wasm-bindgen", 3744 + ] 3745 + 3746 + [[package]] 3747 + name = "web-time" 3748 + version = "1.1.0" 3749 + source = "registry+https://github.com/rust-lang/crates.io-index" 3750 + checksum = "5a6580f308b1fad9207618087a65c04e7a10bc77e02c8e84e9b00dd4b12fa0bb" 3751 + dependencies = [ 3752 + "js-sys", 3753 + "wasm-bindgen", 3754 + ] 3755 + 3756 + [[package]] 3757 + name = "webbrowser" 3758 + version = "1.2.1" 3759 + source = "registry+https://github.com/rust-lang/crates.io-index" 3760 + checksum = "0fc95580916af1e68ff6a7be07446fc5db73ebf71cf092de939bbf5f7e189f72" 3761 + dependencies = [ 3762 + "core-foundation 0.10.1", 3763 + "jni", 3764 + "log", 3765 + "ndk-context", 3766 + "objc2", 3767 + "objc2-foundation", 3768 + "url", 3769 + "web-sys", 3770 + ] 3771 + 3772 + [[package]] 3773 + name = "webpage" 3774 + version = "2.0.1" 3775 + source = "registry+https://github.com/rust-lang/crates.io-index" 3776 + checksum = "70862efc041d46e6bbaa82bb9c34ae0596d090e86cbd14bd9e93b36ee6802eac" 3777 + dependencies = [ 3778 + "html5ever", 3779 + "markup5ever_rcdom", 3780 + "serde_json", 3781 + "url", 3782 + ] 3783 + 3784 + [[package]] 3785 + name = "webpki-roots" 3786 + version = "1.0.9" 3787 + source = "registry+https://github.com/rust-lang/crates.io-index" 3788 + checksum = "7dcd9d09a39985f5344844e66b0c530a33843579125f23e21e9f0f220850f22a" 3789 + dependencies = [ 3790 + "rustls-pki-types", 3791 + ] 3792 + 3793 + [[package]] 3794 + name = "widestring" 3795 + version = "1.2.1" 3796 + source = "registry+https://github.com/rust-lang/crates.io-index" 3797 + checksum = "72069c3113ab32ab29e5584db3c6ec55d416895e60715417b5b883a357c3e471" 3798 + 3799 + [[package]] 3800 + name = "winapi-util" 3801 + version = "0.1.11" 3802 + source = "registry+https://github.com/rust-lang/crates.io-index" 3803 + checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22" 3804 + dependencies = [ 3805 + "windows-sys 0.61.2", 3806 + ] 3807 + 3808 + [[package]] 3809 + name = "windows-core" 3810 + version = "0.62.2" 3811 + source = "registry+https://github.com/rust-lang/crates.io-index" 3812 + checksum = "b8e83a14d34d0623b51dce9581199302a221863196a1dde71a7663a4c2be9deb" 3813 + dependencies = [ 3814 + "windows-implement", 3815 + "windows-interface", 3816 + "windows-link", 3817 + "windows-result", 3818 + "windows-strings", 3819 + ] 3820 + 3821 + [[package]] 3822 + name = "windows-implement" 3823 + version = "0.60.2" 3824 + source = "registry+https://github.com/rust-lang/crates.io-index" 3825 + checksum = "053e2e040ab57b9dc951b72c264860db7eb3b0200ba345b4e4c3b14f67855ddf" 3826 + dependencies = [ 3827 + "proc-macro2", 3828 + "quote", 3829 + "syn 2.0.119", 3830 + ] 3831 + 3832 + [[package]] 3833 + name = "windows-interface" 3834 + version = "0.59.3" 3835 + source = "registry+https://github.com/rust-lang/crates.io-index" 3836 + checksum = "3f316c4a2570ba26bbec722032c4099d8c8bc095efccdc15688708623367e358" 3837 + dependencies = [ 3838 + "proc-macro2", 3839 + "quote", 3840 + "syn 2.0.119", 3841 + ] 3842 + 3843 + [[package]] 3844 + name = "windows-link" 3845 + version = "0.2.1" 3846 + source = "registry+https://github.com/rust-lang/crates.io-index" 3847 + checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5" 3848 + 3849 + [[package]] 3850 + name = "windows-registry" 3851 + version = "0.6.1" 3852 + source = "registry+https://github.com/rust-lang/crates.io-index" 3853 + checksum = "02752bf7fbdcce7f2a27a742f798510f3e5ad88dbe84871e5168e2120c3d5720" 3854 + dependencies = [ 3855 + "windows-link", 3856 + "windows-result", 3857 + "windows-strings", 3858 + ] 3859 + 3860 + [[package]] 3861 + name = "windows-result" 3862 + version = "0.4.1" 3863 + source = "registry+https://github.com/rust-lang/crates.io-index" 3864 + checksum = "7781fa89eaf60850ac3d2da7af8e5242a5ea78d1a11c49bf2910bb5a73853eb5" 3865 + dependencies = [ 3866 + "windows-link", 3867 + ] 3868 + 3869 + [[package]] 3870 + name = "windows-strings" 3871 + version = "0.5.1" 3872 + source = "registry+https://github.com/rust-lang/crates.io-index" 3873 + checksum = "7837d08f69c77cf6b07689544538e017c1bfcf57e34b4c0ff58e6c2cd3b37091" 3874 + dependencies = [ 3875 + "windows-link", 3876 + ] 3877 + 3878 + [[package]] 3879 + name = "windows-sys" 3880 + version = "0.52.0" 3881 + source = "registry+https://github.com/rust-lang/crates.io-index" 3882 + checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" 3883 + dependencies = [ 3884 + "windows-targets", 3885 + ] 3886 + 3887 + [[package]] 3888 + name = "windows-sys" 3889 + version = "0.61.2" 3890 + source = "registry+https://github.com/rust-lang/crates.io-index" 3891 + checksum = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc" 3892 + dependencies = [ 3893 + "windows-link", 3894 + ] 3895 + 3896 + [[package]] 3897 + name = "windows-targets" 3898 + version = "0.52.6" 3899 + source = "registry+https://github.com/rust-lang/crates.io-index" 3900 + checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" 3901 + dependencies = [ 3902 + "windows_aarch64_gnullvm", 3903 + "windows_aarch64_msvc", 3904 + "windows_i686_gnu", 3905 + "windows_i686_gnullvm", 3906 + "windows_i686_msvc", 3907 + "windows_x86_64_gnu", 3908 + "windows_x86_64_gnullvm", 3909 + "windows_x86_64_msvc", 3910 + ] 3911 + 3912 + [[package]] 3913 + name = "windows_aarch64_gnullvm" 3914 + version = "0.52.6" 3915 + source = "registry+https://github.com/rust-lang/crates.io-index" 3916 + checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" 3917 + 3918 + [[package]] 3919 + name = "windows_aarch64_msvc" 3920 + version = "0.52.6" 3921 + source = "registry+https://github.com/rust-lang/crates.io-index" 3922 + checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" 3923 + 3924 + [[package]] 3925 + name = "windows_i686_gnu" 3926 + version = "0.52.6" 3927 + source = "registry+https://github.com/rust-lang/crates.io-index" 3928 + checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" 3929 + 3930 + [[package]] 3931 + name = "windows_i686_gnullvm" 3932 + version = "0.52.6" 3933 + source = "registry+https://github.com/rust-lang/crates.io-index" 3934 + checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" 3935 + 3936 + [[package]] 3937 + name = "windows_i686_msvc" 3938 + version = "0.52.6" 3939 + source = "registry+https://github.com/rust-lang/crates.io-index" 3940 + checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" 3941 + 3942 + [[package]] 3943 + name = "windows_x86_64_gnu" 3944 + version = "0.52.6" 3945 + source = "registry+https://github.com/rust-lang/crates.io-index" 3946 + checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" 3947 + 3948 + [[package]] 3949 + name = "windows_x86_64_gnullvm" 3950 + version = "0.52.6" 3951 + source = "registry+https://github.com/rust-lang/crates.io-index" 3952 + checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" 3953 + 3954 + [[package]] 3955 + name = "windows_x86_64_msvc" 3956 + version = "0.52.6" 3957 + source = "registry+https://github.com/rust-lang/crates.io-index" 3958 + checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" 3959 + 3960 + [[package]] 3961 + name = "wit-bindgen" 3962 + version = "0.57.1" 3963 + source = "registry+https://github.com/rust-lang/crates.io-index" 3964 + checksum = "1ebf944e87a7c253233ad6766e082e3cd714b5d03812acc24c318f549614536e" 3965 + 3966 + [[package]] 3967 + name = "writeable" 3968 + version = "0.6.3" 3969 + source = "registry+https://github.com/rust-lang/crates.io-index" 3970 + checksum = "1ffae5123b2d3fc086436f8834ae3ab053a283cfac8fe0a0b8eaae044768a4c4" 3971 + 3972 + [[package]] 3973 + name = "xml5ever" 3974 + version = "0.18.1" 3975 + source = "registry+https://github.com/rust-lang/crates.io-index" 3976 + checksum = "9bbb26405d8e919bc1547a5aa9abc95cbfa438f04844f5fdd9dc7596b748bf69" 3977 + dependencies = [ 3978 + "log", 3979 + "mac", 3980 + "markup5ever", 3981 + ] 3982 + 3983 + [[package]] 3984 + name = "yoke" 3985 + version = "0.8.3" 3986 + source = "registry+https://github.com/rust-lang/crates.io-index" 3987 + checksum = "709fe23a0424b6a435d82152b1bd3fdfb0833487d5fa90d05d42762a9891fef5" 3988 + dependencies = [ 3989 + "stable_deref_trait", 3990 + "yoke-derive", 3991 + "zerofrom", 3992 + ] 3993 + 3994 + [[package]] 3995 + name = "yoke-derive" 3996 + version = "0.8.2" 3997 + source = "registry+https://github.com/rust-lang/crates.io-index" 3998 + checksum = "de844c262c8848816172cef550288e7dc6c7b7814b4ee56b3e1553f275f1858e" 3999 + dependencies = [ 4000 + "proc-macro2", 4001 + "quote", 4002 + "syn 2.0.119", 4003 + "synstructure", 4004 + ] 4005 + 4006 + [[package]] 4007 + name = "zerocopy" 4008 + version = "0.8.55" 4009 + source = "registry+https://github.com/rust-lang/crates.io-index" 4010 + checksum = "b5a105cd7b140f6eeec8acff2ea38135d3cab283ada58540f629fe51e46696eb" 4011 + dependencies = [ 4012 + "zerocopy-derive", 4013 + ] 4014 + 4015 + [[package]] 4016 + name = "zerocopy-derive" 4017 + version = "0.8.55" 4018 + source = "registry+https://github.com/rust-lang/crates.io-index" 4019 + checksum = "0fe976fb70c78cd64cccfe3a6fc142244e8a77b70959b30faf9d0ac37ee228eb" 4020 + dependencies = [ 4021 + "proc-macro2", 4022 + "quote", 4023 + "syn 2.0.119", 4024 + ] 4025 + 4026 + [[package]] 4027 + name = "zerofrom" 4028 + version = "0.1.8" 4029 + source = "registry+https://github.com/rust-lang/crates.io-index" 4030 + checksum = "0ec05a11813ea801ff6d75110ad09cd0824ddba17dfe17128ea0d5f68e6c5272" 4031 + dependencies = [ 4032 + "zerofrom-derive", 4033 + ] 4034 + 4035 + [[package]] 4036 + name = "zerofrom-derive" 4037 + version = "0.1.7" 4038 + source = "registry+https://github.com/rust-lang/crates.io-index" 4039 + checksum = "11532158c46691caf0f2593ea8358fed6bbf68a0315e80aae9bd41fbade684a1" 4040 + dependencies = [ 4041 + "proc-macro2", 4042 + "quote", 4043 + "syn 2.0.119", 4044 + "synstructure", 4045 + ] 4046 + 4047 + [[package]] 4048 + name = "zeroize" 4049 + version = "1.9.0" 4050 + source = "registry+https://github.com/rust-lang/crates.io-index" 4051 + checksum = "e13c156562582aa81c60cb29407084cdb54c4164760106ab78e6c5b0858cf64e" 4052 + dependencies = [ 4053 + "serde", 4054 + ] 4055 + 4056 + [[package]] 4057 + name = "zerotrie" 4058 + version = "0.2.4" 4059 + source = "registry+https://github.com/rust-lang/crates.io-index" 4060 + checksum = "0f9152d31db0792fa83f70fb2f83148effb5c1f5b8c7686c3459e361d9bc20bf" 4061 + dependencies = [ 4062 + "displaydoc", 4063 + "yoke", 4064 + "zerofrom", 4065 + ] 4066 + 4067 + [[package]] 4068 + name = "zerovec" 4069 + version = "0.11.6" 4070 + source = "registry+https://github.com/rust-lang/crates.io-index" 4071 + checksum = "90f911cbc359ab6af17377d242225f4d75119aec87ea711a880987b18cd7b239" 4072 + dependencies = [ 4073 + "yoke", 4074 + "zerofrom", 4075 + "zerovec-derive", 4076 + ] 4077 + 4078 + [[package]] 4079 + name = "zerovec-derive" 4080 + version = "0.11.3" 4081 + source = "registry+https://github.com/rust-lang/crates.io-index" 4082 + checksum = "625dc425cab0dca6dc3c3319506e6593dcb08a9f387ea3b284dbd52a92c40555" 4083 + dependencies = [ 4084 + "proc-macro2", 4085 + "quote", 4086 + "syn 2.0.119", 4087 + ] 4088 + 4089 + [[package]] 4090 + name = "zmij" 4091 + version = "1.0.23" 4092 + source = "registry+https://github.com/rust-lang/crates.io-index" 4093 + checksum = "29666d0abbfad1e3dc4dcf6144730dd3a3ab225bbbdac83319345b1b44ccfc1b"
+8
rust/Cargo.toml
··· 1 + [package] 2 + name = "rocksky-demo-rs" 3 + version = "0.1.0" 4 + edition = "2021" 5 + 6 + [dependencies] 7 + rocksky-sdk = "0.2" 8 + tokio = { version = "1", features = ["rt-multi-thread", "macros"] }
+8
rust/README.md
··· 1 + # Rocksky Rust SDK — demo 2 + 3 + ```sh 4 + cargo run 5 + ``` 6 + 7 + Installs the [`rocksky-sdk`](https://crates.io/crates/rocksky-sdk) crate. Add 8 + `features = ["dedup", "jetstream"]` for the local index + firehose sync.
+57
rust/src/main.rs
··· 1 + // Rocksky Rust SDK demo — a tour of the AppView read queries (no auth). 2 + use rocksky_sdk::dedup::song_hash; 3 + use rocksky_sdk::{AppView, DateInterval}; 4 + 5 + // A sample actor with plenty of history. 6 + const ACTOR: &str = "did:plc:7vdlgi2bflelz7mmuxoqjfcr"; 7 + 8 + #[tokio::main] 9 + async fn main() -> rocksky_sdk::Result<()> { 10 + let av = AppView::new(rocksky_sdk::DEFAULT_APPVIEW); 11 + 12 + // Platform totals. 13 + let s = av.global_stats().await?; 14 + println!("global: {} scrobbles · {} users · {} tracks", s.scrobbles, s.users, s.tracks); 15 + 16 + // Charts over a typed date window — this past week. 17 + println!("\ntop tracks this week:"); 18 + for t in av.top_tracks_interval(5, 0, DateInterval::LastDays(7)).await? { 19 + println!(" {} — {}", t.artist.as_deref().unwrap_or("?"), t.title.as_deref().unwrap_or("?")); 20 + } 21 + 22 + // Top artists, all-time. 23 + println!("\ntop artists (all-time):"); 24 + for a in av.top_artists(5, 0).await? { 25 + println!(" {} · {} plays", a.name.as_deref().unwrap_or("?"), a.play_count.unwrap_or(0)); 26 + } 27 + 28 + // Catalog + drill down into one album's tracklist. 29 + let albums = av.catalog_albums(3, 0, None).await?; 30 + println!("\nalbums:"); 31 + for al in &albums { 32 + println!(" {} — {}", al.artist.as_deref().unwrap_or("?"), al.title.as_deref().unwrap_or("?")); 33 + } 34 + if let Some(uri) = albums.first().and_then(|a| a.uri.clone()) { 35 + println!("tracks on \"{}\":", albums[0].title.as_deref().unwrap_or("?")); 36 + for t in av.album_tracks(&uri).await? { 37 + println!(" {}. {}", t.track_number.unwrap_or(0), t.title.as_deref().unwrap_or("?")); 38 + } 39 + } 40 + 41 + // An actor: profile, their loved songs, and their social graph. 42 + let profile = av.profile(ACTOR).await?; 43 + println!("\nactor: {}", profile.handle.as_deref().unwrap_or(ACTOR)); 44 + println!(" loved songs: {}", av.loved_songs(ACTOR, 3, 0).await?.len()); 45 + println!(" follows: {} · followers: {}", 46 + av.follows(ACTOR, 100, None).await?.len(), 47 + av.followers(ACTOR, 100, None).await?.len()); 48 + 49 + // Universal escape hatch — any read query by nsid returns raw JSON. 50 + let stats = av.get("app.rocksky.stats.getStats", &[("did".into(), ACTOR.into())]).await?; 51 + println!("\nget() escape hatch — stats keys: {:?}", 52 + stats.as_object().map(|o| o.keys().cloned().collect::<Vec<_>>())); 53 + 54 + // Identity hash — identical across every Rocksky SDK. 55 + println!("\nsong hash: {}", song_hash("Chaser", "Calibro 35", "Jazzploitation")); 56 + Ok(()) 57 + }
+8
typescript/README.md
··· 1 + # Rocksky TypeScript SDK — demo 2 + 3 + ```sh 4 + bun install # or: npm install 5 + bun run index.ts 6 + ``` 7 + 8 + Installs [`@rocksky/sdk`](https://www.npmjs.com/package/@rocksky/sdk) from npm.
+49
typescript/index.ts
··· 1 + // Rocksky TypeScript SDK demo — a tour of the AppView read queries (no auth). 2 + import { RockskyClient, Interval, songHash } from "@rocksky/sdk"; 3 + 4 + // A sample actor with plenty of history. 5 + const ACTOR = "did:plc:7vdlgi2bflelz7mmuxoqjfcr"; 6 + 7 + const rk = new RockskyClient(); 8 + 9 + // Platform totals. 10 + const s = await rk.globalStats(); 11 + console.log(`global: ${s.scrobbles} scrobbles · ${s.users} users · ${s.tracks} tracks`); 12 + 13 + // Charts over a typed date window — this past week. 14 + console.log("\ntop tracks this week:"); 15 + for (const t of await rk.topTracksInterval(5, 0, Interval.lastDays(7))) { 16 + console.log(` ${t.artist} — ${t.title}`); 17 + } 18 + 19 + // Top artists, all-time. 20 + console.log("\ntop artists (all-time):"); 21 + for (const a of await rk.topArtists(5, 0)) { 22 + console.log(` ${a.name} · ${a.playCount ?? 0} plays`); 23 + } 24 + 25 + // Catalog + drill down into one album's tracklist. 26 + const albums = await rk.catalogAlbums(3, 0); 27 + console.log("\nalbums:"); 28 + for (const al of albums) console.log(` ${al.artist} — ${al.title}`); 29 + if (albums[0]?.uri) { 30 + console.log(`tracks on "${albums[0].title}":`); 31 + for (const t of await rk.albumTracks(albums[0].uri)) { 32 + console.log(` ${t.trackNumber ?? 0}. ${t.title}`); 33 + } 34 + } 35 + 36 + // An actor: profile, loved songs, and social graph. 37 + const profile = await rk.profile(ACTOR); 38 + console.log(`\nactor: ${profile.handle ?? ACTOR}`); 39 + console.log(` loved songs: ${(await rk.lovedSongs(ACTOR, 3, 0)).length}`); 40 + console.log( 41 + ` follows: ${(await rk.follows(ACTOR, 100)).length} · followers: ${(await rk.followers(ACTOR, 100)).length}`, 42 + ); 43 + 44 + // Universal escape hatch — any read query by nsid returns raw JSON. 45 + const stats = (await rk.get("app.rocksky.stats.getStats", { did: ACTOR })) as Record<string, unknown>; 46 + console.log("\nget() escape hatch — stats keys:", Object.keys(stats)); 47 + 48 + // Identity hash — identical across every Rocksky SDK. 49 + console.log("\nsong hash:", songHash("Chaser", "Calibro 35", "Jazzploitation"));
+11
typescript/package.json
··· 1 + { 2 + "name": "rocksky-demo-ts", 3 + "private": true, 4 + "type": "module", 5 + "scripts": { 6 + "start": "bun run index.ts" 7 + }, 8 + "dependencies": { 9 + "@rocksky/sdk": "^0.5.0" 10 + } 11 + }