4NK_dev/README.md

117 lines
3.3 KiB
Markdown

# 4NK Development Environment
Ce dépôt contient l'environnement de développement complet pour l'écosystème 4NK, incluant tous les modules SDK, clients et services.
## 🏗️ Architecture
### Projets SDK (Rust)
- **sdk_common** : Bibliothèque commune avec types et utilitaires partagés
- **sdk_client** : Client SDK principal avec support WASM (migration flate2 en cours)
- **sdk_storage** : Service de stockage distribué
- **sdk_signer** : Service de signature avec interface TypeScript
### Clients (Node.js/TypeScript)
- **sdk_signer_client** : Client TypeScript pour sdk_signer
- **ihm_client** : Interface utilisateur web
### Services
- **4NK_node** : Infrastructure Docker complète avec Bitcoin, Tor, et services 4NK
- **sdk_relay** : Service de relais pour la communication P2P
### Outils
- **4NK_template** : Template Docker pour les nouveaux projets
- **4NK_wallet** : Application wallet
## 🚀 Démarrage rapide
### Prérequis
- Docker et Docker Compose v2
- Rust (latest stable)
- Node.js 18+
- Git
### Installation
```bash
# Cloner le dépôt
git clone <repository-url>
cd 4NK_dev
# Configurer l'environnement
./setup_dev_env.sh
# Démarrer l'infrastructure
cd 4NK_node
./scripts/manage_services.sh start
```
## 📦 Gestion des dépendances WASM
### État actuel
- **sdk_common** : ✅ Migré vers `flate2` (remplace `zstd`)
- **sdk_client** : 🔄 Stub WASM temporaire avec `flate2` (en attente de migration complète)
- **sdk_signer** : ✅ Compatible avec le stub WASM
### Migration en cours
1. **Phase 1** : ✅ Migration `sdk_common` vers `flate2`
2. **Phase 2** : 🔄 Migration `sdk_client` vers `k256` et `flate2`
3. **Phase 3** : ⏳ Intégration complète WASM
4. **Phase 4** : ⏳ Déploiement
## 🛠️ Développement
### Compilation des projets
```bash
# Compiler tous les projets Rust
for project in sdk_common sdk_client sdk_storage; do
cd $project && cargo build --release && cd ..
done
# Compiler les projets Node.js
for project in sdk_signer sdk_signer_client ihm_client; do
cd $project && npm install && npm run build && cd ..
done
```
### Gestion des services
```bash
# Arrêter tous les services
cd 4NK_node && ./scripts/manage_services.sh stop
# Nettoyer l'environnement
./scripts/manage_services.sh clean
# Redémarrer les services
./scripts/manage_services.sh start
```
## 📚 Documentation
- [Résultats de compilation](COMPILATION_RESULTS.md) - Statut détaillé de tous les projets
- [Modules Docker](docs/modules.md) - Documentation des modules Docker
- [Changelog](CHANGELOG.md) - Historique des versions
## 🔧 Scripts utiles
- `setup_dev_env.sh` : Configuration de l'environnement de développement
- `update_repos.sh` : Mise à jour des dépôts depuis repos.csv
- `4NK_node/scripts/manage_services.sh` : Gestion des services Docker
## 📋 Structure des branches
- **main** : Branche principale pour 4NK_dev et 4NK_node
- **docker-support** : Branche de développement pour les SDKs et clients
- **dev** : Branche de développement pour certaines fonctionnalités
## 🤝 Contribution
1. Créer une branche depuis `docker-support` ou `main` selon le projet
2. Développer et tester localement
3. Pousser les modifications sur la branche appropriée
4. Créer une pull request
## 📄 Licence
MIT License - voir les fichiers LICENSE individuels dans chaque projet.