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 607 ] 608 608 609 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 610 name = "async-nats" 635 611 version = "0.39.0" 636 612 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 734 710 checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" 735 711 736 712 [[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 713 name = "attohttpc" 798 714 version = "0.28.5" 799 715 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 853 769 "object", 854 770 "rustc-demangle", 855 771 "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 772 ] 873 773 874 774 [[package]] ··· 1213 1113 ] 1214 1114 1215 1115 [[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 1116 name = "cipher" 1231 1117 version = "0.4.4" 1232 1118 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 1354 1240 ] 1355 1241 1356 1242 [[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 1243 name = "concurrent-queue" 1375 1244 version = "2.5.0" 1376 1245 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 1404 1273 "once_cell", 1405 1274 "tiny-keccak", 1406 1275 ] 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 1276 1414 1277 [[package]] 1415 1278 name = "convert_case" ··· 1471 1334 checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" 1472 1335 1473 1336 [[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 1337 name = "cpufeatures" 1484 1338 version = "0.2.17" 1485 1339 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 1642 1496 ] 1643 1497 1644 1498 [[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 1499 name = "data-encoding" 1660 1500 version = "2.9.0" 1661 1501 source = "registry+https://github.com/rust-lang/crates.io-index" 1662 1502 checksum = "2a2330da5de22e8a3cb63252ce2abb30116bf5265e89c0e01bc17015ce30a476" 1663 1503 1664 1504 [[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 1505 name = "debug_unsafe" 1686 1506 version = "0.1.3" 1687 1507 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 1980 1800 ] 1981 1801 1982 1802 [[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 1803 name = "extended" 1994 1804 version = "0.1.0" 1995 1805 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 2099 1909 checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" 2100 1910 2101 1911 [[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 1912 name = "form_urlencoded" 2118 1913 version = "1.2.2" 2119 1914 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 2466 2261 ] 2467 2262 2468 2263 [[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 2264 name = "heapless" 2494 2265 version = "0.8.0" 2495 2266 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 2639 2410 "futures-channel", 2640 2411 "futures-core", 2641 2412 "futures-util", 2642 - "h2 0.3.27", 2643 2413 "http 0.2.12", 2644 2414 "http-body 0.4.6", 2645 2415 "httparse", ··· 2708 2478 ] 2709 2479 2710 2480 [[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 2481 name = "hyper-util" 2728 2482 version = "0.1.17" 2729 2483 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 2923 2677 ] 2924 2678 2925 2679 [[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 2680 name = "ipnet" 2938 2681 version = "2.11.0" 2939 2682 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 3169 2912 "serde", 3170 2913 "serde_json", 3171 2914 "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 2915 ] 3182 2916 3183 2917 [[package]] ··· 3388 3122 checksum = "34080505efa8e45a4b816c349525ebe327ceaa8559756f0356cba97ef3bf7432" 3389 3123 3390 3124 [[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 3125 name = "lru-slab" 3401 3126 version = "0.1.2" 3402 3127 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 3422 3147 ] 3423 3148 3424 3149 [[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 3150 name = "match_cfg" 3437 3151 version = "0.1.0" 3438 3152 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 3524 3238 ] 3525 3239 3526 3240 [[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 3241 name = "nanoid" 3590 3242 version = "0.4.0" 3591 3243 source = "registry+https://github.com/rust-lang/crates.io-index" 3592 3244 checksum = "3ffa00dec017b5b1a8b7cf5e2c008bfda1aa7e0697ac1508b491fdf2622fb4d8" 3593 3245 dependencies = [ 3594 3246 "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 3247 ] 3613 3248 3614 3249 [[package]] ··· 3815 3450 checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" 3816 3451 3817 3452 [[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 3453 name = "openssl-probe" 3845 3454 version = "0.1.6" 3846 3455 source = "registry+https://github.com/rust-lang/crates.io-index" 3847 3456 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 3457 3861 3458 [[package]] 3862 3459 name = "option-ext" ··· 5200 4797 source = "registry+https://github.com/rust-lang/crates.io-index" 5201 4798 checksum = "d429f34c8092b2d42c7c93cec323bb4adeb7c67698f70839adec842ec10c7ceb" 5202 4799 dependencies = [ 5203 - "async-compression", 5204 4800 "base64 0.22.1", 5205 4801 "bytes", 5206 4802 "futures-core", ··· 5210 4806 "http-body-util", 5211 4807 "hyper 1.7.0", 5212 4808 "hyper-rustls 0.27.7", 5213 - "hyper-tls", 5214 4809 "hyper-util", 5215 4810 "js-sys", 5216 4811 "log", 5217 4812 "mime_guess", 5218 - "native-tls", 5219 4813 "percent-encoding", 5220 4814 "pin-project-lite", 5221 4815 "quinn", ··· 5226 4820 "serde_urlencoded", 5227 4821 "sync_wrapper", 5228 4822 "tokio", 5229 - "tokio-native-tls", 5230 4823 "tokio-rustls 0.26.4", 5231 4824 "tokio-util", 5232 4825 "tower", ··· 5322 4915 "serde_json", 5323 4916 "tokio", 5324 4917 "tokio-stream", 5325 - "tokio-tungstenite 0.26.2", 5326 - "tungstenite 0.26.2", 4918 + "tokio-tungstenite", 4919 + "tungstenite", 5327 4920 ] 5328 4921 5329 4922 [[package]] ··· 5358 4951 ] 5359 4952 5360 4953 [[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 4954 name = "rocksky-googledrive" 5388 4955 version = "0.1.0" 5389 4956 dependencies = [ ··· 5434 5001 "time", 5435 5002 "tokio", 5436 5003 "tokio-stream", 5437 - "tokio-tungstenite 0.26.2", 5004 + "tokio-tungstenite", 5438 5005 "tracing", 5439 - "tungstenite 0.26.2", 5006 + "tungstenite", 5440 5007 "url", 5441 5008 ] 5442 5009 ··· 5611 5178 "owo-colors", 5612 5179 "rocksky-analytics", 5613 5180 "rocksky-dropbox", 5614 - "rocksky-feed", 5615 5181 "rocksky-googledrive", 5616 5182 "rocksky-jetstream", 5617 5183 "rocksky-pgpull", ··· 5945 5511 ] 5946 5512 5947 5513 [[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 5514 name = "scopeguard" 5955 5515 version = "1.2.0" 5956 5516 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 6041 5601 ] 6042 5602 6043 5603 [[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 5604 name = "serde_cbor" 6055 5605 version = "0.11.2" 6056 5606 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 6081 5631 ] 6082 5632 6083 5633 [[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 5634 name = "serde_json" 6098 5635 version = "1.0.145" 6099 5636 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 6979 6516 ] 6980 6517 6981 6518 [[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 6519 name = "tap" 6989 6520 version = "1.0.1" 6990 6521 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 7160 6691 ] 7161 6692 7162 6693 [[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 6694 name = "tokio-postgres" 7174 6695 version = "0.7.14" 7175 6696 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 7229 6750 7230 6751 [[package]] 7231 6752 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 6753 version = "0.26.2" 7245 6754 source = "registry+https://github.com/rust-lang/crates.io-index" 7246 6755 checksum = "7a9daff607c6d2bf6c16fd681ccb7eecc83e4e2cdc1ca067ffaadfca5de7f084" ··· 7251 6760 "rustls-pki-types", 7252 6761 "tokio", 7253 6762 "tokio-rustls 0.26.4", 7254 - "tungstenite 0.26.2", 6763 + "tungstenite", 7255 6764 "webpki-roots 0.26.11", 7256 6765 ] 7257 6766 ··· 7486 6995 ] 7487 6996 7488 6997 [[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 6998 name = "try-lock" 7501 6999 version = "0.2.5" 7502 7000 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 7510 7008 dependencies = [ 7511 7009 "pin-project-lite", 7512 7010 "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 7011 ] 7533 7012 7534 7013 [[package]] ··· 7639 7118 ] 7640 7119 7641 7120 [[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 7121 name = "untrusted" 7649 7122 version = "0.9.0" 7650 7123 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 7735 7208 checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" 7736 7209 dependencies = [ 7737 7210 "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 7211 ] 7768 7212 7769 7213 [[package]]
-1
crates/rockskyd/Cargo.toml
··· 21 21 rocksky-tracklist = { path = "../tracklist" } 22 22 rocksky-webscrobbler = { path = "../webscrobbler" } 23 23 rocksky-pgpull = { path = "../pgpull" } 24 - rocksky-feed = { path = "../feed" } 25 24 tracing = "0.1.41" 26 25 tracing-subscriber = "0.3.20" 27 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 36 Command::new("pull") 37 37 .about("Pull data from a remote PostgreSQL database to your local PostgresSQL instance") 38 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 39 } 50 40 51 41 #[tokio::main] ··· 102 92 Some(("pull", _)) => { 103 93 cmd::pull::pull_data().await?; 104 94 } 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 95 _ => { 114 96 println!("No valid subcommand was used. Use --help to see available commands."); 115 97 }