Metadata-Version: 2.4
Name: xcorescanner
Version: 0.1.0
Summary: Extension C++ (pybind11) pour l'accélération du scanner AST de sécurité xcore — import scanner_core
Author-email: Eliezer Traore <68350805+traoreera@users.noreply.github.com>
License-Expression: MIT
Keywords: xcore,ast,scanner,security,pybind11
Classifier: Programming Language :: C++
Classifier: Programming Language :: Python :: 3
Classifier: Operating System :: POSIX :: Linux
Classifier: Operating System :: MacOS
Requires-Python: >=3.12
Description-Content-Type: text/markdown
License-File: LICENSE
Dynamic: license-file

# xscanner

Extension C++ (pybind11) qui accélère le scanner AST de sécurité de
[`xcore`](https://github.com/traoreera/xcore) : classification des imports
(`ImportClassifier`) multithread, O(1) pour les listes autorisées/interdites.

`xcore` fonctionne sans — il retombe automatiquement sur une implémentation
Python pure si `scanner_core` n'est pas installé. `xcorescanner` est un
accélérateur optionnel, pas une dépendance dure.

## Installation

```bash
pip install xcorescanner
# ou, avec xcore :
pip install "XCoreRuntime[cpp]"
```

## Usage

```python
from scanner_core import ImportClassifier

clf = ImportClassifier(allowed=["os", "sys"], forbidden=["subprocess"])
clf.classify("subprocess")  # -> "forbidden"
```

Le nom importable est `scanner_core` (pas `xcorescanner`) — `xcore` l'importe
directement sous ce nom, avec repli sur l'implémentation Python pure en son
absence.

## Build local

```bash
pip install -e .
```

Nécessite un compilateur C++17 (`std::filesystem`).

## Plateformes publiées

Wheels précompilées pour Linux (x86_64, aarch64) et macOS (x86_64, arm64),
Python 3.12+. Ailleurs, `pip install` compile depuis la source (nécessite
un toolchain C++17).
