sonic-client
python client for sonic search backend
What it is and what it does
sonic-client is a synchronous Python wrapper around the Sonic search backend protocol. It provides three main client classes—IngestClient for adding searchable content, SearchClient for querying, and ControlClient for administrative operations—all communicating via TCP with a remote Sonic server. The library was designed to work within gevent contexts as an alternative to async-based clients.
The package has no external runtime dependencies, making installation straightforward. However, it is in abandoned maintenance: the last commit was in April 2021, over 1170 days ago, and the codebase is marked as Alpha. While it remains available and has modest download volume, it will not receive updates for Python compatibility issues, Sonic protocol changes, or bug fixes.
Use it for:
- Index and search documents in a Sonic backend from a Python application without async overhead.
- Build a synchronous search layer on top of Sonic for gevent-based applications.
- Perform bulk ingestion of searchable content into Sonic collections and buckets.
- Query Sonic indices and retrieve search results programmatically in a blocking context.
- Trigger administrative operations like consolidation on a remote Sonic instance.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Python client library for the Sonic search backend, providing ingest, search, and control operations over a network connection.
Yes, with conditions. Install if you are already committed to Sonic as your search backend and need a synchronous Python client for a gevent-based application. The low install friction and permissive license are advantages. However, the abandoned maintenance status means you should expect no updates for Python version compatibility or Sonic protocol changes, and you may need to fork or patch the code yourself if issues arise. Not recommended for new projects unless you have a specific gevent requirement and are willing to maintain the integration yourself.
Install
sonic-client on PyPI
pip
pip install sonic-clientuv
uv add sonic-clientpoetry
poetry add sonic-clientInstalling sonic-client
Before you install
Low install friction with no runtime dependencies. Maintenance is abandoned—last commit was 2021-04-27 and no updates for over 1170 days—so expect no bug fixes or compatibility updates for newer Python or Sonic versions.
License in practice
Licensed under BSD 3-Clause License with permissive treatment, allowing commercial and private use with minimal restrictions.
Quickstart
pip install sonic-client
from sonic import SearchClient
with SearchClient("127.0.0.1", 1491, "password") as querycl:
results = querycl.query("wiki", "articles", "search_term")
Requires a running Sonic search backend server accessible at the specified host and port.
Verify before relying
- Whether the package works with current Python versions (3.10+) given its abandoned status.
- Compatibility with recent Sonic backend versions and protocol changes.
- Whether gevent integration mentioned in the description is actively maintained or documented.
Package facts
| License | BSD 3-Clause License (permissive) |
| Python support | not specified |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | none |
| Maintenance | abandoned — 1,170 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 123,864/month — #11,894 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: sonic_client-1.0.0-py3-none-any.whl
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
azure-kusto-ingestIngest data into Azure Kusto clusters from…
permissive · top 5,000 on PyPI
ingestringestr is a command-line tool that copies data…
permissive · top 15,000 on PyPI
openmeterOpenMeter Python SDK provides a client library…
permissive · top 15,000 on PyPI
signalfxPython client library for sending metrics,…
permissive · top 15,000 on PyPI
algoliasearchA Python HTTP client for interacting with…
permissive · top 5,000 on PyPI
humiolibPython SDK that wraps Humio's web API to enable…
permissive · top 15,000 on PyPI
tinybird-python-sdkIngest NDJSON data into Tinybird Data Sources…
unclear · top 15,000 on PyPI
azure-search-documentsClient library for querying, indexing, and…
unclear · top 5,000 on PyPI
unstructured-ingestUnstructured Ingest is a local ETL pipeline…
permissive · top 15,000 on PyPI
openmetadata-ingestionOpenMetadata Ingestion is a framework for…
unclear · top 15,000 on PyPI