skillfed

es-client

Elasticsearch Client builder, complete with schema validation

es-client v9.0.1 182.6K downloads/30d#10,092 on PyPI1
Permissive license Apache-2.0 AGING released

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-client

uv

uv add es-client

poetry

poetry add es-client

Installing 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

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

Tags

elasticsearch client builderelasticsearch connection validationelasticsearch config schemaelasticsearch client setupelasticsearch connection managerelasticsearch configuration loaderelasticsearch client factory
elasticsearchconfiguration-validationschema-validation

More Front-Ends packages