Skip to main content

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)

Source distribution for conda-presto 0.8.0
File Size Uploaded
conda_presto-0.8.0.tar.gz 436.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for conda-presto 0.8.0
File Interpreter ABI Platform
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 log

Release 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

Release history Release notifications | RSS feed

This release

0.8.0 This release

2 release files

0.7.0

2 release files

0.6.0

2 release files

0.5.1

2 release files

0.5.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page