NEW Rust çekirdeği + Ink tabanlı TUI — 9 ekosistem

Bağımlılıklarını netleştir. sterilize et.

9 ekosistemde üçüncü parti bağımlılıklarını tara, her lisansı sınıflandır (permissive / weak copyleft / strong copyleft / unknown), ticari kullanım riskini puanla, sonuçları hızlı ve renkli bir terminal arayüzünde gez.

$ npm install -g @lunanoir/dep-lens
dep-lens — ~/projects/my-app
$ dep-lens --path .
scanning 9 ecosystems · 31 packages found
────────────────────────────────────────────
◉‿◉ 84 / 100 health
dep-lens-core 0.1.0
1.2s · 31 pkg
0
Permissive
0
Weak
0
Strong
0
Unknown
### == ! ?
PackageVersiyonLisansKategoriRisk
react18.3.1MITPermissive0
express4.19.2MITPermissive0
tokio1.38.0MITPermissive0
axios1.7.2MITPermissive0
MPL-kit2.4.1MPL-2.0Weak40
lgpl-lib3.0.0LGPL-3.0Weak50
gpl-engine3.0.1GPL-3.0Strong90
agpl-svc1.4.0AGPL-3.0Strong100
???-legacy0.9.3—Unknown60
q quit · enter detail · f filter · 1-4 quick filter · e export
0
Ekosistem
0
Lisans kategorisi
0/100
Risk puanı
0
Emoji
Özellikler

Tek bir komutla tam görünürlük

dep-lens; Rust hızında tarama, akıllı lisans sınıflandırma, renkli terminal arayüzü ve CI gate'lerini tek bir İkili dosyada birleştirir.

9 ekosistem desteği

npm, Cargo, Go, Python, Ruby, PHP, Java, Dart ve C/C++ manifestlerini otomatik keşfeder ve her biri için doğru lisans kaynağını kullanır.

node_modules · cargo metadata · lockfiles

Akıllı lisans sınıflandırma

SPDX ifadeleri otomatik katlanır: MIT OR Apache-2.0 en az kısıtlayıcı seçim, MIT AND GPL-2.0 en fazla kısıtlayıcı seçim olarak değerlendirilir.

SPDX · -only/-or-later · WITH exceptions

Ticari risk puanı

Her lisans kategorisine 0-100 arası risk puanı verir. AGPL ve SSPL 100, GPL ailesi 90, MPL/EPL/LGPL 40-55, permissive 0, unknown 60. Karar vermek için saniyeler.

0 · 40-55 · 90-100 · 60

Etkileşimli TUI

Ink tabanlı arayüz; sağlık skoruyla reaksiyon gösteren "doktor yüzü", sayım animasyonları, oran çubuğu, satır satır açılan tablo, filtre/sırala/dışa aktarma — hepsi saf ASCII, hiç emoji yok.

Ink · truecolor ANSI · ease-out animasyon

CI/CD kapıları

--fail-on gpl ile strong copyleft lisansları tespit edildiğinde exit code 1 döner. --fail-on agpl sadece AGPL için tetiklenir. Pipeline'ınız otomatik kilitlenir.

--fail-on · --json · npx friendly

Rust çekirdek, Node kabuk

Tarama motoru Rust'ta yazılı; Linux x64, macOS x64/arm64 ve Windows x64 için ön derlenmiş binary'ler npm üzerinden otomatik seçilir. TUI TypeScript + Ink ile terminalde çalışır.

cargo build --release + tsc

Lockfile gerektirmez

Python'da sadece pyproject.toml varsa her bağımlılığı versiyon spec'i ile listeler. Java'da build.gradle üzerinden group:artifact:version koordinatlarını doğrudan ayrıştırır.

PEP 621 · Poetry · Gradle KTS

HTML & JSON rapor

--json stdout'a ham JSON, --html report.html bağımsız bir HTML rapor üretir. licenseSource alanı lisansın nereden geldiğini kaydeder: declared / licenseFile / none.

--json · --html · --ignore

Tam yerelleştirme

Tüm etiketler, tavsiye metinleri ve durum mesajları Türkçe'ye çevrilmiştir. --tr bayrağıyla arayüz anında dil değiştirir. Kurulum sihirbazı terminal dilini de algılar.

--tr · ~/.config/dep-lens/config.json
Ekosistemler

9 ekosistem, tek tarayıcı

Her ekosistem için doğru manifest, doğru lockfile ve doğru lisans önbelleği kullanılır. Hiçbir konfigürasyon gerekmez.

npm / yarn / pnpm

package.json + node_modules

license alanı → LICENSE dosyası

Cargo (Rust)

Cargo.toml via cargo metadata

crate metadata → LICENSE

Go

go.mod

$GOPATH/pkg/mod LICENSE

Python

poetry.lock · uv.lock · Pipfile.lock · requirements.txt · pyproject.toml

.venv/venv *.dist-info/METADATA

Ruby

Gemfile.lock

gemspec license → LICENSE

PHP

composer.lock

composer.json license alanı

Java / Gradle / Maven

pom.xml · gradle.lockfile · build.gradle(.kts)

~/.m2/repository POM

Dart / Flutter

pubspec.lock

~/.pub-cache/hosted LICENSE

C / C++

vcpkg.json · conanfile.txt

vcpkg_installed copyright
Sınıflandırma

Her lisans tek bir kategoriye indirgenir

SPDX ifadeleri otomatik katlanır, -only / -or-later sonekleri ve WITH istisna maddeleri normalize edilir. Araç otomatik rapor üretir; hukuki tavsiye değildir.

● Permissive

Serbest kullanım

0/ 100 risk
ticari kullanım: ✓ evet
  • MIT
  • Apache-2.0
  • BSD-2/3-Clause
  • ISC · 0BSD
  • Unlicense · CC0
  • Zlib · BSL-1.0
  • Artistic-2.0 ...
● Weak Copyleft

Dosya bazlı copyleft

40-55/ 100 risk
ticari kullanım: ⚠ dikkat
  • LGPL-2.0/2.1/3.0 → 50
  • MPL-1.1/2.0 → 40
  • EPL-1.0/2.0 → 45
  • CDDL-1.0/1.1 → 55
● Strong Copyleft

Türev eser kısıtlı

90-100/ 100 risk
ticari kullanım: ⛔ kısıtlı
  • GPL-1.0/2.0/3.0 → 90
  • AGPL-1.0/3.0 → 100
  • SSPL-1.0 → 100
  • EUPL-1.1/1.2 · OSL-3.0
● Unknown

İnceleme gerekli

60/ 100 risk
ticari kullanım: ? incele
  • Lisans eksik
  • Tanınmayan format
  • SEE LICENSE IN ... yer tutucu
  • Conanfile'ta metadata yok
Kullanım

Tek komutla çalışmaya başla

İlk çalıştırmada kurulum sihirbazı proje ekosistemlerini listeler, dil seçimi yaptırır ve PATH kontrolü yapar. Tekrar çalıştırmak için dep-lens --setup.

~/projects/my-app · zsh
# Mevcut dizin için etkileşimli TUI
dep-lens

# Başka bir projeyi tara
dep-lens --path ../my-app

# Hariç tutulacak paketler
dep-lens --ignore left-pad --ignore internal-pkg-a,internal-pkg-b
stdout · JSON
# stdout'a ham JSON (TTY değilse varsayılan)
dep-lens --json | jq '.packages[] | select(.category=="strong")'

# örnek çıktı
{
  "name": "gpl-engine",
  "version": "3.0.1",
  "license": "GPL-3.0-only",
  "category": "strong",
  "risk": 90,
  "licenseSource": "declared",
  "ecosystem": "npm"
}
report.html · standalone
# Bağımsız HTML rapor üret
dep-lens --html report.html

# Tüm paketler, renk kodlu kategoriler,
# kaynak lisans meta-data, JSON'a göre
# daha gözden geçirilebilir bir çıktı.

# CI artifact olarak yayınla:
dep-lens --html ./artifacts/licenses.html
Türkçe arayüz
# Tüm etiketler, tavsiyeler ve durum mesajları
dep-lens --tr

# İlk çalıştırmada kurulum sihirbazı dili sorar,
# seçim ~/.config/dep-lens/config.json'a kaydedilir.

# Sihirbazı tekrar çalıştır:
dep-lens --setup
exit code 1 · gate
# Strong copyleft varsa exit 1
dep-lens --fail-on gpl     # GPL-2.0, GPL-3.0, AGPL-3.0

# Sadece AGPL
dep-lens --fail-on agpl    # AGPL-3.0 only

# CI'da JSON + gate birlikte
dep-lens --json --fail-on gpl > report.json
dep-lens --test · self-check
dep-lens --test /path/to/project

  PASS  native scanner binary  dep-lens-core 0.1.0
  PASS  scan                   31 package(s) found
  PASS  npm / yarn / pnpm      19 package(s)
  PASS  Cargo                  3 package(s)
  WARN  license coverage       3 package(s) with unknown license

all checks passed
CI/CD

Pipeline'ını copyleft'e karşı kilitle

Tek satırlık bir GitHub Actions adımı, projenize GPL/AGPL/SSPL kaçmasını engeller. JSON çıktısını artifact olarak yayınla, HTML raporu ekiplere paylaş.

1

npx ile çalıştır, kurulum gerekmez

CI ajanında npm install -g yapmak yerine npx dep-lens çağrısı yeterli. Platform binary'si otomatik çekilir.

2

--fail-on ile çıkış kodu kontrolü

--fail-on gpl strong copyleft tetikler, --fail-on agpl sadece AGPL. Exit code 1 → adım kırmızı → PR engellenir.

3

JSON ve HTML artifact'leri

JSON'u JQ ile sorgula, HTML raporu tarayıcıda paylaş. licenseSource alanı lisansın declared mı, LICENSE dosyasından mı yoksa hiç yok mu olduğunu kaydeder.

4

--ignore ile bilinen istisnalar

İç paketler, araştırılmış özel paketler veya metrik dışı bırakılması gereken bağımlılıklar --ignore ile filtrelenir. Virgülle ayrılmış liste veya tekrarlayan bayrak kabul eder.

.github/workflows/license-gate.yml
# .github/workflows/license-gate.yml
name: License gate
on: [pull_request]

jobs:
  licenses:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with:
          node-version: '20'

      - name: License scan
        run: npx dep-lens \
            --json \
            --fail-on gpl \
            > licenses.json

      - name: HTML report
        if: always()
        run: npx dep-lens --html report.html

      - uses: actions/upload-artifact@v4
        with:
          name: license-report
          path: |
            licenses.json
            report.html
TUI

Klavyede her şey bir tuş uzakta

Tüm etkileşim saf ASCII ve truecolor ANSI üzerinden. Hiç emoji yok, hiç fare gerekmez. Pager-up/down ile 10'er satır atla, g/G ile başa/sona uç.

↑ / ↓Seçimi hareket ettir (pgup/pgdn 10 satır, g/G başa/sona)
enterPaket detay paneli — lisans kaynağı, tavsiye metni
fPaket adı, lisans veya kategoriye göre serbest metin filtresi
1-4Hızlı filtre: Permissive / Weak / Strong / Unknown
0Tüm filtreleri temizle
sSıralama sütununu döngüle (ad / sürüm / risk / kategori)
rSıralama yönünü tersine çevir
eDışa aktarma menüsü — JSON veya HTML dosya
hYardım katmanı (overlay)
qÇık