es-client
Elasticsearch Client builder, complete with schema validation
What it is and what it does
es_client wraps the elasticsearch9 Python client to add configuration schema validation, version checking, and file-path validation for SSL certificates. It accepts configuration as a Python dictionary or YAML file, validates all keys and parameter values against a known schema, and rejects unknown or invalid settings before attempting connection. The package enforces acceptable value ranges and validates that certificate paths exist and are readable.
The primary use case is applications that need to safely load Elasticsearch configuration from external sources (config files, environment variables) without risking invalid or malformed client initialization. It's built around the elasticsearch9 dependency and adds a validation layer on top of direct client construction.
Use it for:
- Load Elasticsearch client configuration from a YAML file with automatic validation of all parameters.
- Reject invalid configuration early with clear schema errors before attempting to connect.
- Validate SSL certificate paths and other file-based settings during configuration parsing.
- Detect and enforce master-only node settings and Elasticsearch version compatibility checks.
- Build CLI tools or services that accept Elasticsearch configuration from external sources safely.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Builds and validates Elasticsearch client connections with schema validation, version checking, and configuration file support.
Yes, if you build applications that load Elasticsearch configuration from files or external sources and want schema validation before connection. The low install friction and permissive license make it a safe addition. No, if you only use hardcoded Elasticsearch client configuration or don't need validation—the elasticsearch9 client alone is sufficient. Maintenance is aging but not abandoned; expect slow update cycles.
Install
es-client on PyPI
pip
pip install es-clientuv
uv add es-clientpoetry
poetry add es-clientInstalling es-client
Before you install
Low install friction with a pure-Python wheel. Maintenance is aging—last release was 315 days ago and the repository has minimal activity (1 star), though it remains active and supported for current Python versions.
License in practice
Licensed under Apache-2.0 (permissive), allowing commercial and private use with minimal restrictions.
Quickstart
from es_client import Builder
config = {
'elasticsearch': {
'client': {'hosts': 'https://10.0.0.123:9200'},
'other_settings': {'master_only': False}
}
}
builder = Builder(configdict=config)
builder.connect()
client = builder.client
Requires Python 3.10 or later; elasticsearch9 must be installed as a runtime dependency.
Verify before relying
- Whether schema validation catches all common misconfiguration patterns in practice.
- Performance characteristics when validating large or complex configuration objects.
- Compatibility guarantees with specific Elasticsearch server versions beyond validation checks.
Package facts
| License | Apache-2.0 (permissive) |
| Python support | supports the current Python release (>=3.10) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 9 — certifi, click, cryptography, dotmap, ecs-logging, elasticsearch9, pyyaml, tiered-debug, voluptuous |
| Maintenance | aging — 315 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 182,612/month — #10,092 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: es_client-9.0.1-py3-none-any.whl
Keywords: client, command-line, connect, elasticsearch
Tags
More Front-Ends packages
SQLAlchemy is a Python SQL toolkit and Object…
permissive · top 100 on PyPI
psycopg2-binarypsycopg2-binary is a PostgreSQL database…
copyleft · top 1,000 on PyPI
alembicAlembic generates and manages database schema…
permissive · top 1,000 on PyPI
weaviate-clientA Python client library for connecting to and…
permissive · top 1,000 on PyPI
databricks-sql-connectorA Python client library that connects to…
permissive · top 1,000 on PyPI
psycopgPsycopg 3 is a PostgreSQL database adapter for…
copyleft · top 1,000 on PyPI
elasticsearch9Official Python client for Elasticsearch that…
permissive · top 15,000 on PyPI
elasticsearchOfficial Python client library for connecting…
permissive · top 1,000 on PyPI
elasticsearch-dslProvides a high-level Python API for building…
permissive · top 5,000 on PyPI
elasticsearch-curatorManages Elasticsearch indices and snapshots…
permissive · top 15,000 on PyPI
elasticsearch8-dslA high-level Python query builder for…
permissive · top 15,000 on PyPI
elasticsearch7Official Python client for Elasticsearch that…
permissive · top 15,000 on PyPI
elasticsearch6Low-level Python client for Elasticsearch that…
permissive · top 15,000 on PyPI
elasticsearch5Low-level Python client for Elasticsearch 5.x…
permissive · top 15,000 on PyPI
elasticsearch-dbapiProvides DBAPI (PEP-249) and SQLAlchemy dialect…
permissive · top 5,000 on PyPI