docs: Mise à jour complète du README.md avec stub WASM flate2 et migration
This commit is contained in:
parent
716a4c56f9
commit
125d957479
229
README.md
229
README.md
@ -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 l’inté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
|
## 📋 Table des Matières
|
||||||
|
|
||||||
|
- [🏗️ Architecture](#️-architecture)
|
||||||
|
- [📦 Installation](#-installation)
|
||||||
|
- [🔧 Utilisation](#-utilisation)
|
||||||
- [📚 Documentation](#-documentation)
|
- [📚 Documentation](#-documentation)
|
||||||
- [🧪 Tests](#-tests)
|
- [🧪 Tests](#-tests)
|
||||||
- [🛠️ Développement](#️-développement)
|
- [🛠️ Développement](#️-développement)
|
||||||
|
- [🔄 Migration WASM](#-migration-wasm)
|
||||||
- [🚨 Dépannage](#-dépannage)
|
- [🚨 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
|
## 📚 Documentation
|
||||||
|
|
||||||
- [Architecture](docs/ARCHITECTURE.md)
|
### Guides principaux
|
||||||
- [Référence API](docs/API.md)
|
- [Architecture](docs/ARCHITECTURE.md) - Architecture détaillée
|
||||||
- [Configuration](docs/CONFIGURATION.md)
|
- [Référence API](docs/API.md) - Documentation complète de l'API
|
||||||
- [Tests](docs/TESTING.md)
|
- [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
|
||||||
|
|
||||||
- Tests natifs: `cargo test`
|
### Tests Rust
|
||||||
- Tests WASM (Windows): utiliser le script PowerShell `scripts/run-wasm-tests.ps1` (prérequis LLVM/Clang, voir `docs/TESTING.md`).
|
```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
|
## 🛠️ 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
|
## 🚨 Dépannage
|
||||||
|
|
||||||
Consulter `docs/TESTING.md` (section WASM Windows) pour les variables d’environnement 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.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user