Metadata-Version: 2.4
Name: archiviz
Version: 0.1.1
Summary: Visualisation interactive et en temps réel de l'architecture de projets logiciels multi-langages
Author: Archiviz Team
License-Expression: MIT
Project-URL: Homepage, https://github.com/archiviz/archiviz
Project-URL: Documentation, https://archiviz.readthedocs.io
Project-URL: Repository, https://github.com/archiviz/archiviz
Keywords: architecture,visualisation,code,multi-langages,analyse
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: fastapi>=0.104.0
Requires-Dist: uvicorn[standard]>=0.24.0
Requires-Dist: websockets>=12.0
Requires-Dist: watchdog>=3.0.0
Requires-Dist: networkx>=3.2
Requires-Dist: pydantic>=2.5.0
Requires-Dist: aiofiles>=23.2.0
Requires-Dist: python-multipart>=0.0.6
Requires-Dist: jinja2>=3.1.0
Requires-Dist: click>=8.1.0
Requires-Dist: rich>=13.7.0
Requires-Dist: pyyaml>=6.0.0
Requires-Dist: toml>=0.10.0
Requires-Dist: pathspec>=0.11.0
Requires-Dist: orjson>=3.9.0
Provides-Extra: dev
Requires-Dist: pytest>=7.4.0; extra == "dev"
Requires-Dist: pytest-asyncio>=0.21.0; extra == "dev"
Requires-Dist: black>=23.12.0; extra == "dev"
Requires-Dist: ruff>=0.1.0; extra == "dev"
Requires-Dist: mypy>=1.7.0; extra == "dev"
Provides-Extra: ia
Requires-Dist: openai>=1.3.0; extra == "ia"
Requires-Dist: anthropic>=0.7.0; extra == "ia"
Dynamic: license-file

﻿# Archiviz

> Visualisation interactive et en temps réel de l'architecture de projets logiciels multi-langages.

Archiviz analyse votre code source et génère un graphe interactif de son architecture — dépendances, couches, modules, classes, fonctions — accessible directement dans le navigateur.

---

## Fonctionnalités

- **Analyse multi-langages** : Python, JavaScript/TypeScript, Java, Go, Rust, C#, SQL, Docker
- **Graphe interactif** : navigation, zoom, filtres par type et par langage, recherche
- **Temps réel** : mise à jour automatique du graphe dès qu'un fichier est modifié
- **Détection automatique** : couches architecturales, dépendances cycliques, points de fragilité
- **Assistance IA** (optionnel) : réduction du bruit, détection de motifs, explications en langage naturel
- **100 % local** : aucune dépendance cloud obligatoire

---

## Installation

```bash
pip install archiviz
```

Requires Python >= 3.9

---

## Utilisation rapide

```bash
# Analyser le répertoire courant et ouvrir l'interface web
archiviz start

# Analyser un projet spécifique
archiviz start --repertoire /chemin/vers/projet

# Changer le port (défaut : 8000)
archiviz start --port 9000

# Activer l'assistance IA
archiviz start --ia
```

Puis ouvrez [http://localhost:8000](http://localhost:8000) dans votre navigateur.

---

## Options CLI

| Option | Court | Défaut | Description |
|--------|-------|--------|-------------|
| `--repertoire` | `-r` | `.` | Répertoire du projet à analyser |
| `--port` | `-p` | `8000` | Port du serveur web |
| `--hote` | `-H` | `localhost` | Hôte du serveur |
| `--ignore` | `-i` | — | Patterns à ignorer (séparés par virgule) |
| `--ia` | — | off | Activer l'assistance IA |

---

## Utilisation programmatique

```python
from archiviz import ModeleGraphe, GestionnaireAnalyse

modele = ModeleGraphe()
gestionnaire = GestionnaireAnalyse(modele)
gestionnaire.analyser_repertoire("/chemin/vers/projet")

print(f"Composants : {len(modele.noeuds)}")
print(f"Relations  : {len(modele.aretes)}")
```

---

## Architecture du package

```
archiviz/
├── analyseur/          Adaptateurs par langage (Python, JS, Java, Go, Rust, C#, SQL, Docker)
├── graphe/             Modèle de graphe unifié (noeuds, arêtes, cycles)
├── serveur/            Serveur FastAPI + WebSocket
├── interface_web/      Interface HTML/CSS/JS (vis-network)
├── surveillance/       Surveillance du système de fichiers (watchdog)
├── assistance_ia/      Intégration IA (OpenAI, Anthropic)
└── utils/              Gestion des erreurs
```

---

## Langages supportés

| Langage | Fichiers détectés | Éléments analysés |
|---------|-------------------|-------------------|
| Python | `.py` | modules, classes, fonctions, imports |
| JavaScript / TypeScript | `.js` `.ts` `.jsx` `.tsx` | modules, classes, fonctions, imports |
| Java | `.java` | packages, classes, interfaces, méthodes |
| Go | `.go` | packages, structs, fonctions |
| Rust | `.rs` | crates, modules, structs, fonctions |
| C# | `.cs` | namespaces, classes, interfaces, méthodes |
| SQL | `.sql` | tables, vues, procédures |
| Docker | `Dockerfile` `docker-compose.yml` | images, services, volumes |

---

## Dépendances optionnelles

```bash
# Outils de développement
pip install "archiviz[dev]"

# Assistance IA (OpenAI / Anthropic)
pip install "archiviz[ia]"

# Tout
pip install "archiviz[dev,ia]"
```

---

## Développement

```bash
# Cloner et installer en mode édition
git clone https://github.com/archiviz/archiviz
cd archiviz
pip install -e ".[dev,ia]"

# Lancer les tests
pytest

# Linter
ruff check src/

# Formatage
black src/
```

---

## Documentation

- [Python](docs/langages/python.md)
- [JavaScript / TypeScript](docs/langages/javascript.md)
- [Java](docs/langages/java.md)
- [Go](docs/langages/go.md)
- [Rust](docs/langages/rust.md)
- [C#](docs/langages/csharp.md)
- [SQL](docs/langages/sql.md)
- [Docker](docs/langages/docker.md)
- [Analyse d'un projet Python](docs/exemples/analyse_projet_python.md)
- [Analyse d'un projet Fullstack](docs/exemples/analyse_projet_fullstack.md)
- [Utilisation de l'API programmatique](docs/exemples/utilisation_api.md)
- [Guide de publication PyPI](docs/publication_pypi.md)

---

## Licence

MIT — Copyright (c) 2026 Archiviz Team.  
Voir le fichier [LICENSE](LICENSE) pour le texte complet.
