julyx10/lap
An offline-first photo manager for large local libraries
Vue★ 2,929+122 that day#9 on trendingC 59.4 health2.08% duplicated
C59.4/100
Duplication80
2.7% in vue, rust, javascript, typescript, bash, cpp, perl, c, powershell, objectivecDead code92
0.8%Complexity34
79.1%Most complex files
- src-tauri/src/t_sqlite.rs2525 cx
- src-vite/src/components/Content.vue1522 cx
- src-tauri/src/t_utils.rs886 cx
- src-tauri/src/t_cmds.rs678 cx
- src-vite/src/common/api.js466 cx
- src-tauri/src/t_image.rs381 cx
- src-tauri/src/t_dedup.rs262 cx
- src-tauri/src/t_video.rs236 cx
- src-vite/src/views/ImageEditor.vue204 cx
- src-vite/src/common/utils.ts199 cx
Dead code 0.81% unused · 58 findings
- src-vite/src/components/SearchBox.vueunused-file
- src-vite/src/components/Person.vue:showBetaTooltipunused-symbol
- src-vite/src/components/Content.vue:cancelIndexingunused-symbol
- src-vite/src/components/FileInfo.vue:previewFormatLabelunused-symbol
- src-vite/src/common/shortcuts.ts:getBindingSignaturesunused-symbol
- src-vite/src/components/MoveTo.vue:propsunused-symbol
- src-vite/src/components/TitleBar.vue:propsunused-symbol
- src-vite/src/components/FileInfo.vue:histogramChannelLabelunused-symbol
- src-vite/src/components/SelectionPanel.vue:multiSelectDateRangeunused-symbol
- src-vite/src/views/Home.vue:isCheckingUpdateunused-symbol
459files
140,984lines
892,719tokens
267clones
2,929duplicated lines (2.08%)
21,608duplicated tokens (2.42%)
By format
| Format | Files | Lines | Clones | Duplicated lines | Duplication |
|---|---|---|---|---|---|
| rust | 29 | 32,537 | 140 | 1,507 | 4.63% |
| typescript | 71 | 30,647 | 71 | 735 | 2.4% |
| yaml | 6 | 1,389 | 22 | 366 | 26.35% |
| markdown | 39 | 3,787 | 11 | 85 | 2.24% |
| bash | 21 | 1,277 | 8 | 72 | 5.64% |
| html | 58 | 5,778 | 6 | 64 | 1.11% |
| javascript | 20 | 4,920 | 4 | 37 | 0.75% |
| json | 15 | 14,964 | 1 | 33 | 0.22% |
| markup | 119 | 1,052 | 1 | 10 | 0.95% |
| css | 11 | 618 | 1 | 6 | 0.97% |
Largest clones
- 65 lines · 448 tokens yaml.github/workflows/pr-build.yml:257–321⇆.github/workflows/release-windows.yml:104–170
- 49 lines · 375 tokens yaml.github/workflows/pr-build.yml:73–121⇆.github/workflows/release.yml:86–134
- 31 lines · 254 tokens typescriptsrc-vite/src/components/Content.vue:2444–2474⇆src-vite/src/views/ImageViewer.vue:694–723
- 25 lines · 241 tokens rustsrc-tauri/src/t_dedup.rs:315–339⇆src-tauri/src/t_sqlite.rs:3258–3285
- 39 lines · 237 tokens yaml.github/workflows/pr-build.yml:217–255⇆.github/workflows/release-windows.yml:64–102
- 34 lines · 231 tokens rustsrc-tauri/src/t_heif.rs:92–125⇆src-tauri/src/t_heif.rs:134–167
- 21 lines · 212 tokens rustsrc-tauri/src/t_sqlite.rs:9125–9145⇆src-tauri/src/t_sqlite.rs:9203–9223
- 24 lines · 193 tokens rustsrc-tauri/src/t_sqlite.rs:4981–5004⇆src-tauri/src/t_sqlite.rs:5970–5993
- 20 lines · 184 tokens rustsrc-tauri/src/t_sqlite.rs:6079–6098⇆src-tauri/src/t_sqlite.rs:6110–6129
- 28 lines · 181 tokens rustsrc-tauri/src/t_cmds.rs:1598–1625⇆src-tauri/src/t_cmds.rs:1677–1704
Trending appearances
| Day | Rank | Stars | Files | Lines | Clones | Duplication | Health | Commit |
|---|---|---|---|---|---|---|---|---|
| Sep 25, 2026 | #9 | 2,929 (+122) | 459 | 140,984 | 267 | 2.08% | C 59.4 | 69a1633 |
Want this for your own project? Install jscpd and run jscpd .