Installation
This guide covers installing ENRGDAQ on macOS and Linux. Windows has limited support — see the platform notes below.
Requirements
- Python 3.12+ — ENRGDAQ uses modern type hints and
msgspecfeatures - uv
- Git — to clone the repository
Install with uv (recommended)
# Clone the repository
git clone https://github.com/ENRG-tr/enrgdaq.git
cd enrgdaq
# Install all dependencies in a virtual environment
uv sync
Verify the installation:
Platform notes
| Platform | Status | Notes |
|---|---|---|
| Linux | Supported | Full feature set including shared memory ring buffers |
| macOS | Supported | Full feature set including shared memory ring buffers |
| Windows | Partial | No fork(), no IPC sockets, no shared memory ring buffers |
On Windows, ENRGDAQ falls back to in-process threading for DAQJobs and skips zero-copy shared memory. Throughput will be lower than on Linux/macOS.
Optional dependencies
Some DAQJob types require optional hardware SDKs:
- CAEN digitizer & HV — requires
caen-libs(included inpyproject.toml) - Xiaomi Mijia BLE sensor — requires
lywsd03mmc-client(installed via git) - N1081B SDK — requires
n1081b-sdk(installed via git, useuv sync --group sensors)
These are included when you install with uv sync (some sensor SDKs require uv sync --group sensors).
If a hardware library is unavailable, the corresponding DAQJob logs a warning and
disables itself at runtime.
Development setup
If you plan to contribute to ENRGDAQ:
# Install development dependencies (linter, pre-commit hooks)
uv sync --group dev
# Set up pre-commit hooks (lint checks before every commit)
uv run pre-commit install
# Run the test suite (pytest must be installed in your environment)
uv run pytest src/tests/ -v
Next steps
- Quickstart — run your first DAQJob in 5 minutes
- Configuration — understand the TOML config system