= ecmind-blue-client
:description: Python-Bibliothek (>=3.12) für ECMind Blue Server. Drei Abstraktionsebenen: TCP/RPC-Protokoll, Connection-Pool (SyncPoolClient/AsyncPoolClient) und typisierte ECM-Objekt-API.
:keywords: ecmind-blue-client, SyncPoolClient, AsyncPoolClient, ECM, TCP, RPC, Python, enaio
:page-tags: overview

`ecmind-blue-client` ist eine Python-Bibliothek (Python >= 3.12), die den Zugriff auf ECMind Blue Server über das proprietäre TCP/RPC-Protokoll kapselt.

Die Bibliothek stellt drei Abstraktionsebenen bereit:

[horizontal]
RPC-Ebene:: Direkter TCP-Socket-Zugriff auf den Server. Serialisiert Job-Parameter in das proprietäre Binärprotokoll.
Pool-Client:: Empfohlene Verbindungspools (`SyncPoolClient` / `AsyncPoolClient`) mit gewichtetem Load-Balancing über mehrere Server.
ECM-API:: Objektorientierte Hochsprach-API für Ordner, Register und Dokumente sowie Datenbankzugriff.

== Verfügbare Namespaces

Nach der Initialisierung über die `ECM()`-Factory stehen folgende Namespaces zur Verfügung:

[cols="1,3"]
|===
|Namespace |Beschreibung

|`ecm.dms`
|Objekt-Operationen: Ordner, Register, Dokumente — Suchen, Anlegen, Bearbeiten, Löschen

|`ecm.security`
|Benutzer- und Gruppenverwaltung

|`ecm.system`
|Server-Metadaten und Objektdefinitionen

|`ecm.db`
|Direkter SQL-Zugriff über ADO (`ado.ExecuteSQL`)
|===

== Sync und Async

Alle Namespaces sind vollständig sowohl synchron als auch asynchron verfügbar.
Das Übergeben eines `SyncPoolClient` an `ECM()` liefert eine synchrone Instanz zurück,
ein `AsyncPoolClient` liefert die asyncio-basierte Variante.

[tabs]
====
Sync::
+
[source,python]
----
from ecmind_blue_client.ecm import ECM
from ecmind_blue_client.pool import SyncPoolClient

client = SyncPoolClient(servers="<host>:4000:1", username="<username>", password="<password>")
ecm = ECM(client)
----

Async::
+
[source,python]
----
from ecmind_blue_client.ecm import ECM
from ecmind_blue_client.pool import AsyncPoolClient

client = AsyncPoolClient(servers="<host>:4000:1", username="<username>", password="<password>")
ecm = ECM(client)
----
====

== Weiterführende Links

* xref:quickstart.adoc[Schnellstart]
* xref:api/index.adoc[API-Referenz]
