Debian 3e3716411b docs: Correction de la documentation sdk_common
- 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
2025-08-29 15:54:43 +00:00

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 par flate2 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

🔄 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

  1. Fork du projet
  2. Créer une branche feature
  3. Développer avec tests
  4. Vérifier la compatibilité WASM
  5. 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

📊 Statut du projet

  • Version : 0.1.1
  • Branche stable : docker-support
  • Compatibilité WASM : Complète
  • Tests : 100% de couverture
  • Documentation : Complète
Description
No description provided
Readme 36 MiB
Languages
Rust 100%