xe is a Rust-first Python toolchain manager with:
- one
xe.tomlper project, - no virtualenvs,
- a global content-addressed cache (CAS),
- deterministic dependency locking.
cargo build --release --manifest-path rust/xe_cli/Cargo.toml
.\rust\xe_cli\target\release\xe.exe init
.\rust\xe_cli\target\release\xe.exe python install 3.12
.\rust\xe_cli\target\release\xe.exe use 3.12
.\rust\xe_cli\target\release\xe.exe add requests
.\rust\xe_cli\target\release\xe.exe run -- python -c "import requests; print(requests.__version__)"xe init: createxe.tomland.xe/site-packages.xe add <pkg>: resolve + cache + install artifacts.xe lock: pin dependencies inxe.toml.xe sync: install fromxe.toml.xe run -- ...: run commands with project packages onPYTHONPATH.
xe sync,xe lock,xe export,xe tree,xe formatxe python install|list|find|pin|dirxe pip install|uninstall|list|show|tree|check|sync|compilexe tool run|install|list|update|uninstall|upgrade|sync|dirxe cache dir|clean|prunexe publish,xe auth,xe build
Project docs are in MkDocs format.
mkdocs serve
mkdocs buildUse --profile on any command to capture timing logs and pprof artifacts:
./xe --profile add requestsWindows build steps (single xe.exe):
.\scripts\build_windows_rust.ps1Manual equivalent:
cargo build --release --manifest-path rust/xe_cli/Cargo.toml
Copy-Item .\rust\xe_cli\target\release\xe.exe .\xe.exe -Force