Lite core and extras¶
As of 1.0.0, pip install hyperion-sdk installs a slim lite core. Heavy
backends are opt-in extras. This page explains the split and the reasoning.
What is always installed¶
The lite core pulls only light, pure-Python-ish dependencies: loguru,
pydantic, httpx, python-dateutil, python-dotenv, env-proxy,
cachetools, click, haversine, aws-lambda-typing.
That is enough for the domain layer, the ports, configuration, logging, date utilities, async utilities, Haversine geo math, and the in-memory / filesystem adapters.
The extras¶
| Extra | Pulls | Enables |
|---|---|---|
[aws] |
boto3, aioboto3 |
every adapters/*/dynamodb, s3, sqs, aws_sm (DynamoDB cache/keyval, S3 storage/schema, SQS queue, AWS Secrets Manager) |
[data] |
polars, pandera, numpy |
hyperion.data.* (pandera↔polars typing, asset schemas, SpatialKMeans) |
[catalog] |
fastavro |
hyperion.adapters.serialization.avro (avro-backed Catalog) |
[geo] |
googlemaps |
hyperion.adapters.geocoder.google (GoogleMaps); Haversine math stays lite |
[snappy] |
python-snappy |
compressed filesystem cache / DynamoDB keyval (graceful no-compression fallback when absent) |
[all] |
union of the above | parity with the pre-1.0 full install |
[catalog] no longer transitively requires [aws]: a Catalog backed by
local filesystem storage works with [catalog] alone.
Why split it¶
- Smaller, faster installs — most consumers don't need
boto3andpolarsandgooglemaps. A source running in a constrained Lambda or a CLI tool only pays for what it uses. - Clear capability boundaries — the extras map one-to-one onto adapter families, so "what do I need to install?" has a mechanical answer.
- Architecturally enforced — the lite-core promise (the core pulls no heavy third-party) is verified separately by the import-graph test and a no-extras smoke job, complementing the internal layering contract described in Ports and adapters.
Picking extras¶
Install the capabilities you use, e.g.:
pip install 'hyperion-sdk[catalog,aws]' # Catalog on S3
pip install 'hyperion-sdk[data]' # feature models / asset collections
pip install 'hyperion-sdk[all]' # everything (pre-1.0 parity)
See the task-focused Install Hyperion and pick extras guide for combinations and version pinning.