DEV Community

famatyyk
famatyyk

Posted on

Zbudowałem darmowy linter C++/Lua/Python w 100 liniach — oto co wykrywa

Dlaczego darmowy linter?

Większość "audytorów kodu" to zamknięte SaaS-y z subskrypcją. Chciałem czegoś, co:

  • działa offline, bez wysyłania kodu na serwer,
  • ma zero zależności (tylko stdlib Pythona),
  • daje natychmiastowy feedback w terminalu.

Tak powstał ctoai-lint — lekki linter statyczny C++ / Lua / Python.

Co wykrywa?

Język Wzorzec Ryzyko
C/C++ strcpy, strcat, gets, sprintf, scanf HIGH
Lua load, loadstring, os.execute, io.popen HIGH
Python eval, exec, os.system, subprocess.call, pickle.loads MEDIUM
Wszystkie podejrzane przypisania api_key=..., password=... HIGH

Project Health

health = max(0, 100 - 8*high - 3*medium)
Enter fullscreen mode Exit fullscreen mode

Przykład na demo pliku (tests/sample_cpp.cpp z strcpy + sprintf):

$ ctoai-lint tests
ctoai-lint: 2 plikow, 2 znalezisk, HIGH=2
Project Health: 84/100
Enter fullscreen mode Exit fullscreen mode

Instalacja (bez PyPI)

pip install git+https://github.com/famatyyk/CTOAi-Lint
ctoai-lint . --json
Enter fullscreen mode Exit fullscreen mode

Dlaczego to legalne / bezpieczne?

Tylko analiza plików tekstowych. Brak modyfikacji kodu, brak injection, brak sieci.
To demo silnika za CTOAi Project Doctor — tam jest pełna wersja (CMake, JS/TS, 5 kroków naprawczych, GitHub Action).

Spróbuj

Zrób fork, wrzuć swój kod, zobacz health.⭐ na GitHubie pomaga mi budować pełną wersję.

MIT — używaj swobodnie.

Top comments (0)