Skip to content

Latest commit

 

History

History
315 lines (230 loc) · 7.02 KB

File metadata and controls

315 lines (230 loc) · 7.02 KB

🔧 ThemisDB SDK Implementation Guide

Kategorie: � SDK Analysis
Version: v1.3.0
Status: In Arbeit
Letztes Update: 22. Dezember 2025


Inhaltsverzeichnis


Übersicht

Vollständiger Implementation Plan für alle ThemisDB Client SDKs. Dokumentiert Status, Roadmap und technische Details aller SDK-Sprachen.

Branch: sdk-beta-release
Status: Phase 1 Complete | Phase 2 In Progress


Features & Highlights

Phase 1: Bestehende SDKs Finalisieren COMPLETE

JavaScript Transaction Support (2025-11-20)

Status: DONE - Proof-of-Concept implementiert
Zeit: ~4 Stunden

Implemented:

  • Transaction class mit BEGIN/COMMIT/ROLLBACK
  • Isolation level support (READ_COMMITTED, SNAPSHOT)
  • All CRUD operations (get, put, delete, query)
  • State management (isActive, transactionId)
  • Error handling (TransactionError)
  • Tests (7 passing tests)
  • Package version bump (0.1.0-beta.1)

Python Transaction Support (2025-11-20)

Status: DONE - Full implementation mit context manager
Zeit: ~4 Stunden

Implemented:

  • Transaction class mit BEGIN/COMMIT/ROLLBACK
  • Context manager support (with statement)
  • Isolation level support
  • Full type hints (PEP 484)
  • Tests (9 passing tests)
  • Package version bump (0.1.0b1)

Rust Transaction Support (2025-11-20)

Status: DONE - Full async/await implementation
Zeit: ~4 Stunden

Implemented:

  • Transaction struct mit BEGIN/COMMIT/ROLLBACK
  • Async/await pattern using Tokio
  • Isolation level support
  • Type safety with generics
  • Tests (5 passing unit tests)
  • Package version bump (0.1.0-beta.1)

Phase 1 Summary

Achievement: Alle drei SDKs haben vollständige ACID Transaction Support

Total Time: ~12 Stunden (vs. estimated 2-3 weeks)

Coverage:

  • BEGIN/COMMIT/ROLLBACK in all SDKs
  • Isolation level configuration
  • Transaction state management
  • Comprehensive test suites
  • Production-ready documentation
  • Language-specific features:
  • JavaScript: Promise-based async
  • Python: Context manager (with)
  • Rust: Async/await with Tokio

Schnellstart

JavaScript/TypeScript SDK

import { ThemisClient } from '@themisdb/sdk';

const client = new ThemisClient({
  endpoints: ['http://localhost:8765']
});

// Mit Transaction
const tx = await client.beginTransaction();
await tx.put('relational', 'users', '123', { name: 'Alice' });
await tx.commit();

Python SDK

from themis import ThemisClient

client = ThemisClient(endpoints=["http://localhost:8765"])

# Mit Context Manager
with client.begin_transaction() as tx:
    tx.put("relational", "users", "123", {"name": "Alice"})
    # Auto-commit on success

Rust SDK

use themisdb_sdk::ThemisClient;

let client = ThemisClient::new(config)?;

// Mit Transaction
let mut tx = client.begin_transaction().await?;
tx.put("relational", "users", "123", &user_data).await?;
tx.commit().await?;

Detaillierte Dokumentation

Phase 2: Zusätzliche SDK-Sprachen (In Progress)

Go (Golang) - HÖCHSTE PRIORITÄT

Status: Basic Implementation vorhanden
Aufwand: 1-2 Wochen
Priority: MUST-HAVE

Use Cases:

  • Kubernetes Operators
  • API Gateways
  • Microservices
  • DevOps Tools

Fehlende Features:

  • Transaction Support
  • BatchPut/BatchDelete
  • Graph-Traverse methods

Java - ENTERPRISE STANDARD

Status: Beta mit Transaction Support
Aufwand: 2-3 Wochen (inkl. Maven Central)
Priority: MUST-HAVE

Use Cases:

  • Enterprise Applications
  • Spring Boot Microservices
  • Android Apps
  • Financial Services

Implemented:

  • Transaction Support vorhanden
  • Basic CRUD
  • Vector Search

C# (.NET) - MICROSOFT ECOSYSTEM

Status: Alpha vorhanden
Aufwand: 2-3 Wochen (inkl. NuGet)
Priority: SEHR WICHTIG

Use Cases:

  • Azure Cloud Applications
  • Enterprise .NET Apps
  • Unity Game Development
  • ASP.NET Core APIs

SDK Feature Matrix (Aktuell)

SDK CRUD AQL Vector Graph Batch Transaction Status
JavaScript Beta
Python Beta
Rust Beta
Go Alpha
Java Beta
C# Alpha

Best Practices

DO: Feature Parity beibehalten

Alle SDKs sollten dieselben Features unterstützen:

  • CRUD Operations
  • AQL Queries
  • Transactions (ACID)
  • Vector Search
  • Graph Traversal
  • Batch Operations

DO: Idiomatischen Code schreiben

# Python: Context Manager
with client.begin_transaction() as tx:
    tx.put("relational", "users", "123", data)
// JavaScript: Promise-based
const tx = await client.beginTransaction();
await tx.put('relational', 'users', '123', data);
await tx.commit();
// Rust: Result<T, E> Pattern
let tx = client.begin_transaction().await?;
tx.put("relational", "users", "123", &data).await?;
tx.commit().await?;

DO: Comprehensive Testing

Jedes SDK benötigt:

  • Unit Tests
  • Integration Tests
  • Transaction Tests
  • Error Handling Tests
  • Performance Benchmarks

Troubleshooting

Transaction Support fehlt

Problem: SDK hat keine Transaction-Klasse

Lösung: Implementiere nach Phase 1 Pattern:

  1. Transaction class/struct erstellen
  2. BEGIN/COMMIT/ROLLBACK endpoints
  3. State management
  4. Tests schreiben

Tests schlagen fehl

Problem: Integration tests benötigen laufenden Server

Lösung:

# Start ThemisDB via Docker
docker-compose up -d

# Run SDK tests
pytest clients/python/tests      # Python
npm test                         # JavaScript
cargo test                       # Rust

Siehe auch

SDK Dokumentation

Analysis & Audit

API Referenzen


Changelog

Version 1.3.0 (22.12.2025)

  • Aktualisierung auf v1.3.0 Template
  • Feature Matrix aktualisiert
  • Phase 1 & 2 Status dokumentiert
  • Alle Links zu docs/de/ aktualisiert
  • Best Practices erweitert

Version 1.0.0 (20.11.2025)

  • Initial Implementation Plan
  • JavaScript Transaction Support
  • Python Transaction Support
  • Rust Transaction Support
  • Phase 1 Complete