conda-presto
conda-presto resolves conda package specifications without creating or changing an environment. It accepts inline specs or environment files, selects fully pinned packages for one or more platforms, and writes native JSON or a conda exporter format.
The same solve engine is available through the conda presto CLI, a Litestar HTTP API, a GitHub Action, and an internal broker-backed conda --solver=presto plugin. The internal solver delegates only final-state selection. Conda still owns package downloads and prefix transactions locally.
Capabilities
- Resolve inline specs or supported environment inputs selected through conda environment specifier plugins
- Solve several target platforms with deterministic target virtual-package defaults
- Write native package metadata or any installed conda exporter format
- Convert covered lockfiles through the CLI without solving
- Inspect lockfile metadata over HTTP without loading package records
- Parse and review inputs through
/parse,/preflight,/repair,/diff, and/explain - Prepare, resolve, examine, and export environments in the first-party browser workbench
- Retain HTTP results under content-addressed
/r/<hash>locations with memory, file, or Redis storage - Run a persistent public HTTP worker in the server container
- Run an opt-in broker-managed loopback service for repeated local work
- Delegate internal conda final-state solves through
conda --solver=presto - Record repeated solver requests and refresh missing or stale private final states during broker idle time
- Resolve environments in GitHub Actions through local CLI or remote HTTP modes
- Select packages with
conda-rattler-solver
Quick start
conda create --name conda-presto \
--override-channels \
--channel conda-forge \
python=3.13 \
'conda>=26.5,<27' \
'conda-rattler-solver>=0.1.1,<0.2' \
'conda-lockfiles>=0.2.1' \
pip
conda activate conda-presto
python -m pip install conda-presto
conda presto -c conda-forge -p linux-64 python=3.13 numpy
conda-presto is installed from PyPI into a conda environment that supplies conda and its solver plugins. It is not currently published as a conda package. See the quick start for released, current-main, and source-checkout installation paths, file inputs, lockfile output, and the local HTTP server.
Run the HTTP server
docker run --detach \
--name conda-presto \
--publish 127.0.0.1:8000:8000 \
--cap-drop ALL \
--security-opt no-new-privileges \
ghcr.io/jezdez/conda-presto:0.8.0
for _ in {1..180}
do
if curl --fail --silent http://127.0.0.1:8000/health >/dev/null
then
break
fi
sleep 1
done
curl --fail --silent --show-error http://127.0.0.1:8000/health
The server image listens on port 8000 inside the container and runs one persistent foreground worker. It does not start conda-broker, expose the internal solver route, or run scheduled solver-cache refresh.
The 0.8.0 server image serves the browser workbench at http://127.0.0.1:8000/ and the generated OpenAPI document at http://127.0.0.1:8000/openapi.json.
See Run conda-presto with Docker and the Docker image reference.
Run the broker-managed service
conda-presto registers the manual conda-presto.server service with conda-broker. The service binds to a broker-assigned loopback port and keeps its foreground solver worker loaded between requests.
conda broker start conda-presto.server
conda broker wait conda-presto.server --timeout 180
conda broker endpoint conda-presto.server
See Run the broker-managed service for lifecycle, configuration capture, logs, and trust boundaries.
Use the internal Presto solver
After the broker service is ready, select the internal backend for one conda operation:
conda create --dry-run --solver=presto -n demo -c conda-forge python=3.13
The backend is local-only and tied to the broker service. It is not a remote solver protocol and is not available through the Docker server image. See Use the Presto solver and the solver reference.
Documentation
- Tutorials for guided CLI, HTTP, review, and local-service workflows
- How-to guides for Docker, broker, cache, monitoring, troubleshooting, and CI tasks
- Reference for exact interfaces, service contracts, cache behavior, and configuration
- Explanation for architecture, deployment models, review semantics, caching, performance, and security
- Roadmap for shipped streams and linked future work
- Changelog for release history
Development
git clone https://github.com/jezdez/conda-presto.git
cd conda-presto
pixi install
pixi run lint
pixi run format
pixi run -e test test
pixi run -e test bench
pixi run serve
pixi run -e docs docs
License
BSD-3-Clause
Release files for conda-presto 0.8.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| conda_presto-0.8.0.tar.gz | 436.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| conda_presto-0.8.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 643.8 kB
Release files / conda_presto-0.8.0.tar.gz
| Download URL | conda_presto-0.8.0.tar.gz |
|---|---|
| Size | 436.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
e1ad59670f7aaf16e248e79e083358d0c3d1078240593ffdbac71575f2a52429
|
|
BLAKE2b-256 checksum How to use checksums |
9e443e3103a0f7a9037da3b6b240f5eeb6c3399542987bad77fc688c39fca503
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.13
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 24, 2026.
Transparency logRelease files / conda_presto-0.8.0-py3-none-any.whl
| Download URL | conda_presto-0.8.0-py3-none-any.whl |
|---|---|
| Size | 207.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
7d87bb256ce2c2a6b28d34e76ae7f97386292410a9ef069e20511aa51ea5af92
|
|
BLAKE2b-256 checksum How to use checksums |
2b62072c984c67f0e4de0f1700d366c6dd7f273d7a5e346627f0c5f5a7d985c8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.13
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 24, 2026.
Transparency log