Skip to content

Quickstart

Dry-run on the host (Go only, no Python — validates, translates and plans, but does not solve):

make run                                    # build + serve on :8080
curl -s -X POST 'localhost:8080/validate?target=all' \
     -d @examples/shared_full.json | jq .   # per-target verdicts
curl -s -X POST 'localhost:8080/convert?target=calliope' \
     -d @examples/calliope_full.json | jq . # emit the native model to disk

Without a checkout, go install github.com/enerplanet/meme/cmd/meme@latest puts the same dry-run binary into your Go bin directory (meme -version tells you which release).

Real solvers in Docker (PyPSA/HiGHS, Calliope/CBC, AdOpT/GLPK — nothing to install on the host beyond Docker):

make -C environment build ENV=dev           # one-time image build
make -C environment run   ENV=dev           # API on :8080, real execution

ID=$(curl -s -X POST 'localhost:8080/simulate?target=all' \
     -d @examples/shared_full.json | jq -r .id)          # 202, async job
curl -s "localhost:8080/jobs/$ID/status" | jq .state     # queued->running->succeeded
curl -s -o result.zip "localhost:8080/jobs/$ID"          # results + config + files + logs

The full request walkthrough (single- and multi-target, every run mode, seeing a 422 rejection) is on the Examples page.

Next steps

  • Configuration: ports, work directory, real execution, API key and CORS.
  • Examples: the full request walkthrough, single- and multi-target, every run mode, and what a rejection looks like.
  • Targets and versions: which framework release each target drives and how all, variants and aliases resolve.