A decentralized music tracking and discovery platform built on AT Protocol 🎵
listenbrainz spotify atproto lastfm musicbrainz scrobbling

Remove rocksky-feed crate and feed CLI

Delete feed.rs and remove the "feed" subcommand from rockskyd CLI,
remove rocksky-feed from the workspace Cargo.toml, and update Cargo.lock
to drop the crate and its transitive dependencies.

Changed files
+5 -591
crates
rockskyd
+5 -561
Cargo.lock
··· 607 ] 608 609 [[package]] 610 - name = "async-compression" 611 - version = "0.4.32" 612 - source = "registry+https://github.com/rust-lang/crates.io-index" 613 - checksum = "5a89bce6054c720275ac2432fbba080a66a2106a44a1b804553930ca6909f4e0" 614 - dependencies = [ 615 - "compression-codecs", 616 - "compression-core", 617 - "futures-core", 618 - "pin-project-lite", 619 - "tokio", 620 - ] 621 - 622 - [[package]] 623 - name = "async-lock" 624 - version = "3.4.1" 625 - source = "registry+https://github.com/rust-lang/crates.io-index" 626 - checksum = "5fd03604047cee9b6ce9de9f70c6cd540a0520c813cbd49bae61f33ab80ed1dc" 627 - dependencies = [ 628 - "event-listener", 629 - "event-listener-strategy", 630 - "pin-project-lite", 631 - ] 632 - 633 - [[package]] 634 name = "async-nats" 635 version = "0.39.0" 636 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 734 checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" 735 736 [[package]] 737 - name = "atrium-api" 738 - version = "0.25.5" 739 - source = "registry+https://github.com/rust-lang/crates.io-index" 740 - checksum = "8bceed6a87be6213040945254aa94191490fea22b7f49dec584e349f336cc17a" 741 - dependencies = [ 742 - "atrium-common", 743 - "atrium-xrpc", 744 - "chrono", 745 - "http 1.3.1", 746 - "ipld-core", 747 - "langtag", 748 - "regex", 749 - "serde", 750 - "serde_bytes", 751 - "serde_json", 752 - "thiserror 1.0.69", 753 - "tokio", 754 - "trait-variant", 755 - ] 756 - 757 - [[package]] 758 - name = "atrium-common" 759 - version = "0.1.2" 760 - source = "registry+https://github.com/rust-lang/crates.io-index" 761 - checksum = "9ed5610654043faa396a5a15afac0ac646d76aebe45aebd7cef4f8b96b0ab7f4" 762 - dependencies = [ 763 - "dashmap", 764 - "lru", 765 - "moka", 766 - "thiserror 1.0.69", 767 - "tokio", 768 - "trait-variant", 769 - "web-time", 770 - ] 771 - 772 - [[package]] 773 - name = "atrium-xrpc" 774 - version = "0.12.3" 775 - source = "registry+https://github.com/rust-lang/crates.io-index" 776 - checksum = "0216ad50ce34e9ff982e171c3659e65dedaa2ed5ac2994524debdc9a9647ffa8" 777 - dependencies = [ 778 - "http 1.3.1", 779 - "serde", 780 - "serde_html_form", 781 - "serde_json", 782 - "thiserror 1.0.69", 783 - "trait-variant", 784 - ] 785 - 786 - [[package]] 787 - name = "atrium-xrpc-client" 788 - version = "0.5.14" 789 - source = "registry+https://github.com/rust-lang/crates.io-index" 790 - checksum = "e099e5171f79faef52364ef0657a4cab086a71b384a779a29597a91b780de0d5" 791 - dependencies = [ 792 - "atrium-xrpc", 793 - "reqwest", 794 - ] 795 - 796 - [[package]] 797 name = "attohttpc" 798 version = "0.28.5" 799 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 853 "object", 854 "rustc-demangle", 855 "windows-link", 856 - ] 857 - 858 - [[package]] 859 - name = "base-x" 860 - version = "0.2.11" 861 - source = "registry+https://github.com/rust-lang/crates.io-index" 862 - checksum = "4cbbc9d0964165b47557570cce6c952866c2678457aca742aafc9fb771d30270" 863 - 864 - [[package]] 865 - name = "base256emoji" 866 - version = "1.0.2" 867 - source = "registry+https://github.com/rust-lang/crates.io-index" 868 - checksum = "b5e9430d9a245a77c92176e649af6e275f20839a48389859d1661e9a128d077c" 869 - dependencies = [ 870 - "const-str", 871 - "match-lookup", 872 ] 873 874 [[package]] ··· 1213 ] 1214 1215 [[package]] 1216 - name = "cid" 1217 - version = "0.11.1" 1218 - source = "registry+https://github.com/rust-lang/crates.io-index" 1219 - checksum = "3147d8272e8fa0ccd29ce51194dd98f79ddfb8191ba9e3409884e751798acf3a" 1220 - dependencies = [ 1221 - "core2", 1222 - "multibase", 1223 - "multihash", 1224 - "serde", 1225 - "serde_bytes", 1226 - "unsigned-varint", 1227 - ] 1228 - 1229 - [[package]] 1230 name = "cipher" 1231 version = "0.4.4" 1232 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 1354 ] 1355 1356 [[package]] 1357 - name = "compression-codecs" 1358 - version = "0.4.31" 1359 - source = "registry+https://github.com/rust-lang/crates.io-index" 1360 - checksum = "ef8a506ec4b81c460798f572caead636d57d3d7e940f998160f52bd254bf2d23" 1361 - dependencies = [ 1362 - "compression-core", 1363 - "flate2", 1364 - "memchr", 1365 - ] 1366 - 1367 - [[package]] 1368 - name = "compression-core" 1369 - version = "0.4.29" 1370 - source = "registry+https://github.com/rust-lang/crates.io-index" 1371 - checksum = "e47641d3deaf41fb1538ac1f54735925e275eaf3bf4d55c81b137fba797e5cbb" 1372 - 1373 - [[package]] 1374 name = "concurrent-queue" 1375 version = "2.5.0" 1376 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 1404 "once_cell", 1405 "tiny-keccak", 1406 ] 1407 - 1408 - [[package]] 1409 - name = "const-str" 1410 - version = "0.4.3" 1411 - source = "registry+https://github.com/rust-lang/crates.io-index" 1412 - checksum = "2f421161cb492475f1661ddc9815a745a1c894592070661180fdec3d4872e9c3" 1413 1414 [[package]] 1415 name = "convert_case" ··· 1471 checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" 1472 1473 [[package]] 1474 - name = "core2" 1475 - version = "0.4.0" 1476 - source = "registry+https://github.com/rust-lang/crates.io-index" 1477 - checksum = "b49ba7ef1ad6107f8824dbe97de947cbaac53c44e7f9756a1fba0d37c1eec505" 1478 - dependencies = [ 1479 - "memchr", 1480 - ] 1481 - 1482 - [[package]] 1483 name = "cpufeatures" 1484 version = "0.2.17" 1485 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 1642 ] 1643 1644 [[package]] 1645 - name = "dashmap" 1646 - version = "6.1.0" 1647 - source = "registry+https://github.com/rust-lang/crates.io-index" 1648 - checksum = "5041cc499144891f3790297212f32a74fb938e5136a14943f338ef9e0ae276cf" 1649 - dependencies = [ 1650 - "cfg-if", 1651 - "crossbeam-utils", 1652 - "hashbrown 0.14.5", 1653 - "lock_api", 1654 - "once_cell", 1655 - "parking_lot_core", 1656 - ] 1657 - 1658 - [[package]] 1659 name = "data-encoding" 1660 version = "2.9.0" 1661 source = "registry+https://github.com/rust-lang/crates.io-index" 1662 checksum = "2a2330da5de22e8a3cb63252ce2abb30116bf5265e89c0e01bc17015ce30a476" 1663 1664 [[package]] 1665 - name = "data-encoding-macro" 1666 - version = "0.1.18" 1667 - source = "registry+https://github.com/rust-lang/crates.io-index" 1668 - checksum = "47ce6c96ea0102f01122a185683611bd5ac8d99e62bc59dd12e6bda344ee673d" 1669 - dependencies = [ 1670 - "data-encoding", 1671 - "data-encoding-macro-internal", 1672 - ] 1673 - 1674 - [[package]] 1675 - name = "data-encoding-macro-internal" 1676 - version = "0.1.16" 1677 - source = "registry+https://github.com/rust-lang/crates.io-index" 1678 - checksum = "8d162beedaa69905488a8da94f5ac3edb4dd4788b732fadb7bd120b2625c1976" 1679 - dependencies = [ 1680 - "data-encoding", 1681 - "syn 2.0.106", 1682 - ] 1683 - 1684 - [[package]] 1685 name = "debug_unsafe" 1686 version = "0.1.3" 1687 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 1980 ] 1981 1982 [[package]] 1983 - name = "event-listener-strategy" 1984 - version = "0.5.4" 1985 - source = "registry+https://github.com/rust-lang/crates.io-index" 1986 - checksum = "8be9f3dfaaffdae2972880079a491a1a8bb7cbed0b8dd7a347f668b4150a3b93" 1987 - dependencies = [ 1988 - "event-listener", 1989 - "pin-project-lite", 1990 - ] 1991 - 1992 - [[package]] 1993 name = "extended" 1994 version = "0.1.0" 1995 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 2099 checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" 2100 2101 [[package]] 2102 - name = "foreign-types" 2103 - version = "0.3.2" 2104 - source = "registry+https://github.com/rust-lang/crates.io-index" 2105 - checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" 2106 - dependencies = [ 2107 - "foreign-types-shared", 2108 - ] 2109 - 2110 - [[package]] 2111 - name = "foreign-types-shared" 2112 - version = "0.1.1" 2113 - source = "registry+https://github.com/rust-lang/crates.io-index" 2114 - checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" 2115 - 2116 - [[package]] 2117 name = "form_urlencoded" 2118 version = "1.2.2" 2119 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 2466 ] 2467 2468 [[package]] 2469 - name = "headers" 2470 - version = "0.3.9" 2471 - source = "registry+https://github.com/rust-lang/crates.io-index" 2472 - checksum = "06683b93020a07e3dbcf5f8c0f6d40080d725bea7936fc01ad345c01b97dc270" 2473 - dependencies = [ 2474 - "base64 0.21.7", 2475 - "bytes", 2476 - "headers-core", 2477 - "http 0.2.12", 2478 - "httpdate", 2479 - "mime", 2480 - "sha1", 2481 - ] 2482 - 2483 - [[package]] 2484 - name = "headers-core" 2485 - version = "0.2.0" 2486 - source = "registry+https://github.com/rust-lang/crates.io-index" 2487 - checksum = "e7f66481bfee273957b1f20485a4ff3362987f85b2c236580d81b4eb7a326429" 2488 - dependencies = [ 2489 - "http 0.2.12", 2490 - ] 2491 - 2492 - [[package]] 2493 name = "heapless" 2494 version = "0.8.0" 2495 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 2639 "futures-channel", 2640 "futures-core", 2641 "futures-util", 2642 - "h2 0.3.27", 2643 "http 0.2.12", 2644 "http-body 0.4.6", 2645 "httparse", ··· 2708 ] 2709 2710 [[package]] 2711 - name = "hyper-tls" 2712 - version = "0.6.0" 2713 - source = "registry+https://github.com/rust-lang/crates.io-index" 2714 - checksum = "70206fc6890eaca9fde8a0bf71caa2ddfc9fe045ac9e5c70df101a7dbde866e0" 2715 - dependencies = [ 2716 - "bytes", 2717 - "http-body-util", 2718 - "hyper 1.7.0", 2719 - "hyper-util", 2720 - "native-tls", 2721 - "tokio", 2722 - "tokio-native-tls", 2723 - "tower-service", 2724 - ] 2725 - 2726 - [[package]] 2727 name = "hyper-util" 2728 version = "0.1.17" 2729 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 2923 ] 2924 2925 [[package]] 2926 - name = "ipld-core" 2927 - version = "0.4.2" 2928 - source = "registry+https://github.com/rust-lang/crates.io-index" 2929 - checksum = "104718b1cc124d92a6d01ca9c9258a7df311405debb3408c445a36452f9bf8db" 2930 - dependencies = [ 2931 - "cid", 2932 - "serde", 2933 - "serde_bytes", 2934 - ] 2935 - 2936 - [[package]] 2937 name = "ipnet" 2938 version = "2.11.0" 2939 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 3169 "serde", 3170 "serde_json", 3171 "simple_asn1", 3172 - ] 3173 - 3174 - [[package]] 3175 - name = "langtag" 3176 - version = "0.3.4" 3177 - source = "registry+https://github.com/rust-lang/crates.io-index" 3178 - checksum = "ed60c85f254d6ae8450cec15eedd921efbc4d1bdf6fcf6202b9a58b403f6f805" 3179 - dependencies = [ 3180 - "serde", 3181 ] 3182 3183 [[package]] ··· 3388 checksum = "34080505efa8e45a4b816c349525ebe327ceaa8559756f0356cba97ef3bf7432" 3389 3390 [[package]] 3391 - name = "lru" 3392 - version = "0.12.5" 3393 - source = "registry+https://github.com/rust-lang/crates.io-index" 3394 - checksum = "234cf4f4a04dc1f57e24b96cc0cd600cf2af460d4161ac5ecdd0af8e1f3b2a38" 3395 - dependencies = [ 3396 - "hashbrown 0.15.5", 3397 - ] 3398 - 3399 - [[package]] 3400 name = "lru-slab" 3401 version = "0.1.2" 3402 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 3422 ] 3423 3424 [[package]] 3425 - name = "match-lookup" 3426 - version = "0.1.1" 3427 - source = "registry+https://github.com/rust-lang/crates.io-index" 3428 - checksum = "1265724d8cb29dbbc2b0f06fffb8bf1a8c0cf73a78eede9ba73a4a66c52a981e" 3429 - dependencies = [ 3430 - "proc-macro2", 3431 - "quote", 3432 - "syn 1.0.109", 3433 - ] 3434 - 3435 - [[package]] 3436 name = "match_cfg" 3437 version = "0.1.0" 3438 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 3524 ] 3525 3526 [[package]] 3527 - name = "moka" 3528 - version = "0.12.11" 3529 - source = "registry+https://github.com/rust-lang/crates.io-index" 3530 - checksum = "8261cd88c312e0004c1d51baad2980c66528dfdb2bee62003e643a4d8f86b077" 3531 - dependencies = [ 3532 - "async-lock", 3533 - "crossbeam-channel", 3534 - "crossbeam-epoch", 3535 - "crossbeam-utils", 3536 - "equivalent", 3537 - "event-listener", 3538 - "futures-util", 3539 - "parking_lot", 3540 - "portable-atomic", 3541 - "rustc_version", 3542 - "smallvec", 3543 - "tagptr", 3544 - "uuid", 3545 - ] 3546 - 3547 - [[package]] 3548 - name = "multer" 3549 - version = "2.1.0" 3550 - source = "registry+https://github.com/rust-lang/crates.io-index" 3551 - checksum = "01acbdc23469fd8fe07ab135923371d5f5a422fbf9c522158677c8eb15bc51c2" 3552 - dependencies = [ 3553 - "bytes", 3554 - "encoding_rs", 3555 - "futures-util", 3556 - "http 0.2.12", 3557 - "httparse", 3558 - "log", 3559 - "memchr", 3560 - "mime", 3561 - "spin", 3562 - "version_check", 3563 - ] 3564 - 3565 - [[package]] 3566 - name = "multibase" 3567 - version = "0.9.2" 3568 - source = "registry+https://github.com/rust-lang/crates.io-index" 3569 - checksum = "8694bb4835f452b0e3bb06dbebb1d6fc5385b6ca1caf2e55fd165c042390ec77" 3570 - dependencies = [ 3571 - "base-x", 3572 - "base256emoji", 3573 - "data-encoding", 3574 - "data-encoding-macro", 3575 - ] 3576 - 3577 - [[package]] 3578 - name = "multihash" 3579 - version = "0.19.3" 3580 - source = "registry+https://github.com/rust-lang/crates.io-index" 3581 - checksum = "6b430e7953c29dd6a09afc29ff0bb69c6e306329ee6794700aee27b76a1aea8d" 3582 - dependencies = [ 3583 - "core2", 3584 - "serde", 3585 - "unsigned-varint", 3586 - ] 3587 - 3588 - [[package]] 3589 name = "nanoid" 3590 version = "0.4.0" 3591 source = "registry+https://github.com/rust-lang/crates.io-index" 3592 checksum = "3ffa00dec017b5b1a8b7cf5e2c008bfda1aa7e0697ac1508b491fdf2622fb4d8" 3593 dependencies = [ 3594 "rand 0.8.5", 3595 - ] 3596 - 3597 - [[package]] 3598 - name = "native-tls" 3599 - version = "0.2.14" 3600 - source = "registry+https://github.com/rust-lang/crates.io-index" 3601 - checksum = "87de3442987e9dbec73158d5c715e7ad9072fda936bb03d19d7fa10e00520f0e" 3602 - dependencies = [ 3603 - "libc", 3604 - "log", 3605 - "openssl", 3606 - "openssl-probe", 3607 - "openssl-sys", 3608 - "schannel", 3609 - "security-framework 2.11.1", 3610 - "security-framework-sys", 3611 - "tempfile", 3612 ] 3613 3614 [[package]] ··· 3815 checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" 3816 3817 [[package]] 3818 - name = "openssl" 3819 - version = "0.10.73" 3820 - source = "registry+https://github.com/rust-lang/crates.io-index" 3821 - checksum = "8505734d46c8ab1e19a1dce3aef597ad87dcb4c37e7188231769bd6bd51cebf8" 3822 - dependencies = [ 3823 - "bitflags 2.9.4", 3824 - "cfg-if", 3825 - "foreign-types", 3826 - "libc", 3827 - "once_cell", 3828 - "openssl-macros", 3829 - "openssl-sys", 3830 - ] 3831 - 3832 - [[package]] 3833 - name = "openssl-macros" 3834 - version = "0.1.1" 3835 - source = "registry+https://github.com/rust-lang/crates.io-index" 3836 - checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" 3837 - dependencies = [ 3838 - "proc-macro2", 3839 - "quote", 3840 - "syn 2.0.106", 3841 - ] 3842 - 3843 - [[package]] 3844 name = "openssl-probe" 3845 version = "0.1.6" 3846 source = "registry+https://github.com/rust-lang/crates.io-index" 3847 checksum = "d05e27ee213611ffe7d6348b942e8f942b37114c00cc03cec254295a4a17852e" 3848 - 3849 - [[package]] 3850 - name = "openssl-sys" 3851 - version = "0.9.109" 3852 - source = "registry+https://github.com/rust-lang/crates.io-index" 3853 - checksum = "90096e2e47630d78b7d1c20952dc621f957103f8bc2c8359ec81290d75238571" 3854 - dependencies = [ 3855 - "cc", 3856 - "libc", 3857 - "pkg-config", 3858 - "vcpkg", 3859 - ] 3860 3861 [[package]] 3862 name = "option-ext" ··· 5200 source = "registry+https://github.com/rust-lang/crates.io-index" 5201 checksum = "d429f34c8092b2d42c7c93cec323bb4adeb7c67698f70839adec842ec10c7ceb" 5202 dependencies = [ 5203 - "async-compression", 5204 "base64 0.22.1", 5205 "bytes", 5206 "futures-core", ··· 5210 "http-body-util", 5211 "hyper 1.7.0", 5212 "hyper-rustls 0.27.7", 5213 - "hyper-tls", 5214 "hyper-util", 5215 "js-sys", 5216 "log", 5217 "mime_guess", 5218 - "native-tls", 5219 "percent-encoding", 5220 "pin-project-lite", 5221 "quinn", ··· 5226 "serde_urlencoded", 5227 "sync_wrapper", 5228 "tokio", 5229 - "tokio-native-tls", 5230 "tokio-rustls 0.26.4", 5231 "tokio-util", 5232 "tower", ··· 5322 "serde_json", 5323 "tokio", 5324 "tokio-stream", 5325 - "tokio-tungstenite 0.26.2", 5326 - "tungstenite 0.26.2", 5327 ] 5328 5329 [[package]] ··· 5358 ] 5359 5360 [[package]] 5361 - name = "rocksky-feed" 5362 - version = "0.1.0" 5363 - dependencies = [ 5364 - "anyhow", 5365 - "async-trait", 5366 - "atrium-api", 5367 - "atrium-xrpc-client", 5368 - "chrono", 5369 - "dotenv", 5370 - "duckdb", 5371 - "owo-colors", 5372 - "reqwest", 5373 - "serde", 5374 - "serde_json", 5375 - "sha256", 5376 - "sqlx", 5377 - "tokio", 5378 - "tokio-stream", 5379 - "tokio-tungstenite 0.26.2", 5380 - "tracing", 5381 - "tungstenite 0.26.2", 5382 - "warp", 5383 - "xid", 5384 - ] 5385 - 5386 - [[package]] 5387 name = "rocksky-googledrive" 5388 version = "0.1.0" 5389 dependencies = [ ··· 5434 "time", 5435 "tokio", 5436 "tokio-stream", 5437 - "tokio-tungstenite 0.26.2", 5438 "tracing", 5439 - "tungstenite 0.26.2", 5440 "url", 5441 ] 5442 ··· 5611 "owo-colors", 5612 "rocksky-analytics", 5613 "rocksky-dropbox", 5614 - "rocksky-feed", 5615 "rocksky-googledrive", 5616 "rocksky-jetstream", 5617 "rocksky-pgpull", ··· 5945 ] 5946 5947 [[package]] 5948 - name = "scoped-tls" 5949 - version = "1.0.1" 5950 - source = "registry+https://github.com/rust-lang/crates.io-index" 5951 - checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294" 5952 - 5953 - [[package]] 5954 name = "scopeguard" 5955 version = "1.2.0" 5956 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 6041 ] 6042 6043 [[package]] 6044 - name = "serde_bytes" 6045 - version = "0.11.19" 6046 - source = "registry+https://github.com/rust-lang/crates.io-index" 6047 - checksum = "a5d440709e79d88e51ac01c4b72fc6cb7314017bb7da9eeff678aa94c10e3ea8" 6048 - dependencies = [ 6049 - "serde", 6050 - "serde_core", 6051 - ] 6052 - 6053 - [[package]] 6054 name = "serde_cbor" 6055 version = "0.11.2" 6056 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 6081 ] 6082 6083 [[package]] 6084 - name = "serde_html_form" 6085 - version = "0.2.8" 6086 - source = "registry+https://github.com/rust-lang/crates.io-index" 6087 - checksum = "b2f2d7ff8a2140333718bb329f5c40fc5f0865b84c426183ce14c97d2ab8154f" 6088 - dependencies = [ 6089 - "form_urlencoded", 6090 - "indexmap", 6091 - "itoa", 6092 - "ryu", 6093 - "serde_core", 6094 - ] 6095 - 6096 - [[package]] 6097 name = "serde_json" 6098 version = "1.0.145" 6099 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 6979 ] 6980 6981 [[package]] 6982 - name = "tagptr" 6983 - version = "0.2.0" 6984 - source = "registry+https://github.com/rust-lang/crates.io-index" 6985 - checksum = "7b2093cf4c8eb1e67749a6762251bc9cd836b6fc171623bd0a9d324d37af2417" 6986 - 6987 - [[package]] 6988 name = "tap" 6989 version = "1.0.1" 6990 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 7160 ] 7161 7162 [[package]] 7163 - name = "tokio-native-tls" 7164 - version = "0.3.1" 7165 - source = "registry+https://github.com/rust-lang/crates.io-index" 7166 - checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2" 7167 - dependencies = [ 7168 - "native-tls", 7169 - "tokio", 7170 - ] 7171 - 7172 - [[package]] 7173 name = "tokio-postgres" 7174 version = "0.7.14" 7175 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 7229 7230 [[package]] 7231 name = "tokio-tungstenite" 7232 - version = "0.21.0" 7233 - source = "registry+https://github.com/rust-lang/crates.io-index" 7234 - checksum = "c83b561d025642014097b66e6c1bb422783339e0909e4429cde4749d1990bc38" 7235 - dependencies = [ 7236 - "futures-util", 7237 - "log", 7238 - "tokio", 7239 - "tungstenite 0.21.0", 7240 - ] 7241 - 7242 - [[package]] 7243 - name = "tokio-tungstenite" 7244 version = "0.26.2" 7245 source = "registry+https://github.com/rust-lang/crates.io-index" 7246 checksum = "7a9daff607c6d2bf6c16fd681ccb7eecc83e4e2cdc1ca067ffaadfca5de7f084" ··· 7251 "rustls-pki-types", 7252 "tokio", 7253 "tokio-rustls 0.26.4", 7254 - "tungstenite 0.26.2", 7255 "webpki-roots 0.26.11", 7256 ] 7257 ··· 7486 ] 7487 7488 [[package]] 7489 - name = "trait-variant" 7490 - version = "0.1.2" 7491 - source = "registry+https://github.com/rust-lang/crates.io-index" 7492 - checksum = "70977707304198400eb4835a78f6a9f928bf41bba420deb8fdb175cd965d77a7" 7493 - dependencies = [ 7494 - "proc-macro2", 7495 - "quote", 7496 - "syn 2.0.106", 7497 - ] 7498 - 7499 - [[package]] 7500 name = "try-lock" 7501 version = "0.2.5" 7502 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 7510 dependencies = [ 7511 "pin-project-lite", 7512 "tokio", 7513 - ] 7514 - 7515 - [[package]] 7516 - name = "tungstenite" 7517 - version = "0.21.0" 7518 - source = "registry+https://github.com/rust-lang/crates.io-index" 7519 - checksum = "9ef1a641ea34f399a848dea702823bbecfb4c486f911735368f1f137cb8257e1" 7520 - dependencies = [ 7521 - "byteorder", 7522 - "bytes", 7523 - "data-encoding", 7524 - "http 1.3.1", 7525 - "httparse", 7526 - "log", 7527 - "rand 0.8.5", 7528 - "sha1", 7529 - "thiserror 1.0.69", 7530 - "url", 7531 - "utf-8", 7532 ] 7533 7534 [[package]] ··· 7639 ] 7640 7641 [[package]] 7642 - name = "unsigned-varint" 7643 - version = "0.8.0" 7644 - source = "registry+https://github.com/rust-lang/crates.io-index" 7645 - checksum = "eb066959b24b5196ae73cb057f45598450d2c5f71460e98c49b738086eff9c06" 7646 - 7647 - [[package]] 7648 name = "untrusted" 7649 version = "0.9.0" 7650 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 7735 checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" 7736 dependencies = [ 7737 "try-lock", 7738 - ] 7739 - 7740 - [[package]] 7741 - name = "warp" 7742 - version = "0.3.7" 7743 - source = "registry+https://github.com/rust-lang/crates.io-index" 7744 - checksum = "4378d202ff965b011c64817db11d5829506d3404edeadb61f190d111da3f231c" 7745 - dependencies = [ 7746 - "bytes", 7747 - "futures-channel", 7748 - "futures-util", 7749 - "headers", 7750 - "http 0.2.12", 7751 - "hyper 0.14.32", 7752 - "log", 7753 - "mime", 7754 - "mime_guess", 7755 - "multer", 7756 - "percent-encoding", 7757 - "pin-project", 7758 - "scoped-tls", 7759 - "serde", 7760 - "serde_json", 7761 - "serde_urlencoded", 7762 - "tokio", 7763 - "tokio-tungstenite 0.21.0", 7764 - "tokio-util", 7765 - "tower-service", 7766 - "tracing", 7767 ] 7768 7769 [[package]]
··· 607 ] 608 609 [[package]] 610 name = "async-nats" 611 version = "0.39.0" 612 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 710 checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" 711 712 [[package]] 713 name = "attohttpc" 714 version = "0.28.5" 715 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 769 "object", 770 "rustc-demangle", 771 "windows-link", 772 ] 773 774 [[package]] ··· 1113 ] 1114 1115 [[package]] 1116 name = "cipher" 1117 version = "0.4.4" 1118 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 1240 ] 1241 1242 [[package]] 1243 name = "concurrent-queue" 1244 version = "2.5.0" 1245 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 1273 "once_cell", 1274 "tiny-keccak", 1275 ] 1276 1277 [[package]] 1278 name = "convert_case" ··· 1334 checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" 1335 1336 [[package]] 1337 name = "cpufeatures" 1338 version = "0.2.17" 1339 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 1496 ] 1497 1498 [[package]] 1499 name = "data-encoding" 1500 version = "2.9.0" 1501 source = "registry+https://github.com/rust-lang/crates.io-index" 1502 checksum = "2a2330da5de22e8a3cb63252ce2abb30116bf5265e89c0e01bc17015ce30a476" 1503 1504 [[package]] 1505 name = "debug_unsafe" 1506 version = "0.1.3" 1507 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 1800 ] 1801 1802 [[package]] 1803 name = "extended" 1804 version = "0.1.0" 1805 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 1909 checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" 1910 1911 [[package]] 1912 name = "form_urlencoded" 1913 version = "1.2.2" 1914 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 2261 ] 2262 2263 [[package]] 2264 name = "heapless" 2265 version = "0.8.0" 2266 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 2410 "futures-channel", 2411 "futures-core", 2412 "futures-util", 2413 "http 0.2.12", 2414 "http-body 0.4.6", 2415 "httparse", ··· 2478 ] 2479 2480 [[package]] 2481 name = "hyper-util" 2482 version = "0.1.17" 2483 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 2677 ] 2678 2679 [[package]] 2680 name = "ipnet" 2681 version = "2.11.0" 2682 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 2912 "serde", 2913 "serde_json", 2914 "simple_asn1", 2915 ] 2916 2917 [[package]] ··· 3122 checksum = "34080505efa8e45a4b816c349525ebe327ceaa8559756f0356cba97ef3bf7432" 3123 3124 [[package]] 3125 name = "lru-slab" 3126 version = "0.1.2" 3127 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 3147 ] 3148 3149 [[package]] 3150 name = "match_cfg" 3151 version = "0.1.0" 3152 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 3238 ] 3239 3240 [[package]] 3241 name = "nanoid" 3242 version = "0.4.0" 3243 source = "registry+https://github.com/rust-lang/crates.io-index" 3244 checksum = "3ffa00dec017b5b1a8b7cf5e2c008bfda1aa7e0697ac1508b491fdf2622fb4d8" 3245 dependencies = [ 3246 "rand 0.8.5", 3247 ] 3248 3249 [[package]] ··· 3450 checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" 3451 3452 [[package]] 3453 name = "openssl-probe" 3454 version = "0.1.6" 3455 source = "registry+https://github.com/rust-lang/crates.io-index" 3456 checksum = "d05e27ee213611ffe7d6348b942e8f942b37114c00cc03cec254295a4a17852e" 3457 3458 [[package]] 3459 name = "option-ext" ··· 4797 source = "registry+https://github.com/rust-lang/crates.io-index" 4798 checksum = "d429f34c8092b2d42c7c93cec323bb4adeb7c67698f70839adec842ec10c7ceb" 4799 dependencies = [ 4800 "base64 0.22.1", 4801 "bytes", 4802 "futures-core", ··· 4806 "http-body-util", 4807 "hyper 1.7.0", 4808 "hyper-rustls 0.27.7", 4809 "hyper-util", 4810 "js-sys", 4811 "log", 4812 "mime_guess", 4813 "percent-encoding", 4814 "pin-project-lite", 4815 "quinn", ··· 4820 "serde_urlencoded", 4821 "sync_wrapper", 4822 "tokio", 4823 "tokio-rustls 0.26.4", 4824 "tokio-util", 4825 "tower", ··· 4915 "serde_json", 4916 "tokio", 4917 "tokio-stream", 4918 + "tokio-tungstenite", 4919 + "tungstenite", 4920 ] 4921 4922 [[package]] ··· 4951 ] 4952 4953 [[package]] 4954 name = "rocksky-googledrive" 4955 version = "0.1.0" 4956 dependencies = [ ··· 5001 "time", 5002 "tokio", 5003 "tokio-stream", 5004 + "tokio-tungstenite", 5005 "tracing", 5006 + "tungstenite", 5007 "url", 5008 ] 5009 ··· 5178 "owo-colors", 5179 "rocksky-analytics", 5180 "rocksky-dropbox", 5181 "rocksky-googledrive", 5182 "rocksky-jetstream", 5183 "rocksky-pgpull", ··· 5511 ] 5512 5513 [[package]] 5514 name = "scopeguard" 5515 version = "1.2.0" 5516 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 5601 ] 5602 5603 [[package]] 5604 name = "serde_cbor" 5605 version = "0.11.2" 5606 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 5631 ] 5632 5633 [[package]] 5634 name = "serde_json" 5635 version = "1.0.145" 5636 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 6516 ] 6517 6518 [[package]] 6519 name = "tap" 6520 version = "1.0.1" 6521 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 6691 ] 6692 6693 [[package]] 6694 name = "tokio-postgres" 6695 version = "0.7.14" 6696 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 6750 6751 [[package]] 6752 name = "tokio-tungstenite" 6753 version = "0.26.2" 6754 source = "registry+https://github.com/rust-lang/crates.io-index" 6755 checksum = "7a9daff607c6d2bf6c16fd681ccb7eecc83e4e2cdc1ca067ffaadfca5de7f084" ··· 6760 "rustls-pki-types", 6761 "tokio", 6762 "tokio-rustls 0.26.4", 6763 + "tungstenite", 6764 "webpki-roots 0.26.11", 6765 ] 6766 ··· 6995 ] 6996 6997 [[package]] 6998 name = "try-lock" 6999 version = "0.2.5" 7000 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 7008 dependencies = [ 7009 "pin-project-lite", 7010 "tokio", 7011 ] 7012 7013 [[package]] ··· 7118 ] 7119 7120 [[package]] 7121 name = "untrusted" 7122 version = "0.9.0" 7123 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 7208 checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" 7209 dependencies = [ 7210 "try-lock", 7211 ] 7212 7213 [[package]]
-1
crates/rockskyd/Cargo.toml
··· 21 rocksky-tracklist = { path = "../tracklist" } 22 rocksky-webscrobbler = { path = "../webscrobbler" } 23 rocksky-pgpull = { path = "../pgpull" } 24 - rocksky-feed = { path = "../feed" } 25 tracing = "0.1.41" 26 tracing-subscriber = "0.3.20" 27 tracing-log = "0.2.0"
··· 21 rocksky-tracklist = { path = "../tracklist" } 22 rocksky-webscrobbler = { path = "../webscrobbler" } 23 rocksky-pgpull = { path = "../pgpull" } 24 tracing = "0.1.41" 25 tracing-subscriber = "0.3.20" 26 tracing-log = "0.2.0"
-11
crates/rockskyd/src/cmd/feed.rs
··· 1 - use anyhow::Error; 2 - use rocksky_feed::repo::{duckdb::DuckdbRepo, RepoImpl}; 3 - 4 - pub async fn serve(enable_sync: bool) -> Result<(), Error> { 5 - rocksky_feed::run(enable_sync).await?; 6 - Ok(()) 7 - } 8 - 9 - pub async fn sync() -> Result<(), Error> { 10 - rocksky_feed::sync::sync_scrobbles(RepoImpl::Duckdb(DuckdbRepo::new().await?)).await 11 - }
···
-18
crates/rockskyd/src/main.rs
··· 36 Command::new("pull") 37 .about("Pull data from a remote PostgreSQL database to your local PostgresSQL instance") 38 .long_about("Pull data from a remote PostgreSQL database to your local PostgresSQL instance. Ensure that the SOURCE_POSTGRES_URL environment variable is set to your remote PostgreSQL connection string.")) 39 - .subcommand( 40 - Command::new("feed") 41 - .about("Feed related commands") 42 - .subcommand( 43 - Command::new("serve") 44 - .arg(arg!(--sync "Enable sync mode").required(false)) 45 - .about("Serve the Rocksky Feed API"), 46 - ) 47 - .subcommand(Command::new("sync").about("Sync scrobbles feed data to DuckDB")), 48 - ) 49 } 50 51 #[tokio::main] ··· 102 Some(("pull", _)) => { 103 cmd::pull::pull_data().await?; 104 } 105 - Some(("feed", sub_m)) => match sub_m.subcommand() { 106 - Some(("serve", args)) => { 107 - let enable_sync = args.get_flag("sync"); 108 - cmd::feed::serve(enable_sync).await? 109 - } 110 - Some(("sync", _)) => cmd::feed::sync().await?, 111 - _ => println!("Unknown feed command"), 112 - }, 113 _ => { 114 println!("No valid subcommand was used. Use --help to see available commands."); 115 }
··· 36 Command::new("pull") 37 .about("Pull data from a remote PostgreSQL database to your local PostgresSQL instance") 38 .long_about("Pull data from a remote PostgreSQL database to your local PostgresSQL instance. Ensure that the SOURCE_POSTGRES_URL environment variable is set to your remote PostgreSQL connection string.")) 39 } 40 41 #[tokio::main] ··· 92 Some(("pull", _)) => { 93 cmd::pull::pull_data().await?; 94 } 95 _ => { 96 println!("No valid subcommand was used. Use --help to see available commands."); 97 }