Installation¶
SecantusDB requires Python 3.12 or newer.
pip install SecantusDB
Pre-built wheels are published for CPython 3.12 and 3.13 on:
macOS arm64 (Apple Silicon)
Linux x86_64 and aarch64 (manylinux2014 / glibc, and musllinux_1_2 / Alpine)
Windows AMD64
WiredTiger is vendored inside the wheel — no separate package, no compile step, no system build tools required.
macOS Intel (x86_64) is not in the wheel matrix; macOS Intel users fall back to the from-source path below.
PyPI name vs import name¶
The PyPI distribution is SecantusDB. The Python import is secantus:
from secantus import SecantusDBServer # import name: secantus
This split is normal Python convention — pip install Pillow /
import PIL, pip install scikit-learn / import sklearn. PyPI is
case-insensitive on lookup so pip install secantusdb works too.
Building from source (unsupported platforms only)¶
If your platform isn’t in the wheel matrix, pip install SecantusDB
falls back to the sdist and compiles WiredTiger from source. That needs
three native build tools on PATH:
cmake(>= 3.21)ninjaswig(>= 4.0)
Platform |
Install prerequisites |
|---|---|
macOS (Homebrew) |
|
Debian / Ubuntu |
|
Fedora / RHEL |
|
Alpine |
|
Then pip install SecantusDB triggers the build.
Development install¶
For working on SecantusDB itself, clone the repo and use uv:
git clone https://github.com/jdrumgoole/SecantusDB.git
cd SecantusDB
git submodule update --init --recursive # vendor/wiredtiger
uv sync --extra dev # also builds vendored WT
uv run python -m pytest # full parallel suite
A development clone always builds WiredTiger from source (the same
build cibuildwheel runs in CI), so the prerequisites in the previous
section apply: cmake / ninja / swig / a C/C++ compiler must be
on PATH.
Common workflows:
uv run python -m invoke fmt # ruff format
uv run python -m invoke lint # ruff check
uv run python -m invoke test # pytest, parallel
uv run python -m invoke docs # build Sphinx docs (warnings as errors)
The test suite runs in parallel via pytest-xdist. Tests use port=0
and :memory: storage so they don’t share state across workers.