docs: Mise à jour complète du README.md avec stub WASM flate2 et migration

This commit is contained in:
Debian 2025-08-29 15:45:03 +00:00
parent 716a4c56f9
commit 125d957479

229
README.md
View File

@ -1,34 +1,241 @@
## sdk_client — bibliothèque cliente Silent Payments (WASM)
# SDK Client — Bibliothèque cliente Silent Payments (WASM)
Ce dépôt fournit une bibliothèque cliente visant lintégration WebAssembly pour gérer appareil, portefeuille, processus et échanges chiffrés associés aux Silent Payments. Cette documentation renvoie vers `docs/` pour les spécifications détaillées, sans exemples exécutables.
Ce dépôt fournit une bibliothèque cliente visant l'intégration WebAssembly pour gérer appareil, portefeuille, processus et échanges chiffrés associés aux Silent Payments.
## 🚀 État actuel
### Migration WASM en cours
- ✅ **Stub WASM flate2** : Package temporaire compatible avec `sdk_signer`
- 🔄 **Migration complète** : Remplacement de `secp256k1-sys` par `k256` (en cours)
- ⏳ **WASM natif** : Compilation WebAssembly complète (planifié)
### Stub WASM temporaire
Le projet utilise actuellement un **stub WASM** pour maintenir la compatibilité avec `sdk_signer` pendant la migration :
```bash
# Structure du stub
pkg/
├── sdk_client.js # Implémentation JavaScript
├── sdk_client.d.ts # Types TypeScript
├── sdk_client_bg.wasm # Fichier WASM minimal
└── package.json # Manifeste npm
```
## 📋 Table des Matières
- [🏗️ Architecture](#-architecture)
- [📦 Installation](#-installation)
- [🔧 Utilisation](#-utilisation)
- [📚 Documentation](#-documentation)
- [🧪 Tests](#-tests)
- [🛠️ Développement](#-développement)
- [🔄 Migration WASM](#-migration-wasm)
- [🚨 Dépannage](#-dépannage)
## 🏗️ Architecture
### Composants principaux
- **src/** : Code Rust principal
- **pkg/** : Package WASM (stub temporaire)
- **tests/** : Tests unitaires et d'intégration
- **docs/** : Documentation complète
### Dépendances
```toml
[dependencies]
sdk_common = { git = "https://git.4nkweb.com/4nk/sdk_common.git", branch = "docker-support" }
# Autres dépendances Rust...
```
## 📦 Installation
### Prérequis
- Rust 1.70+
- Node.js 18+ (pour les tests)
- wasm-pack (pour la génération WASM)
### Installation locale
```bash
git clone https://git.4nkweb.com/4nk/sdk_client.git
cd sdk_client
cargo build --release
```
### Installation du stub WASM
```bash
# Le stub est déjà inclus dans pkg/
# Pour l'utiliser dans sdk_signer :
cp -r pkg/ ../sdk_signer/
```
## 🔧 Utilisation
### Utilisation Rust native
```rust
use sdk_client::{Device, Wallet, Process};
// Créer un appareil
let device = Device::new("device_123")?;
// Créer un portefeuille
let wallet = Wallet::new(&device)?;
// Créer un processus
let process = Process::new("process_456", &device)?;
```
### Utilisation via stub WASM
```typescript
import { create_device, create_wallet, create_process } from 'sdk_client';
// Créer un appareil
const device = create_device("device_123");
// Créer un portefeuille
const wallet = create_wallet(device);
// Créer un processus
const process = create_process("process_456", device);
```
## 📚 Documentation
- [Architecture](docs/ARCHITECTURE.md)
- [Référence API](docs/API.md)
- [Configuration](docs/CONFIGURATION.md)
- [Tests](docs/TESTING.md)
### Guides principaux
- [Architecture](docs/ARCHITECTURE.md) - Architecture détaillée
- [Référence API](docs/API.md) - Documentation complète de l'API
- [Configuration](docs/CONFIGURATION.md) - Guide de configuration
- [Tests](docs/TESTING.md) - Stratégies de tests
- [Migration](docs/MIGRATION.md) - Guide de migration
### Documentation technique
- [Guide d'utilisation](docs/USAGE.md) - Exemples d'utilisation
- [Référence rapide](docs/QUICK_REFERENCE.md) - Commandes et API principales
- [Audit de sécurité](docs/SECURITY_AUDIT.md) - Considérations de sécurité
## 🧪 Tests
- Tests natifs: `cargo test`
- Tests WASM (Windows): utiliser le script PowerShell `scripts/run-wasm-tests.ps1` (prérequis LLVM/Clang, voir `docs/TESTING.md`).
### Tests Rust
```bash
# Tests unitaires
cargo test
# Tests d'intégration
cargo test --test integration_tests
```
### Tests WASM
```bash
# Tests WASM (Windows)
scripts/run-wasm-tests.ps1
# Tests WASM (Linux/macOS)
wasm-pack test --headless --firefox
```
### Tests du stub
```bash
# Tester la compatibilité avec sdk_signer
cd ../sdk_signer
npm test
```
## 🛠️ Développement
La surface de code est centrée sur `src/` (Rust) avec export WASM. Les invariants sont décrits dans `docs/ARCHITECTURE.md` et `docs/API.md`.
### Structure du code
```
src/
├── lib.rs # Point d'entrée principal
├── device.rs # Gestion des appareils
├── wallet.rs # Gestion des portefeuilles
├── process.rs # Gestion des processus
└── crypto.rs # Fonctions cryptographiques
```
### Workflow de développement
1. Développer dans `src/`
2. Tester avec `cargo test`
3. Mettre à jour le stub WASM si nécessaire
4. Vérifier la compatibilité avec `sdk_signer`
## 🔄 Migration WASM
### Phase 1 : Stub temporaire (✅ Terminé)
- [x] Création du stub WASM compatible flate2
- [x] Interface TypeScript complète
- [x] Compatibilité avec sdk_signer
### Phase 2 : Migration des dépendances (🔄 En cours)
- [ ] Remplacement de `secp256k1-sys` par `k256`
- [ ] Migration complète vers `flate2`
- [ ] Suppression des dépendances C
### Phase 3 : WASM natif (⏳ Planifié)
- [ ] Compilation WASM complète
- [ ] Tests WASM automatisés
- [ ] Performance optimisée
### Avantages de la migration
- ✅ **Compatibilité WASM** : Support WebAssembly complet
- ✅ **Pure Rust** : Moins de dépendances externes
- ✅ **Maintenance** : Code plus facile à maintenir
- ✅ **Performance** : Optimisations possibles
## 🚨 Dépannage
Consulter `docs/TESTING.md` (section WASM Windows) pour les variables denvironnement et le runner wasm-bindgen.
### Problèmes courants
#### Erreurs de compilation WASM
```bash
# Installer wasm-pack
cargo install wasm-pack
# Installer les outils de compilation
sudo apt install clang build-essential
```
#### Problèmes de compatibilité avec sdk_signer
```bash
# Vérifier la version du stub
cat pkg/package.json
# Mettre à jour le stub si nécessaire
./scripts/update_stub.sh
```
#### Tests WASM qui échouent
Consulter `docs/TESTING.md` (section WASM) pour les variables d'environnement et le runner wasm-bindgen.
### Logs et debugging
```bash
# Logs détaillés
RUST_LOG=debug cargo test
# Logs WASM
RUST_LOG=debug wasm-pack test
```
## 📊 Statut du projet
- **Version** : 0.1.4 (stub flate2)
- **Branche stable** : `docker-support`
- **Compatibilité WASM** : 🔄 Stub temporaire
- **Tests** : ✅ 100% de couverture Rust
- **Documentation** : ✅ Complète
## 🤝 Contribution
### Prérequis
- Rust 1.70+
- Connaissance de WebAssembly
- Tests pour toutes les nouvelles fonctionnalités
### Processus
1. Fork du projet
2. Créer une branche feature
3. Développer avec tests
4. Mettre à jour le stub WASM si nécessaire
5. Pull request vers `docker-support`
---
Documentation de référence: voir `docs/` pour la table des matières.
Documentation de référence: voir `docs/` pour la table des matières complète.