| Crates.io | aqueducts-executor |
| lib.rs | aqueducts-executor |
| version | 0.11.1 |
| created_at | 2025-05-25 20:13:14.186974+00 |
| updated_at | 2025-07-24 12:04:30.132716+00 |
| description | Remote executor for the Aqueducts data pipeline framework |
| homepage | https://github.com/vigimite/aqueducts |
| repository | https://github.com/vigimite/aqueducts |
| max_upload_size | |
| id | 1688667 |
| size | 206,533 |
A deployable application used to execute Aqueduct pipeline definitions within your infrastructure. The main use-case is to execute heavy queries within the infrastructure where the data is hosted, minimizing network load and removing the requirement for the client to have direct access to the data store.
The easiest way to run the executor is using Docker. The Docker image includes ODBC support with PostgreSQL drivers pre-installed, making it ready for database connectivity out of the box.
# Pull from GitHub Container Registry
docker pull ghcr.io/vigimite/aqueducts/aqueducts-executor:latest
# Run with command line arguments
docker run -d \
--name aqueducts-executor \
-p 3031:3031 \
ghcr.io/vigimite/aqueducts/aqueducts-executor:latest \
--api-key your_secret_key --max-memory 4
# Or run with environment variables
docker run -d \
--name aqueducts-executor \
-p 3031:3031 \
-e AQUEDUCTS_API_KEY=your_secret_key \
-e AQUEDUCTS_HOST=0.0.0.0 \
-e AQUEDUCTS_PORT=3031 \
-e AQUEDUCTS_MAX_MEMORY=4 \
-e AQUEDUCTS_LOG_LEVEL=info \
ghcr.io/vigimite/aqueducts/aqueducts-executor:latest
For local development, use the provided docker-compose setup:
# Start just the database (default)
docker-compose up
# Start database + executor
docker-compose --profile executor up
# Build and start from source
docker-compose --profile executor up --build
The executor will be available at http://localhost:3031 with:
test_secret_key (configurable)http://localhost:3031/api/healthws://localhost:3031/ws/connectInstall the application using cargo:
# Standard installation with all cloud storage features
cargo install aqueducts-executor
# Installation with ODBC support
cargo install aqueducts-executor --features odbc
| Option | Description | Default | Environment Variable |
|---|---|---|---|
--api-key |
API key for authentication | - | AQUEDUCTS_API_KEY |
--host |
Host address to bind to | 0.0.0.0 | AQUEDUCTS_HOST |
--port |
Port to listen on | 8080 | AQUEDUCTS_PORT |
--max-memory |
Maximum memory usage in GB (0 for unlimited) | 0 | AQUEDUCTS_MAX_MEMORY |
--server-url |
URL of Aqueducts server for registration (optional) | - | AQUEDUCTS_SERVER_URL |
--executor-id |
Unique identifier for this executor | auto-generated | AQUEDUCTS_EXECUTOR_ID |
--log-level |
Logging level (info, debug, trace) | info | AQUEDUCTS_LOG_LEVEL |
| Endpoint | Method | Auth | Description |
|---|---|---|---|
/api/health |
GET | No | Basic health check |
/ws/connect |
GET | Yes | WebSocket endpoint for bidirectional communication |
ODBC support requires the UnixODBC library to be installed on your system, along with any database-specific drivers.
# Install UnixODBC development libraries
sudo apt-get update
sudo apt-get install unixodbc-dev
# Add database-specific drivers (examples)
# For PostgreSQL
sudo apt-get install odbc-postgresql
# For MySQL
sudo apt-get install libmyodbc
# Install UnixODBC development libraries
sudo dnf install unixODBC-devel
# Add database-specific drivers (examples)
# For PostgreSQL
sudo dnf install postgresql-odbc
# For MySQL
sudo dnf install mysql-connector-odbc
# Install UnixODBC via Homebrew
brew install unixodbc
# For database drivers, use Homebrew if available or download from the database vendor
# PostgreSQL example
brew install psqlodbc
# MySQL example
brew install mysql-connector-c++
# Connect to the executor
aqueducts run --executor executor-host:3031 --api-key your_api_key --file pipeline.yml
Common issues and solutions:
--max-memory parameterodbc.ini and odbcinst.iniisql -v YOUR_DSN YOUR_USERNAME YOUR_PASSWORD to test connectionsFor more information on architecture and advanced usage, see the Aqueducts Architecture Documentation.