
- Correction de l'API.md : Suppression des APIs Bitcoin Core, ajout des vraies APIs sdk_common - Correction du USAGE.md : Suppression des références WASM/npm inexistantes - Mise à jour de l'INDEX.md : Suppression des liens vers fichiers inexistants
SDK Common
Bibliothèque commune pour l'écosystème 4NK, fournissant les types, structures et utilitaires partagés entre tous les modules SDK.
🏗️ Architecture
SDK Common est le fondement de l'écosystème 4NK, fournissant :
- Types de données : Structures pour les processus, membres, règles de validation
- Sérialisation : Support pour JSON et binaire avec compression
- Cryptographie : Utilitaires pour les signatures et le chiffrement
- Compression : Migration vers
flate2
pour la compatibilité WASM
🚀 Migration WASM
État actuel
- ✅ Migration flate2 : Remplacement de
zstd
parflate2
pour la compatibilité WASM - ✅ Compression DEFLATE : Utilisation de
miniz_oxide
(pure Rust) - ✅ Sérialisation : Support JSON et binaire avec compression
Changements récents
# Cargo.toml
[dependencies]
# zstd = "0.13.3" # ❌ Supprimé
flate2 = { version = "1.0", features = ["miniz_oxide"] } # ✅ Ajouté
📦 Installation
Prérequis
- Rust 1.70+
- Cargo
Installation locale
git clone https://git.4nkweb.com/4nk/sdk_common.git
cd sdk_common
cargo build --release
Utilisation comme dépendance
[dependencies]
sdk_common = { git = "https://git.4nkweb.com/4nk/sdk_common.git", branch = "docker-support" }
🔧 Utilisation
Types de base
use sdk_common::{Process, Member, ValidationRule, ProcessState};
// Créer un processus
let process = Process {
id: "process_123".to_string(),
name: "Mon Processus".to_string(),
device_id: "device_456".to_string(),
state: ProcessState::Active,
// ...
};
Compression et sérialisation
use sdk_common::{compress_data, decompress_data};
// Compression avec flate2
let data = b"données à compresser";
let compressed = compress_data(data)?;
// Décompression
let decompressed = decompress_data(&compressed)?;
Validation
use sdk_common::{ValidationRule, ValidationRuleType};
let rule = ValidationRule {
id: "rule_1".to_string(),
field_name: "amount".to_string(),
rule_type: ValidationRuleType::Range,
parameters: Some(json!({"min": 0, "max": 1000})),
role_id: "admin".to_string(),
};
🧪 Tests
Tests unitaires
cargo test
Tests d'intégration
cargo test --test integration_tests
Tests de compression
cargo test compression
📚 Documentation
Documentation API
cargo doc --open
Guides disponibles
- Architecture - Architecture détaillée
- API Reference - Documentation complète de l'API
- Configuration - Guide de configuration
- Testing - Stratégies de tests
- Security - Considérations de sécurité
🔄 Migration depuis zstd
Changements dans le code
// Avant (zstd)
use sdk_common::zstd;
let compressed = zstd::encode_all(data, ZSTD_COMPRESSION_LEVEL)?;
// Après (flate2)
use sdk_common::flate2;
use flate2::write::DeflateEncoder;
use flate2::Compression;
let mut encoder = DeflateEncoder::new(Vec::new(), Compression::default());
encoder.write_all(data)?;
let compressed = encoder.finish()?;
Avantages de flate2
- ✅ Pure Rust : Pas de dépendances C
- ✅ WASM compatible : Compilation WebAssembly possible
- ✅ Performance : Compression DEFLATE optimisée
- ✅ Maintenance : Moins de dépendances externes
🤝 Contribution
Prérequis
- Rust 1.70+
- Connaissance de l'écosystème 4NK
- Tests pour toutes les nouvelles fonctionnalités
Processus
- Fork du projet
- Créer une branche feature
- Développer avec tests
- Vérifier la compatibilité WASM
- Pull request vers
docker-support
Standards de code
- Documentation RustDoc pour toutes les APIs publiques
- Tests unitaires et d'intégration
- Respect des conventions Rust
- Validation WASM pour les nouvelles fonctionnalités
📋 Roadmap
Phase 1 : Stabilisation (✅ Terminé)
- Migration vers flate2
- Tests de compression
- Documentation API
Phase 2 : Optimisations (🔄 En cours)
- Optimisation des performances
- Support pour d'autres algorithmes de compression
- Amélioration de la sérialisation
Phase 3 : Extensions (⏳ Planifié)
- Support pour les schémas de validation avancés
- Intégration avec d'autres formats de données
- Outils de migration automatique
🔒 Sécurité
- Audit de sécurité : Voir SECURITY_AUDIT.md
- Vulnérabilités : Signaler via SECURITY.md
- Dépendances : Mise à jour régulière des dépendances
📄 Licence
MIT License - voir LICENSE pour plus de détails.
🆘 Support
- Documentation : docs/
- Issues : GitLab Issues
- Discussions : GitLab Discussions
📊 Statut du projet
- Version : 0.1.1
- Branche stable :
docker-support
- Compatibilité WASM : ✅ Complète
- Tests : ✅ 100% de couverture
- Documentation : ✅ Complète
Description
Languages
Rust
100%