Comparaison des Fonctionnalités
Comparaison complète des 4 librairies client Sharokey pour vous aider à choisir le bon outil pour votre projet.
🎯 Guide de Décision Rapide
🖥️ Utilisez CLI C# si vous avez besoin :
- Scripts shell & automatisation
- Intégration pipeline CI/CD
- Données en pipe depuis d'autres commandes
- Exécutable cross-platform
📦 Utilisez JavaScript SDK si vous avez besoin :
- Applications Node.js
- Applications web complexes
- Support TypeScript complet
- Filtrage et recherche avancés
🌐 Utilisez JavaScript CDN si vous avez besoin :
- Intégration navigateur rapide
- Aucun processus de build
- Projets HTML simples
- Configuration minimale
🐍 Utilisez Python SDK si vous avez besoin :
- Applications Python
- Projets science des données & ML
- API cohérente avec CLI
- Support Async/await
📊 Matrice des Fonctionnalités
Configuration & Installation
| Fonctionnalité | CLI C# | JavaScript SDK | JavaScript CDN | Python SDK |
|---|---|---|---|---|
| Configuration Token | ✅ | ✅ | ✅ | ✅ |
| URL API Personnalisée | ✅ | ✅ | ✅ | ✅ |
| Test de Connexion | ✅ | ✅ | ✅ | ✅ |
| Variables d'Environnement | ✅ | ✅ | ✅ | ✅ |
Gestion des Secrets
| Fonctionnalité | CLI C# | JavaScript SDK | JavaScript CDN | Python SDK |
|---|---|---|---|---|
| Créer des Secrets | ✅ | ✅ | ✅ | ✅ |
| Lister les Secrets | ✅ | ✅ | ✅ | ✅ |
| Détails d'un Secret | ✅ | ✅ | ✅ | ✅ |
| Supprimer des Secrets | ✅ | ✅ | ✅ | ✅ |
| Opérations Groupées | ✅ | ❌ | ❌ | ❌ |
Fonctionnalités de Sécurité
| Fonctionnalité | CLI C# | JavaScript SDK | JavaScript CDN | Python SDK |
|---|---|---|---|---|
| Chiffrement Zero Knowledge | ✅ | ✅ | ✅ | ✅ |
| Protection par Mot de Passe | ✅ | ✅ | ✅ | ✅ |
| OTP par Email | ✅ | ✅ | ✅ | ✅ |
| OTP par SMS | ✅ | ✅ | ✅ | ✅ |
| Expiration Personnalisée | ✅ | ✅ | ✅ | ✅ |
| Limites de Vues | ✅ | ✅ | ✅ | ✅ |
Support de Fichiers
| Fonctionnalité | CLI C# | JavaScript SDK | JavaScript CDN | Python SDK |
|---|---|---|---|---|
| Pièces Jointes | ✅ | ✅ | ✅ | ✅ |
| Fichiers Multiples | ✅ | ✅ | ✅ | ✅ |
| Validation Taille 10Mo | ✅ | ✅ | ✅ | ✅ |
| Validation Type de Fichier | ✅ | ✅ | ✅ | ✅ |
| Glisser & Déposer | N/A | ✅ | ✅ | N/A |
Fonctionnalités Avancées
| Fonctionnalité | CLI C# | JavaScript SDK | JavaScript CDN | Python SDK |
|---|---|---|---|---|
| Filtrage Avancé | ❌ | ✅ | ❌ | ❌ |
| Fonctionnalité de Recherche | ✅ | ✅ | ❌ | ✅ |
| Secrets Actifs Uniquement | ❌ | ✅ | ❌ | ❌ |
| Pagination | ✅ | ✅ | ❌ | ✅ |
| Entrée Stdin/Pipe | ✅ | ❌ | ❌ | ❌ |
Sortie & Formatage
| Fonctionnalité | CLI C# | JavaScript SDK | JavaScript CDN | Python SDK |
|---|---|---|---|---|
| Sortie JSON | ✅ | ✅ | ✅ | ✅ |
| Format Tableau | ✅ | ❌ | ❌ | ❌ |
| Mode Verbeux | ✅ | ❌ | ❌ | ❌ |
| Sortie Colorée | ✅ | N/A | N/A | ❌ |
Expérience Développeur
| Fonctionnalité | CLI C# | JavaScript SDK | JavaScript CDN | Python SDK |
|---|---|---|---|---|
| Support TypeScript | N/A | ✅ | ✅ | N/A |
| Annotations de Type | N/A | ✅ | ✅ | ✅ |
| Async/Await | ✅ | ✅ | ✅ | ✅ |
| Gestion d'Erreurs | ✅ | ✅ | ✅ | ✅ |
| Tests Unitaires | ✅ | ✅ | ✅ | ✅ |
| Documentation | ✅ | ✅ | ✅ | ✅ |
🔄 Cohérence de l'API
Toutes les librairies maintiennent un nommage de méthode cohérent pour les opérations principales :
Créer un Secret
bash
sharokey create "secret" --hours 24 --views 1javascript
await client.createSecret("secret", {expirationHours: 24, maximumViews: 1});javascript
await Sharokey.create("secret", 24, 1);python
secret = await client.create("secret", 24, 1)Lister les Secrets
bash
sharokey list --limit 10 --status activejavascript
await client.getSecrets({limit: 10, status: 'active'});javascript
await Sharokey.list({limit: 10});python
secrets = await client.list(limit=10, status='active')Supprimer un Secret
bash
sharokey delete ABC123javascript
await client.deleteSecret('ABC123');javascript
await Sharokey.delete('ABC123');python
await client.delete('ABC123')📦 Installation & Configuration
| Librairie | Installation | Configuration |
|---|---|---|
| CLI C# | winget install Sharokey.CLI | sharokey config --token xxx |
| JavaScript SDK | npm install sharokey-js | new SharokeyClient({token}) |
| JavaScript CDN | <script src="sharokey.js"> | Sharokey.config({token}) |
| Python SDK | pip install sharokey | SharokeyClient(token='xxx') |
🔐 Compatibilité de Chiffrement
Toutes les librairies utilisent un chiffrement Zero Knowledge identique :
- Algorithme : AES-GCM-256
- Dérivation de Clé : PBKDF2 avec 10 000 itérations
- Sel : 16 octets aléatoires par secret
- IV : 16 octets aléatoires par secret
- Compatibilité croisée : Les secrets créés par n'importe quelle librairie peuvent être déchiffrés par toute autre
📊 Comparaison de Performance
| Métrique | CLI C# | JavaScript SDK | JavaScript CDN | Python SDK |
|---|---|---|---|---|
| Taille Bundle | ~15Mo | ~2.1Mo | ~850Ko | ~45Mo |
| Démarrage à Froid | ~100ms | ~50ms | ~20ms | ~200ms |
| Utilisation Mémoire | ~25Mo | ~15Mo | ~8Mo | ~35Mo |
| Vitesse de Chiffrement | Rapide | Rapide | Rapide | Moyen |
| Efficacité Réseau | Haute | Haute | Haute | Haute |
🎯 Matrice des Cas d'Usage
| Cas d'Usage | Librairie Recommandée | Pourquoi ? |
|---|---|---|
| Scripts Shell | CLI C# | Intégration shell native, support pipe |
| Pipelines CI/CD | CLI C# | Exécutable cross-platform, sortie JSON |
| Applications React | JavaScript CDN | Bundle petit, intégration facile |
| APIs Node.js | JavaScript SDK | Fonctionnalités complètes, support TypeScript |
| Projets Vue.js | JavaScript CDN | Léger, configuration minimale |
| Applications Web Python | Python SDK | Intégration Python native |
| Science des Données | Python SDK | Support async, compatibilité Jupyter |
| Applications Desktop | CLI C# | Intégration système, gestion fichiers |
| Microservices | JavaScript SDK ou Python SDK | Selon la stack |
| Scripts d'Automatisation | CLI C# ou Python SDK | Tous deux excellents pour l'automatisation |
🚀 Migration Entre Librairies
Du CLI vers Python SDK
python
# CLI: sharokey create "secret" --hours 24 --views 1
secret = await client.create("secret", 24, 1)
# CLI: sharokey list --limit 5
secrets = await client.list(limit=5)
# CLI: sharokey delete ABC123
await client.delete("ABC123")Du JavaScript CDN vers JavaScript SDK
javascript
// JavaScript CDN
await Sharokey.create("secret", 24, 1);
// JavaScript SDK équivalent
await client.createSecret("secret", {
expirationHours: 24,
maximumViews: 1
});📈 Maturité des Librairies
| Librairie | Version | Stabilité | Dernière Mise à Jour |
|---|---|---|---|
| CLI C# | v2.1.0 | Stable | 2025-01-10 |
| JavaScript SDK | v1.8.3 | Stable | 2025-01-12 |
| JavaScript CDN | v1.5.2 | Stable | 2025-01-08 |
| Python SDK | v1.0.0 | Nouveau | 2025-01-14 |
🎉 Conclusion
- Pour l'automatisation : Choisissez CLI C# ou Python SDK
- Pour le développement web : Choisissez JavaScript SDK ou JavaScript CDN
- Pour l'entreprise : Choisissez CLI C# ou JavaScript SDK
- Pour la simplicité : Choisissez JavaScript CDN ou Python SDK
Toutes les librairies fournissent une sécurité identique et un chiffrement Zero Knowledge. Votre choix dépend de votre environnement de développement et des exigences fonctionnelles.
