Quick start#
This tutorial installs conda-presto in a dedicated tooling environment, runs one solve, and starts the optional HTTP server. The solve does not create or modify a target environment.
Install#
Choose the package source that matches the documentation you want to follow.
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' \
'jinja2>=3.1.2' \
'litestar>=2.18' \
'pyjwt>=2.0' \
'uvicorn>=0.34' \
'brotli-python>=1.1' \
pip
conda activate conda-presto
python -m pip install conda-presto
conda create --name conda-presto-main \
--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' \
'jinja2>=3.1.2' \
'litestar>=2.18' \
'pyjwt>=2.0' \
'uvicorn>=0.34' \
'brotli-python>=1.1' \
pip
conda activate conda-presto-main
python -m pip install 'git+https://github.com/jezdez/conda-presto.git@main'
git clone https://github.com/jezdez/conda-presto.git
cd conda-presto
pixi install
pixi shell
conda-presto is installed from PyPI or Git into a conda environment that supplies conda and its solver plugins. It is not currently published as a conda package. The source-checkout path enters the default Pixi development environment. Run the remaining commands inside the activated conda environment or Pixi shell.
Note
The documentation site is built from main. If the [Unreleased] changelog
section is not empty, use the current-main or source-checkout tab for those
changes.
conda-presto requires conda 26.5 or newer and Python 3.13 or newer. Verify that conda discovered the subcommand:
conda presto --help
Resolve an environment#
Resolve Python and NumPy for Linux without downloading packages or creating a prefix:
conda presto -c conda-forge -p linux-64 python=3.13 numpy > result.json
Inspect the selected package names and versions:
jq -r '.[0].packages[] | "\(.name) \(.version) \(.build)"' result.json
The outer array contains one result per requested platform. A successful entry
has package records and an error value of null.
Resolve an environment file#
Given an environment.yml, request two platforms:
conda presto -f environment.yml -p linux-64 -p osx-arm64 > result.json
The two solves can run in parallel. To write a lockfile instead of native JSON, select a conda exporter:
conda presto -f environment.yml \
-p linux-64 \
-p osx-arm64 \
--format pixi-lock-v6 > pixi.lock
Start the HTTP server#
Start a local server in one terminal:
conda presto --serve
Check readiness from another terminal:
curl -sS http://127.0.0.1:8000/health
The response is {"status":"ok"} when the server can accept solve requests.
The 0.8.0 release and current main serve the browser workbench at
http://127.0.0.1:8000/. Fetch
http://127.0.0.1:8000/openapi.json for the generated OpenAPI document.
Choose the next guide#
Create a multi-platform lockfile builds a multi-platform lockfile from start to finish.
Resolve through the HTTP API introduces the HTTP workflow and result permalinks.
Use the browser workbench introduces the browser workflow.
Review and repair an environment teaches preflight, repair, diff, and explain.
Use the local solver service introduces the broker service and Presto solver.
How-to guides contains task-focused CLI, server, Docker, cache, and CI guides.
Reference documents the exact interfaces and configuration.