Installation

This guide covers how to install the XAct.jl package for research use, as well as the optional verification framework for developers.

Canonical onboarding path: README → Installation → Getting StartedTyped Expressions (TExpr).

1. Quick Install (Research Use)

If you just want to use xAct for tensor calculus in Julia, you only need the Julia package.

Prerequisites

Installation

Open your Julia REPL and run:

using Pkg
Pkg.add(url="https://github.com/sashakile/XAct.jl.git")

Wait for the installation to finish, then you can start using it:

using XAct

Next: continue to Getting Started for the first working examples.

2. Python Wrapper (xact-py)

The Python wrapper provides an idiomatic interface to the Julia core. For the full verification framework, see Developer Install.

Prerequisites

Installation

xact-py is published on PyPI. For normal use, install the latest release with:

pip install xact-py

Only install from a repository checkout if you explicitly need unreleased changes from main or are contributing to the wrapper:

git clone https://github.com/sashakile/XAct.jl.git
cd sxAct
uv pip install -e packages/xact-py

Note: The wrapper automatically manages its Julia dependencies using juliapkg.

Next: continue to Getting Started for the first Python workflow.


3. Developer/Verification Install

The full suite includes a Python wrapper and a Dockerized Wolfram Oracle for proving implementation parity.

Prerequisites

Step A: Clone and Sync

git clone https://github.com/sashakile/XAct.jl.git
cd sxAct
uv sync

Step B: Activate the Wolfram Oracle

The verification suite requires a Dockerized Wolfram Engine. You must activate it once using a free Wolfram ID:

docker compose run --rm wolfram wolframscript -activate

Step C: Start the Server

docker compose up -d oracle

Step D: Run Tests

uv run pytest

Once the environment is ready, use Getting Started for user-facing workflows and Contributing for development guidance.


Troubleshooting

"No valid license found" (Wolfram Engine)

The Docker container needs a one-time activation. Ensure you have run:

docker compose run --rm wolfram wolframscript -activate

Docker: "Permission denied"

Ensure your user is in the docker group or prefix commands with sudo.

Julia: "Package not found"

Ensure you are using the correct URL when adding via Pkg.add(url=...).