plietar/librespot
Open Source Spotify client library
- Repository: https://github.com/plietar/librespot
- Commit:
8971d3aa6864469a79c2640bb2afaf41c3d3728d - Generated: 2026-11-13T23:30:29+00:00
- Scorer 0.1.0, scoring prov-4+qual-2+sec-2, report schema v2
Scores
| Pillar | Score | Signal | Confidence | Coverage |
|---|---|---|---|---|
| AI provenance (estimated AI-generated share) | 0 | none-detected | 65% | 100% |
| Code quality | 64 | weak | 90% | 100% |
| Security | 55 | weak | 85% | 100% |
AI provenance
No AI attribution or AI-consistent velocity signals detected.
- Explicitly attributed share (lower bound): 0.0%
- Unattributed share in AI-consistent velocity bursts: 0.0%
- Estimated AI-generated share: 0.0%
| Month | Lines added | Attributed to AI |
|---|---|---|
| 2016-11 | 26,935 | 0% |
| 2016-12 | 134 | 0% |
| 2017-01 | 8,759 | 0% |
| 2017-02 | 913 | 0% |
| 2017-03 | 1 | 0% |
| 2017-04 | 973 | 0% |
| 2017-05 | 126 | 0% |
| 2017-06 | 44 | 0% |
| 2017-07 | 510 | 0% |
| 2017-08 | 526 | 0% |
| 2017-09 | 3,653 | 0% |
| 2017-10 | 13 | 0% |
AI provenance describes how code was produced; it is not a quality judgment. Unless attribution is explicit, these are signals consistent with AI generation, not proof. Squash/rebase workflows, imported code, and rewritten history reduce accuracy.
Code quality
Code quality is weak: test-to-source ratio 0.00, no CI test run detected; 8% of function code in complex or long functions; 1% duplicated lines. Weakest area: testing.
| Area | Score |
|---|---|
| Complexity (lizard) | 78 |
| Duplication | 94 |
| Code smells (Opengrep) | 98 |
| Tests and CI | 15 |
| Documentation | 65 |
| Type safety | n/a |
| Process (Scorecard review/maintenance) | n/a |
- Functions: 289; mean complexity 2.1, 90th percentile 4; 2 complex and 1 long functions
- Duplicated lines: 1.1% of 3,265 compared
- Tests: 0 test lines for 5,423 source lines (ratio 0.00); CI test commands: none detected; 0% of recent source commits also change tests
- Docs missing or thin: contributing, changelog
Most complex functions:
- handle_frame in src/spirc.rs: complexity 21, 89 lines
- handle_command in src/player.rs: complexity 20, 82 lines
- in src/main.rs: complexity 3, 101 lines
Security
Security posture is weak: 0 possible secret(s) in the tree, 1 only in history; 27 known vulnerabilities in 20 dependencies; 1 high-severity SAST findings. Weakest area: posture.
| Area | Score |
|---|---|
| Secrets (gitleaks, tree + history) | 85 |
| Static analysis (Opengrep) | 81 |
| Vulnerable dependencies (OSV) | 20 |
| CI workflows (zizmor) | n/a |
| Posture (policy, updates, signing, lockfiles) | 0 |
| OpenSSF Scorecard | n/a |
-
Known vulnerabilities: 27 in 20 packages (critical 3, high 3, medium 6, low 1)
-
Posture checks passed: none; missing: security policy, dependency updates, signed commits, lockfiles
Top findings
| Severity | Finding | Location |
|---|---|---|
| critical | osv/GHSA-h3qr-rq2j-74w4: hyper@0.11.2 (crates.io) is affected by RUSTSEC-2020-0008, GHSA-h3qr-rq2j-74w4 |
Cargo.lock |
| critical | osv/GHSA-5h46-h7hh-c6x9: hyper@0.11.2 (crates.io) is affected by RUSTSEC-2021-0079, GHSA-5h46-h7hh-c6x9 |
Cargo.lock |
| critical | osv/GHSA-qpjr-ch72-2qq4: portaudio-rs@0.3.0 (crates.io) is affected by RUSTSEC-2019-0022, GHSA-qpjr-ch72-2qq4 |
Cargo.lock |
| high | opengrep/dockerfile.security.missing-user: By not specifying a USER, a program in the container may run as 'root'. This is a security hazard. If an attacker can control a process running as root, they may have control over the container. Ensure that the last USER in a Dockerfile is a USER other than 'root'. [confidence medium] |
contrib/Dockerfile:46 |
| high | osv/GHSA-mh6h-f25p-98f8: protobuf@1.4.1 (crates.io) is affected by RUSTSEC-2019-0003, GHSA-mh6h-f25p-98f8 |
Cargo.lock |
| high | osv/GHSA-m5pq-gvj9-9vr8: regex@0.2.2 (crates.io) is affected by RUSTSEC-2022-0013, GHSA-m5pq-gvj9-9vr8 |
Cargo.lock |
| high | osv/GHSA-55m5-whcv-c49c: smallvec@0.2.1 (crates.io) is affected by RUSTSEC-2018-0018, GHSA-55m5-whcv-c49c, GHSA-66p5-j55p-32r9 |
Cargo.lock |
| medium | gitleaks/private-key: Possible private-key secret in history (commit 4b4bc2f4e1); removed from the current tree but still retrievable |
src/data/spotilocal.key:1 |
| medium | osv/RUSTSEC-2025-0058: custom_derive@0.1.7 (crates.io) is affected by RUSTSEC-2025-0058 |
Cargo.lock |
| medium | osv/RUSTSEC-2025-0121: gcc@0.3.51 (crates.io) is affected by RUSTSEC-2025-0121 |
Cargo.lock |
| medium | osv/GHSA-f3pg-qwvg-p99c: hyper@0.11.2 (crates.io) is affected by RUSTSEC-2021-0078, GHSA-f3pg-qwvg-p99c |
Cargo.lock |
| medium | osv/GHSA-f67m-9j94-qv9j: hyper@0.11.2 (crates.io) is affected by RUSTSEC-2022-0022, GHSA-f67m-9j94-qv9j |
Cargo.lock |
| medium | osv/GHSA-h97m-ww89-6jmq: idna@0.1.4 (crates.io) is affected by RUSTSEC-2024-0421, GHSA-h97m-ww89-6jmq |
Cargo.lock |
| medium | osv/RUSTSEC-2020-0080: miow@0.2.1 (crates.io) is affected by RUSTSEC-2020-0080 |
Cargo.lock |
| medium | osv/RUSTSEC-2020-0016: net2@0.2.30 (crates.io) is affected by RUSTSEC-2020-0016 |
Cargo.lock |
| medium | osv/GHSA-458v-4hrf-g3m4: net2@0.2.30 (crates.io) is affected by RUSTSEC-2020-0078, GHSA-458v-4hrf-g3m4, GHSA-c79c-gwph-gqfm |
Cargo.lock |
| medium | osv/GHSA-2gh3-rmm4-6rq5: protobuf@1.4.1 (crates.io) is affected by RUSTSEC-2024-0437, GHSA-2gh3-rmm4-6rq5 |
Cargo.lock |
| medium | osv/RUSTSEC-2016-0005: rust-crypto@0.2.36 (crates.io) is affected by RUSTSEC-2016-0005 |
Cargo.lock |
| medium | osv/GHSA-jp3w-3q88-34cf: rust-crypto@0.2.36 (crates.io) is affected by RUSTSEC-2022-0011, GHSA-jp3w-3q88-34cf |
Cargo.lock |
| medium | osv/GHSA-2226-4v3c-cff8: rustc-serialize@0.3.24 (crates.io) is affected by RUSTSEC-2022-0004, GHSA-2226-4v3c-cff8 |
Cargo.lock |
| medium | osv/RUSTSEC-2025-0025: rustc-serialize@0.3.24 (crates.io) is affected by RUSTSEC-2025-0025 |
Cargo.lock |
| medium | osv/RUSTSEC-2023-0081: safemem@0.2.0 (crates.io) is affected by RUSTSEC-2023-0081 |
Cargo.lock |
| medium | osv/RUSTSEC-2018-0015: term@0.4.6 (crates.io) is affected by RUSTSEC-2018-0015 |
Cargo.lock |
| medium | osv/GHSA-9hpw-r23r-xgm5: thread_local@0.3.4 (crates.io) is affected by RUSTSEC-2022-0006, GHSA-9hpw-r23r-xgm5 |
Cargo.lock |
| medium | osv/GHSA-wcg3-cvx6-7396: time@0.1.38 (crates.io) is affected by RUSTSEC-2020-0071, GHSA-wcg3-cvx6-7396 |
Cargo.lock |
Static signals only: the scorer never runs the project's code. Secret findings are pattern matches that were not verified, and secret values are never stored.
Repository profile
- Source lines: 5,423; test lines: 0
| Language | Lines |
|---|---|
| Rust | 5,386 |
| Shell | 37 |