A very performant and light (2mb in memory) link shortener and tracker. Written in Rust and React and uses Postgres/SQLite.

Compare changes

Choose any two refs to compare.

Changed files
+10 -43
.github
workflows
src
+2 -2
.github/workflows/docker-image.yml
··· 29 29 30 30 - name: Install cosign 31 31 if: github.event_name != 'pull_request' 32 - uses: sigstore/cosign-installer@v3.7.0 32 + uses: sigstore/cosign-installer@v3.8.1 33 33 with: 34 - cosign-release: "v2.4.1" 34 + cosign-release: "v2.4.3" 35 35 36 36 - name: Setup Docker buildx 37 37 uses: docker/setup-buildx-action@v3
+7 -36
Cargo.lock
··· 1440 1440 1441 1441 [[package]] 1442 1442 name = "nu-ansi-term" 1443 - version = "0.46.0" 1443 + version = "0.50.1" 1444 1444 source = "registry+https://github.com/rust-lang/crates.io-index" 1445 - checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" 1445 + checksum = "d4a28e057d01f97e61255210fcff094d74ed0466038633e95017f5beb68e4399" 1446 1446 dependencies = [ 1447 - "overload", 1448 - "winapi", 1447 + "windows-sys 0.52.0", 1449 1448 ] 1450 1449 1451 1450 [[package]] ··· 1525 1524 version = "1.20.2" 1526 1525 source = "registry+https://github.com/rust-lang/crates.io-index" 1527 1526 checksum = "1261fe7e33c73b354eab43b1273a57c8f967d0391e80353e51f764ac02cf6775" 1528 - 1529 - [[package]] 1530 - name = "overload" 1531 - version = "0.1.1" 1532 - source = "registry+https://github.com/rust-lang/crates.io-index" 1533 - checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" 1534 1527 1535 1528 [[package]] 1536 1529 name = "parking" ··· 2431 2424 2432 2425 [[package]] 2433 2426 name = "tokio" 2434 - version = "1.43.0" 2427 + version = "1.43.1" 2435 2428 source = "registry+https://github.com/rust-lang/crates.io-index" 2436 - checksum = "3d61fa4ffa3de412bfea335c6ecff681de2b609ba3c77ef3e00e521813a9ed9e" 2429 + checksum = "492a604e2fd7f814268a378409e6c92b5525d747d10db9a229723f55a417958c" 2437 2430 dependencies = [ 2438 2431 "backtrace", 2439 2432 "bytes", ··· 2528 2521 2529 2522 [[package]] 2530 2523 name = "tracing-subscriber" 2531 - version = "0.3.19" 2524 + version = "0.3.20" 2532 2525 source = "registry+https://github.com/rust-lang/crates.io-index" 2533 - checksum = "e8189decb5ac0fa7bc8b96b7cb9b2701d60d48805aca84a238004d665fcc4008" 2526 + checksum = "2054a14f5307d601f88daf0553e1cbf472acc4f2c51afab632431cdcd72124d5" 2534 2527 dependencies = [ 2535 2528 "nu-ansi-term", 2536 2529 "sharded-slab", ··· 2738 2731 ] 2739 2732 2740 2733 [[package]] 2741 - name = "winapi" 2742 - version = "0.3.9" 2743 - source = "registry+https://github.com/rust-lang/crates.io-index" 2744 - checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" 2745 - dependencies = [ 2746 - "winapi-i686-pc-windows-gnu", 2747 - "winapi-x86_64-pc-windows-gnu", 2748 - ] 2749 - 2750 - [[package]] 2751 - name = "winapi-i686-pc-windows-gnu" 2752 - version = "0.4.0" 2753 - source = "registry+https://github.com/rust-lang/crates.io-index" 2754 - checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" 2755 - 2756 - [[package]] 2757 2734 name = "winapi-util" 2758 2735 version = "0.1.9" 2759 2736 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 2761 2738 dependencies = [ 2762 2739 "windows-sys 0.59.0", 2763 2740 ] 2764 - 2765 - [[package]] 2766 - name = "winapi-x86_64-pc-windows-gnu" 2767 - version = "0.4.0" 2768 - source = "registry+https://github.com/rust-lang/crates.io-index" 2769 - checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" 2770 2741 2771 2742 [[package]] 2772 2743 name = "windows-core"
+1 -1
Cargo.toml
··· 13 13 actix-web = "4.4" 14 14 actix-files = "0.6" 15 15 actix-cors = "0.6" 16 - tokio = { version = "1.36", features = ["rt-multi-thread", "macros"] } 16 + tokio = { version = "1.43", features = ["rt-multi-thread", "macros"] } 17 17 sqlx = { version = "0.8", features = ["runtime-tokio", "postgres", "sqlite", "chrono"] } 18 18 serde = { version = "1.0", features = ["derive"] } 19 19 serde_json = "1.0"
-4
src/handlers.rs
··· 707 707 WHERE link_id = $1 708 708 GROUP BY DATE(created_at) 709 709 ORDER BY DATE(created_at) ASC 710 - LIMIT 30 711 710 "#, 712 711 ) 713 712 .bind(link_id) ··· 724 723 WHERE link_id = ? 725 724 GROUP BY DATE(created_at) 726 725 ORDER BY DATE(created_at) ASC 727 - LIMIT 30 728 726 "#, 729 727 ) 730 728 .bind(link_id) ··· 789 787 AND query_source != '' 790 788 GROUP BY DATE(created_at), query_source 791 789 ORDER BY DATE(created_at) ASC, COUNT(*) DESC 792 - LIMIT 300 793 790 "#, 794 791 ) 795 792 .bind(link_id) ··· 809 806 AND query_source != '' 810 807 GROUP BY DATE(created_at), query_source 811 808 ORDER BY DATE(created_at) ASC, COUNT(*) DESC 812 - LIMIT 300 813 809 "#, 814 810 ) 815 811 .bind(link_id)