Installation
Get ArqonHPO running on your system in minutes.
Whether you're optimizing your first hyperparameter or building production-grade ML pipelines, this guide has you covered.
Choose Your Path¶
| Method | Best For | Time to Start |
|---|---|---|
| Python (pip) | Most users, ML workflows | 30 seconds |
| Python (conda) | Reproducible environments | 1 minute |
| Rust (from source) | Contributors, custom builds | 5 minutes |
| Python bindings (from source) | Binding development | 3 minutes |
| Docker | Isolated environments, CI/CD | 2 minutes |
Python (Recommended)¶
The fastest way to get started with ArqonHPO:
That's it. You're ready to optimize.
No Rust Required
The pip package includes pre-built binaries for all major platforms. You only need Rust if building from source.
Requirements¶
| Requirement | Version | How to Check |
|---|---|---|
| Python | 3.10+ | python --version |
| pip | 21.0+ | pip --version |
| OS | 64-bit Linux, macOS, or Windows | — |
Verify Installation¶
Upgrade to Latest¶
Install Specific Version¶
Conda¶
For reproducible environments and scientific workflows:
Create a Dedicated Environment¶
# Create environment with ArqonHPO
conda create -n hpo python=3.11 arqonhpo -c conda-forge
# Activate it
conda activate hpo
# Verify
python -c "from arqonhpo import ArqonSolver; print('✓ Ready')"
With Other ML Libraries¶
From Source (Rust)¶
Build ArqonHPO from source for development, customization, or to use the bleeding-edge version.
Rust 1.82 Required
Building from source requires exactly Rust 1.82. This version is frozen due to specific language features and API dependencies used in the codebase.
Prerequisites¶
Before you begin, ensure you have the following installed:
1. Rust Toolchain (1.82 — Pinned)¶
# Install Rust via rustup (recommended)
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
# Update to latest stable
rustup update stable
# Verify version
rustc --version # Must show exactly 1.82.x
Windows Users
On Windows, download and run rustup-init.exe instead. You may also need to install the Visual Studio Build Tools.
2. Protobuf Compiler¶
ArqonHPO uses Protocol Buffers for efficient serialization.
bash sudo apt update && sudo apt install -y protobuf-compiler
bash brew install protobuf
bash sudo dnf install -y protobuf-compiler
bash sudo pacman -S protobuf
```powershell # Using Chocolatey choco install protoc
# Or using Scoop
scoop install protobuf
```
Verify protobuf installation:
3. Just (Task Runner)¶
We use Just as our task runner for consistent developer experience.
bash cargo install just
bash brew install just
bash sudo apt install just # Or use cargo install just if not available
```powershell # Using Chocolatey choco install just
# Using Scoop
scoop install just
```
4. Git¶
Build Steps¶
# 1. Clone the repository
git clone https://github.com/novelbytelabs/ArqonHPO.git
cd ArqonHPO
# 2. Build all crates in release mode
cargo build --workspace --release
# 3. Run the test suite to verify everything works
cargo test --workspace
Build Complete
If all tests pass, you've successfully built ArqonHPO from source!
Install the CLI¶
The ArqonHPO CLI provides interactive optimization via the terminal:
# Install the CLI binary
cargo install --path crates/cli --bin arqonhpo-cli
# Verify installation
arqonhpo-cli --version
The binary will be installed to ~/.cargo/bin/. Ensure this is in your PATH.
Development Build (Debug Mode)¶
For faster compilation during development:
Python Bindings (Maturin)¶
Build Python bindings from source when contributing to the Python API or testing unreleased features.
Prerequisites¶
- Rust 1.82 (see above)
- Python 3.10+ with a virtual environment
- maturin (Python-Rust build tool)
Setup¶
# 1. Clone the repository
git clone https://github.com/novelbytelabs/ArqonHPO.git
cd ArqonHPO
# 2. Create a virtual environment
python -m venv venv
source venv/bin/activate # Linux/macOS
# Or: venv\Scripts\activate # Windows
# 3. Install maturin
pip install maturin
# 4. Build and install the bindings in development mode
cd bindings/python
maturin develop --release
Verify¶
Build Distributable Wheels¶
To create wheel files for distribution:
# Build wheels for your platform
maturin build --release -m bindings/python/Cargo.toml
# Wheels are output to target/wheels/
ls target/wheels/
Docker¶
Containerized ArqonHPO for isolated environments and CI/CD pipelines.
Quick Start¶
# Pull the official image
docker pull novelbytelabs/arqonhpo:latest
# Run interactively
docker run -it novelbytelabs/arqonhpo:latest python
>>> from arqonhpo import ArqonSolver
>>> print("Ready!")
Mount Your Project¶
Docker Compose¶
For complex setups:
# docker-compose.yml
version: "3.8"
services:
optimizer:
image: novelbytelabs/arqonhpo:latest
volumes:
- ./experiments:/workspace
command: python /workspace/run_hpo.py
Build Custom Image¶
FROM novelbytelabs/arqonhpo:latest
# Add your dependencies
RUN pip install torch transformers
# Copy your code
COPY . /app
WORKDIR /app
CMD ["python", "optimize.py"]
Docker Image Availability
Docker images are published starting from v0.4. For earlier versions, build from source using the Dockerfile in the repository.
Platform Support¶
Officially Supported¶
| Platform | Python | CLI | Notes |
|---|---|---|---|
| Linux x86_64 | ✅ | ✅ | Full support, primary development platform |
| Linux ARM64 | ✅ | ✅ | Full support (AWS Graviton, Raspberry Pi 4+) |
| macOS x86_64 | ✅ | ✅ | Full support |
| macOS ARM64 (Apple Silicon) | ✅ | ✅ | Full support, native M1/M2/M3 binaries |
| Windows x86_64 | ✅ | ✅ | Full support, tested on Windows 10/11 |
Community Supported¶
These platforms may work but are not actively tested:
| Platform | Status | Notes |
|---|---|---|
| FreeBSD | 🔧 | Build from source, may require patches |
| Windows ARM64 | 🔧 | Untested, requires building from source |
| musl Linux (Alpine) | 🔧 | Use --target x86_64-unknown-linux-musl |
Virtual Environment Best Practices¶
We strongly recommend using virtual environments to isolate ArqonHPO from other projects.
Option 1: venv (Built-in)¶
# Create environment
python -m venv arqon-env
# Activate
source arqon-env/bin/activate # Linux/macOS
arqon-env\Scripts\activate # Windows
# Install
pip install arqonhpo
Option 2: conda¶
Option 3: uv (Fast & Modern)¶
uv is a blazing-fast Python package manager:
# Install uv
curl -LsSf https://astral.sh/uv/install.sh | sh
# Create environment and install
uv venv
source .venv/bin/activate
uv pip install arqonhpo
Troubleshooting¶
Installation Issues¶
pip install fails with 'no matching distribution'
Cause: Your Python version or platform is not supported.
**Solution**:
```bash
# Check Python version (need 3.10+)
python --version
# Check architecture
python -c "import platform; print(platform.machine())"
```
If you're on an unsupported platform, [build from source](#from-source-rust).
Rust build fails with protobuf error
Error: Could not find protoc installation
**Solution**: Install protobuf compiler for your platform:
```bash
# Ubuntu/Debian
sudo apt install protobuf-compiler
# macOS
brew install protobuf
# Verify
protoc --version
```
Import error: 'symbol not found'
Cause: Python version mismatch between build and runtime.
**Solution**:
```bash
# Ensure you're using the same Python that built the bindings
which python
# Rebuild in a clean environment
pip uninstall arqonhpo
pip install arqonhpo --no-cache-dir
```
Permission denied during install
Solution: Use a virtual environment instead of system Python: bash python -m venv venv source venv/bin/activate pip install arqonhpo
Windows: 'cargo' is not recognized
Cause: Rust not in PATH after installation.
**Solution**:
1. Close and reopen your terminal
2. Or manually add `%USERPROFILE%\.cargo\bin` to your PATH
Runtime Issues¶
Performance is slower than expected
Checklist:
- [ ] Using release build? (`cargo build --release`)
- [ ] Not running under debugger?
- [ ] CPU not throttled? (check power settings on laptops)
- [ ] No other heavy processes competing for resources?
Out of memory during optimization
Solutions:
1. Reduce population size in strategies
2. Use streaming evaluation for large datasets
3. Increase system swap space
4. Consider using chunked optimization
Getting More Help¶
If your issue isn't listed above:
- Search existing issues: GitHub Issues
- Ask in discussions: GitHub Discussions
- Open a new issue with:
- Your OS and version
- Python version
- ArqonHPO version
- Full error message/stack trace
Uninstalling¶
Python Package¶
Rust CLI¶
Complete Cleanup¶
# Remove pip cache
pip cache purge
# Remove cargo artifacts (if built from source)
cd ArqonHPO && cargo clean
Next Steps¶
You're all set! Here's where to go next:
Get running in 5 minutes with your first optimization
Complete API documentation
Learn by example with real-world use cases
Help make ArqonHPO even better
Having trouble? Open an issue or ask in discussions.
Found ArqonHPO useful? Consider starring the repo