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
|
||||
|
||||
- [🏗️ 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 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