Librairies Clientes
Choisissez la librairie client Sharokey qui convient le mieux à votre stack de développement. Toutes les librairies fournissent un chiffrement Zero Knowledge et sont conçues pour être conviviales pour les développeurs.
🎯 Comparaison Rapide
| Librairie | Idéale Pour | Fonctionnalités Clés |
|---|---|---|
| CLI C# | Scripts shell, CI/CD, automatisation | Exécutable cross-platform, support pipe |
| JavaScript SDK | Apps Node.js, projets web complexes | Fonctionnalités complètes, package npm, support TypeScript |
| JavaScript CDN | Intégration navigateur rapide, projets simples | Fichier unique, aucun build requis, plug-and-play |
| Python SDK | Apps Python, science des données, ML | Async/await, API cohérente avec CLI |
📦 Installation
bash
# Télécharger la dernière version
curl -L https://github.com/sharokey/cli/releases/latest/download/sharokey.exe -o sharokey.exe
# Ou via gestionnaire de packages
winget install Sharokey.CLIbash
npm install sharokey-client
# ou
yarn add sharokey-clienthtml
<!-- Inclusion directe du script -->
<script src="https://cdn.sharokey.com/js/sharokey.js"></script>
<!-- Ou télécharger localement -->
<script src="/js/sharokey.js"></script>bash
pip install sharokey
# ou
poetry add sharokey⚡ Exemples de Démarrage Rapide
Créer un Secret
bash
sharokey create "Mon mot de passe secret" --hours 24 --views 1javascript
import { SharokeyClient } from 'sharokey-client';
const client = new SharokeyClient({ token: 'votre-token' });
const secret = await client.createSecret('Mon mot de passe secret', {
expirationHours: 24,
maximumViews: 1
});
console.log(secret.shareUrl);javascript
// Disponible globalement après inclusion du script
Sharokey.config({ token: 'votre-token' });
const secret = await Sharokey.create('Mon mot de passe secret', 24, 1);
console.log(secret.share_url);python
import sharokey
client = sharokey.SharokeyClient(token='votre-token')
secret = await client.create('Mon mot de passe secret', 24, 1)
print(secret.share_url)Avec Pièces Jointes
bash
sharokey create "Documents confidentiels" --hours 48 --views 3 \
--attach contrat.pdf --attach specs.docxjavascript
const secret = await client.createSecret('Documents confidentiels', {
expirationHours: 48,
maximumViews: 3,
attachments: [
{ name: 'contrat.pdf', data: contractBuffer },
{ name: 'specs.docx', data: specsBuffer }
]
});javascript
const secret = await Sharokey.create('Documents confidentiels', 48, 3, {
attachments: [contractFile, specsFile] // Objets File
});python
secret = await client.create(
'Documents confidentiels', 48, 3,
attachments=['contrat.pdf', 'specs.docx']
)🔐 Fonctionnalités de Sécurité
Toutes les librairies implémentent le même chiffrement Zero Knowledge :
- AES-GCM-256
- Dérivation de clé PBKDF2 (10 000 itérations)
- Chiffrement côté client - vos données ne quittent jamais votre appareil non chiffrées
- Système à deux clés - CléA (serveur) + CléB (fragment URL de partage)
- Perfect Forward Secrecy - chaque secret utilise des clés de chiffrement uniques
📊 Matrice des Fonctionnalités
| Fonctionnalité | CLI C# | JavaScript SDK | JavaScript CDN | Python SDK |
|---|---|---|---|---|
| Opérations de Base | ||||
| Créer des secrets | ✅ | ✅ | ✅ | ✅ |
| Lister les secrets | ✅ | ✅ | ✅ | ✅ |
| Détails d'un secret | ✅ | ✅ | ✅ | ✅ |
| Supprimer des secrets | ✅ | ✅ | ✅ | ✅ |
| Statistiques d'usage | ✅ | ✅ | ✅ | ✅ |
| Options de Sécurité | ||||
| Protection par mot de passe | ✅ | ✅ | ✅ | ✅ |
| OTP par email | ✅ | ✅ | ✅ | ✅ |
| OTP par SMS | ✅ | ✅ | ✅ | ✅ |
| Support de Fichiers | ||||
| Pièces jointes | ✅ | ✅ | ✅ | ✅ |
| Fichiers multiples | ✅ | ✅ | ✅ | ✅ |
| Validation limite 10Mo | ✅ | ✅ | ✅ | ✅ |
| Fonctionnalités Avancées | ||||
| Filtrage avancé | ❌ | ✅ | ❌ | ❌ |
| Secrets actifs uniquement | ❌ | ✅ | ❌ | ❌ |
| Entrée Stdin/pipe | ✅ | ❌ | ❌ | ❌ |
| Formats de Sortie | ||||
| Sortie JSON | ✅ | ✅ | ✅ | ✅ |
| Format tableau | ✅ | ❌ | ❌ | ❌ |
| Mode verbeux | ✅ | ❌ | ❌ | ❌ |
| Développement | ||||
| Support TypeScript | N/A | ✅ | ✅ | N/A |
| Async/await | N/A | ✅ | ✅ | ✅ |
| Gestion d'erreurs | ✅ | ✅ | ✅ | ✅ |
| Tests unitaires | ✅ | ✅ | ✅ | ✅ |
📋 Cohérence des Méthodes
Toutes les librairies utilisent un nommage cohérent pour les opérations équivalentes :
| Opération | CLI | JavaScript SDK | JavaScript CDN | Python |
|---|---|---|---|---|
| Créer | create | createSecret() | create() | create() |
| Lister | list | getSecrets() | list() | list() |
| Obtenir | get SLUG | getSecret(slug) | get(slug) | get(slug) |
| Supprimer | delete SLUG | deleteSecret(slug) | delete(slug) | delete(slug) |
| Statistiques | stats | getStatistics() | stats() | stats() |
🎯 Choisir la Bonne Librairie
Utilisez CLI C# quand :
- Vous construisez des scripts shell ou de l'automatisation
- Vous intégrez avec des pipelines CI/CD
- Vous devez utiliser des données en pipe depuis d'autres commandes
- Vous préférez les outils en ligne de commande
Utilisez JavaScript SDK quand :
- Vous construisez des applications web complexes
- Vous avez besoin de filtrage et recherche avancés
- Vous travaillez avec des serveurs Node.js
- Vous voulez un support TypeScript complet
Utilisez JavaScript CDN quand :
- Vous avez un prototype rapide ou une intégration simple
- La taille de bundle minimale est importante
- Les opérations de base sur les secrets sont suffisantes
- Vous débutez avec Sharokey
Utilisez Python SDK quand :
- Vous construisez des applications Python
- Vous travaillez avec des projets de science des données/ML
- Vous avez besoin du support async/await
- Vous préférez des noms de méthodes cohérents avec le CLI
📚 Documentation des Librairies
🖥️ CLI C#
Outil en ligne de commande cross-platform pour automatisation et scripts.
Voir la Documentation →🟨 JavaScript SDK
Librairie complète pour applications web complexes et Node.js.
Voir la Documentation →⚡ JavaScript CDN
Librairie légère pour intégrations rapides et projets simples.
Voir la Documentation →🐍 Python SDK
Client Python async avec nommage de méthodes cohérent avec le CLI.
Voir la Documentation →🔗 Ressources Associées
- Comparaison des Fonctionnalités - Comparaison détaillée côte à côte
- Référence API - Documentation directe de l'API REST
