es-client
Elasticsearch Client builder, complete with schema validation
Decision gist · record as of 2026-08-14
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.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python 3.10 or later; elasticsearch9 must be installed as a runtime dependency.
- 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 · maintenance · safety
Apache-2.0 (permissive) — Licensed under Apache-2.0 (permissive), allowing commercial and private use with minimal restrictions.
last release 2025-10-03 (315 days) · last repo commit 2025-10-07 · 1 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 182,612 downloads/mo, #10,092 on PyPI
Alternatives
Verify before relying
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- 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.
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 on it.
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
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.
Requires Python 3.10 or later; elasticsearch9 must be installed as a runtime dependency.
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
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 packagescertificlickcryptographydotmapecs-loggingelasticsearch9pyyamltiered-debugvoluptuous |
| 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 |
| Classifiers | Intended Audience :: DevelopersLicense :: OSI Approved :: Apache Software LicenseOperating System :: OS IndependentProgramming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13 |
Evidence: es_client-9.0.1-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “elasticsearch connection validation”
- es-clientBuilds and validates Elasticsearch client connections with schema…
- elasticsearch5Low-level Python client for Elasticsearch 5.x that handles connection…
- elasticsearch7Official Python client for Elasticsearch that handles connection…
Give your agent the search over MCP, or paste the wish link into any chat.
More Front-Ends packages
SQLAlchemy is a Python SQL toolkit and Object Relational Mapper (ORM) that provides both a high-level ORM layer for declarative object persistence and a Core SQL construction system for direct database abstraction and query building.
psycopg2-binary is a PostgreSQL database adapter for Python that implements the DB API 2.0 specification, enabling Python applications to connect to and query PostgreSQL databases with thread-safe concurrent operations.
Alembic generates and manages database schema migrations for SQLAlchemy applications, handling version control of database structure changes with support for upgrades, downgrades, and auto-generation from model changes.
Install it if you use SQLAlchemy and need to version-control schema changes; skip it only if you manage migrations manually or use a different ORM entirely.
A Python client library for connecting to and querying Weaviate, a vector database that enables semantic search and AI-powered data retrieval.
A Python client library that connects to Databricks clusters and SQL warehouses using a Thrift-based protocol, conforming to the Python DB API 2.0 specification and supporting Arrow-based data exchange.
Install it if you need to query Databricks clusters or SQL warehouses from Python.
Psycopg 3 is a PostgreSQL database adapter for Python that enables applications to connect to, query, and manage PostgreSQL databases using Python code.
Install it if you need to connect Python to PostgreSQL.
See also elasticsearch9 · elasticsearch · elasticsearch-dsl · elasticsearch-curator · elasticsearch8-dsl · elasticsearch7 · elasticsearch6 · elasticsearch5 · elasticsearch-dbapi