Skip to content

Feature Comparison ​

Complete comparison of all 4 Sharokey client libraries to help you choose the right tool for your project.

🎯 Quick Decision Guide ​

πŸ–₯️ Use CLI C# if you need:

  • Shell scripts & automation
  • CI/CD pipeline integration
  • Pipe data from other commands
  • Cross-platform executable

πŸ“¦ Use JavaScript SDK if you need:

  • Node.js applications
  • Complex web applications
  • Full TypeScript support
  • Advanced filtering & search

🌐 Use JavaScript CDN if you need:

  • Quick browser integration
  • No build process
  • Simple HTML projects
  • Minimal setup

🐍 Use Python SDK if you need:

  • Python applications
  • Data science & ML projects
  • CLI-consistent API
  • Async/await support

πŸ“Š Feature Matrix ​

Configuration & Setup ​

FeatureCLI C#JavaScript SDKJavaScript CDNPython SDK
Token Configurationβœ…βœ…βœ…βœ…
Custom API URLβœ…βœ…βœ…βœ…
Connection Testingβœ…βœ…βœ…βœ…
Environment Variablesβœ…βœ…βœ…βœ…

Secret Management ​

FeatureCLI C#JavaScript SDKJavaScript CDNPython SDK
Create Secretsβœ…βœ…βœ…βœ…
List Secretsβœ…βœ…βœ…βœ…
Get Secret Detailsβœ…βœ…βœ…βœ…
Delete Secretsβœ…βœ…βœ…βœ…
Bulk Operationsβœ…βŒβŒβŒ

Security Features ​

FeatureCLI C#JavaScript SDKJavaScript CDNPython SDK
Zero Knowledge Encryptionβœ…βœ…βœ…βœ…
Password Protectionβœ…βœ…βœ…βœ…
OTP via Emailβœ…βœ…βœ…βœ…
OTP via SMSβœ…βœ…βœ…βœ…
Custom Expirationβœ…βœ…βœ…βœ…
View Limitsβœ…βœ…βœ…βœ…

File Support ​

FeatureCLI C#JavaScript SDKJavaScript CDNPython SDK
File Attachmentsβœ…βœ…βœ…βœ…
Multiple Filesβœ…βœ…βœ…βœ…
10MB Size Validationβœ…βœ…βœ…βœ…
File Type Validationβœ…βœ…βœ…βœ…
Drag & DropN/Aβœ…βœ…N/A

Advanced Features ​

FeatureCLI C#JavaScript SDKJavaScript CDNPython SDK
Advanced FilteringβŒβœ…βŒβŒ
Search Functionalityβœ…βœ…βŒβœ…
Active Secrets OnlyβŒβœ…βŒβŒ
Paginationβœ…βœ…βŒβœ…
Stdin/Pipe Inputβœ…βŒβŒβŒ

Output & Formatting ​

FeatureCLI C#JavaScript SDKJavaScript CDNPython SDK
JSON Outputβœ…βœ…βœ…βœ…
Table Formatβœ…βŒβŒβŒ
Verbose Modeβœ…βŒβŒβŒ
Colored Outputβœ…N/AN/A❌

Development Experience ​

FeatureCLI C#JavaScript SDKJavaScript CDNPython SDK
TypeScript SupportN/Aβœ…βœ…N/A
Type HintsN/Aβœ…βœ…βœ…
Async/Awaitβœ…βœ…βœ…βœ…
Error Handlingβœ…βœ…βœ…βœ…
Unit Testsβœ…βœ…βœ…βœ…
Documentationβœ…βœ…βœ…βœ…

πŸ”„ API Consistency ​

All libraries maintain consistent method naming for core operations:

Create Secret ​

bash
sharokey create "secret" --hours 24 --views 1
javascript
await client.createSecret("secret", {expirationHours: 24, maximumViews: 1});
javascript
await Sharokey.create("secret", 24, 1);
python
secret = await client.create("secret", 24, 1)

List Secrets ​

bash
sharokey list --limit 10 --status active
javascript
await client.getSecrets({limit: 10, status: 'active'});
javascript
await Sharokey.list({limit: 10});
python
secrets = await client.list(limit=10, status='active')

Delete Secret ​

bash
sharokey delete ABC123
javascript
await client.deleteSecret('ABC123');
javascript
await Sharokey.delete('ABC123');
python
await client.delete('ABC123')

πŸ“¦ Installation & Setup ​

LibraryInstallationConfiguration
CLI C#winget install Sharokey.CLIsharokey config --token xxx
JS Completenpm install @sharokey/clientnew SharokeyClient({token})
JS Simplenpm install @sharokey/simpleSharokey.config({token})
Python SDKpip install sharokeySharokeyClient(token='xxx')

πŸ” Encryption Compatibility ​

All libraries use identical Zero Knowledge encryption:

  • Algorithm: AES-GCM-256
  • Key Derivation: PBKDF2 with 10,000 iterations
  • Salt: Random 16 bytes per secret
  • IV: Random 16 bytes per secret
  • Cross-compatibility: Secrets created by any library can be decrypted by any other

πŸ“Š Performance Comparison ​

MetricCLI C#JS CompleteJS SimplePython SDK
Bundle Size~15MB~2.1MB~850KB~45MB
Cold Start~100ms~50ms~20ms~200ms
Memory Usage~25MB~15MB~8MB~35MB
Encryption SpeedFastFastFastMedium
Network EfficiencyHighHighHighHigh

🎯 Use Case Matrix ​

Use CaseRecommended LibraryWhy?
Shell ScriptsCLI C#Native shell integration, pipe support
CI/CD PipelinesCLI C#Cross-platform executable, JSON output
React ApplicationsJS SimpleSmall bundle, easy integration
Node.js APIsJS CompleteFull features, TypeScript support
Vue.js ProjectsJS SimpleLightweight, minimal setup
Python Web AppsPython SDKNative Python integration
Data SciencePython SDKAsync support, Jupyter compatibility
Desktop ApplicationsCLI C#System integration, file handling
MicroservicesJS Complete or Python SDKDepending on stack
Automation ScriptsCLI C# or Python SDKBoth excellent for automation

πŸš€ Migration Between Libraries ​

From CLI to 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")

From JS Simple to JS Complete ​

javascript
// JS Simple
await Sharokey.create("secret", 24, 1);

// JS Complete equivalent
await client.createSecret("secret", {
  expirationHours: 24,
  maximumViews: 1
});

πŸ“ˆ Library Maturity ​

LibraryVersionStabilityLast Updated
CLI C#v2.1.0Stable2025-01-10
JS Completev1.8.3Stable2025-01-12
JS Simplev1.5.2Stable2025-01-08
Python SDKv1.0.0New2025-01-14

πŸŽ‰ Conclusion ​

  • For automation: Choose CLI C# or Python SDK
  • For web development: Choose JS Complete or JS Simple
  • For enterprise: Choose CLI C# or JS Complete
  • For simplicity: Choose JS Simple or Python SDK

All libraries provide identical security and Zero Knowledge encryption. Your choice depends on your development environment and feature requirements.

Released under the MIT License.