Skip to main content

An embeddable, MongoDB compatible, document database, built on WiredTiger

Project description

SecantusDB — the SQLite of document databases

Status: beta Tests: 584 passing License: GPL-2.0-only (code) + CC-BY-4.0 (content) Python: 3.10+ Documentation

[!WARNING] Beta software.

SecantusDB is past initial proving but the Python API surface (CLI flags, public class signatures) may still shift before 1.0. The on-disk format is WiredTiger's — the same engine MongoDB uses — and the schema we layer on top (collection / index / oplog tables) has been stable across releases; the test suite runs against real on-disk WiredTiger storage and the persistence tests explicitly verify close-and-reopen round-trips. That said, we don't yet ship a migration tool or a formal compatibility guarantee, so please don't put production data here yet — production deployments that need durable data across upgrades should still run a real mongod.

Drop-in MongoDB for single-node applications. SecantusDB is a real MongoDB server written in Python: it speaks the MongoDB wire protocol on the same TCP socket a mongod would, so any standard MongoDB driver or tool — pymongo, mongo-go-driver, mongosh, mongodump / mongorestore — connects unchanged. Point a MongoClient at it and your application code doesn't know the difference, as long as the application only needs single-node behaviour. No mongod to install, no port conflicts, parallel-test friendly, embedded or as a standalone daemon (secantusd-py).

Single-node only by design: replica sets, sharding, and anything that depends on real cluster topology are out of scope. Within that single-node scope, SecantusDB is the database your driver thinks it's talking to — same handshake, same wire frames, same error codes.

from pymongo import MongoClient
from secantus import SecantusDBServer

# On-disk by default at ./secantus-data; pass storage_path=":memory:" for ephemeral.
with SecantusDBServer(port=27017) as server:
    client = MongoClient(server.uri)
    db = client["mydb"]
    db["users"].insert_one({"_id": 1, "name": "Joe"})
    assert db["users"].find_one({"_id": 1})["name"] == "Joe"

Storage engine

SecantusDB uses the same WiredTiger C library mongod ships — vendored at vendor/wiredtiger/ (mongodb-7.0.33), built from source into the wheel, called via WT's official Python SWIG bindings. There is no Python re-implementation of the storage engine: B-trees, page eviction, write-ahead logging, durability, on-disk format are all pure WiredTiger. Your data lives on the same battle-tested engine mongod uses.

That doesn't make SecantusDB as fast as mongod — the layers above storage (command dispatch, query planner, aggregation pipeline) are Python, and a like-for-like benchmark currently has SecantusDB ~1.4×–24× slower per operation than mongod. CRUD reads sit near the lower end of that; bulk update / delete and aggregation sit at the upper end where Python loop overhead dominates. See docs/benchmark.md for current numbers and methodology. The right use is tests, dev, embedded apps, and single-node prototypes where conformance + WT durability matter more than per-op latency.

What's in scope

Everything a single-node application needs from the wire — the handshake (hello / isMaster / ping / buildInfo / ...), CRUD (insert / find / update / delete / findAndModify / count / drop), cursors with getMore / killCursors, aggregation pipelines and the expression language they need, and change streams (single-node, oplog-backed; collection / db / cluster scope; resume tokens; fullDocument: "updateLookup"; pre-images via fullDocumentBeforeChange; blocking awaitData getMore). All backed by a real query planner with index acceleration — single-field, compound, mixed-direction, partial, TTL, sort — proper explain output (IXSCAN vs COLLSCAN), and a hash-join $lookup.

Authentication: SCRAM-SHA-256 — MongoDB's default since 4.0 — is implemented end-to-end on the wire, alongside native TLS / mTLS and the MONGODB-X509 cert-as-username mechanism. Off by default; flip SCRAM on with secantusd-py --auth (or SecantusDBServer(..., require_auth=True)), provision users with createUser, then connect with the standard MongoClient(uri, username=, password=) shape. See Authentication. Authorization (RBAC) is not enforced — an authenticated principal is currently treated as fully privileged — and LDAP / Kerberos / GSSAPI / AWS / OIDC auth mechanisms are out of scope.

What's out of scope: real replica sets, sharding, RBAC, auth mechanisms beyond SCRAM-SHA-256 / MONGODB-X509 (no LDAP / Kerberos / GSSAPI / AWS / OIDC), OP_COMPRESSED, text / hashed / wildcard indexes, and $where / $function / $accumulator / mapReduce (no embedded JS runtime). If you need those, run a real mongod. Native TLS + mTLS, multi-document transactions (with WiredTiger-native rollback), and geo support ($geoWithin / $geoIntersects / $near / $nearSphere, $geoNear, 2dsphere and 2d indexes) are all in scope and shipped.

SQL / PostgreSQL interface (opt-in)

SecantusDB can also speak SQL over the PostgreSQL wire protocol. Install the extra (pip install "secantus[sql]"), start a SecantusPGServer — optionally sharing the same storage as the MongoDB server — and connect with psql, pg8000, or SQLAlchemy over a postgresql:// URL:

from secantus.sql import SecantusPGServer

with SecantusPGServer(port=5432) as server:
    ...  # SELECT / INSERT / UPDATE / DELETE, JOIN, GROUP BY, transactions, ...

Or run it as a standalone daemon — pip install "secantus[sql]" puts a secantusd-py-pg script on your PATH:

secantusd-py-pg --host 127.0.0.1 --port 5432 --storage-path ./secantus-data

SQL is compiled down to the same query / aggregation engines the MongoDB side uses, so it inherits index acceleration and the type system. A collection written with pymongo is queryable as a SQL table with no CREATE TABLE (schema-on-read), nested documents surface as jsonb (->, ->>, #>), and BEGIN / COMMIT / ROLLBACK are real transactions. Auth (SCRAM-SHA-256) and TLS work the same as on the Mongo side. See SQL / PostgreSQL interface for the supported-SQL matrix and examples.

Installation

pip install SecantusDB

Pre-built wheels are published for CPython 3.10, 3.11, 3.12, and 3.13 on:

  • macOS arm64 (Apple Silicon)
  • Linux x86_64 and aarch64 (manylinux2014 / glibc, and musllinux_1_2 / Alpine)
  • Windows AMD64

macOS Intel (x86_64) is not in the wheel matrix; use a from-source install if you need it.

WiredTiger is vendored inside the wheel — no separate package, no compile step, no system build tools required.

Building from source (unsupported platforms only)

If your platform isn't in the matrix above, pip install SecantusDB falls back to the sdist and compiles WiredTiger from source. That needs three native build tools on PATH:

  • cmake (>= 3.21)
  • ninja
  • swig (>= 4.0)
Platform Install prerequisites
macOS (Homebrew) brew install cmake ninja swig
Debian/Ubuntu sudo apt-get install -y cmake ninja-build swig
Fedora/RHEL sudo dnf install -y cmake ninja-build swig
Alpine apk add --no-cache cmake ninja swig build-base

See Installation for dev-install instructions.

The Rust server (separate)

SecantusDB ships two separate servers on independent version lines: the pure-Python server (this package's SecantusDBServer) and a self-contained Rust server that speaks the same wire protocol off the GIL. You run one or the other — there is no in-process engine switching. The Python server is always pure-Python; the Rust engines live only in the Rust server.

The old in-process accelerator (SECANTUS_ENGINE=rust / SecantusDBServer(engine=...)) has been retired in favour of this two-server split.

The Rust side is a Cargo workspace under crates/: a pure-Rust engine crate (secantus-core, no PyO3) reused by the Rust server and the standalone secantusd-rs binary, plus a thin PyO3 bindings crate (secantus-core-py) that builds the secantus-core wheel — the vehicle that pins each Rust engine byte-for-byte against its pure-Python counterpart.

pip install "secantus[rust]"      # pulls the matching secantus-core wheel

The Python server is the conformance leader and the default choice: it passes 99.2% of pymongo's own test suite. The Rust server runs the same unmodified suite and currently passes 92.0% — it's faster per operation (see docs/benchmark.md) but is still closing the gap. The features the Rust server doesn't support yet — showExpandedEvents DDL change events, large change-event splitting, read / write-concern semantics, timeseries _id non-uniqueness — and a side-by-side of when to pick each server are spelled out in The two servers.

Standalone daemon (drop-in mongod replacement)

pip install puts a secantusd-py script on your PATH. Run it like you'd run mongod:

secantusd-py --host 127.0.0.1 --port 27017
# storage at ./secantus-data by default; pass --storage-path :memory:
# for an ephemeral temp dir cleaned up on shutdown.

The same pip install secantus also puts the standalone Rust server on your PATH as secantusd-rs (same flags, same wire protocol; see The two servers) — on Linux, macOS (Apple Silicon), and Windows. Intel-Mac wheels are pure-Python.

Then point any MongoDB driver or tool at it — no application code changes, just the URI:

mongosh mongodb://127.0.0.1:27017
mongodump --uri mongodb://127.0.0.1:27017 --out ./dump
from pymongo import MongoClient
client = MongoClient("mongodb://127.0.0.1:27017")  # same code as for mongod

The conformance gauges back this up: the official driver test suites run unmodified against SecantusDB — see the conformance validation summary.

Examples

A walk through the operations a typical application exercises — connect, insert, index, query, drop. Full version with explanations: examples in the docs.

from pymongo import MongoClient
from secantus import SecantusDBServer

# Ephemeral here so the snippet is self-contained; the production default
# is on-disk at ./secantus-data — drop storage_path or set a real path.
with SecantusDBServer(port=0, storage_path=":memory:") as server:
    client = MongoClient(server.uri)
    cellar = client["wine_cellar"]
    bottles = cellar["bottles"]

    # --- Insert ---
    bottles.insert_one(
        {"_id": 1, "name": "Pommard 2018", "region": "Burgundy", "year": 2018}
    )
    bottles.insert_many(
        [
            {"_id": 2, "name": "Brunello 2015", "region": "Tuscany", "year": 2015},
            {"_id": 3, "name": "Barolo 2017", "region": "Piedmont", "year": 2017},
            {"_id": 4, "name": "Pommard 2020", "region": "Burgundy", "year": 2020},
        ]
    )

    # --- Indexes ---
    bottles.create_index([("year", 1)])                     # single-field
    bottles.create_index([("region", 1), ("year", -1)])     # compound

    # --- Query ---
    drinkable_now = list(
        bottles.find({"year": {"$lte": 2018}}).sort("year")
    )
    assert [b["name"] for b in drinkable_now] == [
        "Brunello 2015",
        "Barolo 2017",
        "Pommard 2018",
    ]

    by_region = list(
        bottles.aggregate(
            [
                {"$group": {"_id": "$region", "count": {"$sum": 1}}},
                {"$sort": {"_id": 1}},
            ]
        )
    )

    # --- Drop ---
    bottles.drop()                              # one collection
    client.drop_database("wine_cellar")         # whole database

Admin web UI

An optional local console — browse collections, watch live metrics, tail change streams, inspect query plans, manage users, and take backups (including point-in-time recovery) against any SecantusDB or MongoDB-wire server you already have running.

pip install 'secantusdb[admin]'
secantus-admin --uri mongodb://127.0.0.1:27017
The SecantusDB admin dashboard: live server metrics, operation counters and per-second charts.

It's dev-tool shaped, not a production console: loopback-only, gated by a local token, with every script and stylesheet served from the package. See the admin UI docs for a tour of all 22 pages.

Documentation

Full docs are at secantusdb.com/docs — with the Rust server's own tree at secantusdb.com/docs/rust. Highlights:

  • Quickstart — embedding in tests, running standalone.
  • The two servers — Python vs Rust server, which to use, and what each doesn't support yet.
  • Architecture — the layered design.
  • Indexes — what find() and aggregate accelerate, explain semantics, hints, partial indexes, TTL.
  • Aggregation — supported pipeline stages and expression operators.
  • Compatibility — the divergences you should know about before you point an application at SecantusDB.
  • Conformance validation — every supported driver's own test suite (pymongo, Go, Node, Java, Ruby, Rust, and the PHP library + extension) run unmodified against SecantusDB, with a cross-driver summary table and a per-driver report for each. The other-language gauges catch wire-protocol bugs that pymongo's permissive client accepts silently (e.g. int32-vs-int64 cursor ids).

Development

git clone https://github.com/jdrumgoole/SecantusDB.git
cd SecantusDB
uv sync --extra dev
uv run python -m pytest    # 584 tests, runs in parallel under pytest-xdist

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)

License

SecantusDB is dual-licensed:

  • Code — GPL-2.0-only. See LICENSE. SecantusDB bundles the WiredTiger storage engine (itself GPL-2/GPL-3), so the combined work is GPL.
  • Written contentCreative Commons Attribution 4.0 International (CC-BY 4.0). See LICENSE-DOCS. Covers README.md, everything under docs/, the validation reports, and pymongo_validation/README.md. Operational instructions to AI assistants (CLAUDE.md) and vendored third-party content (under vendor/) are out of scope.

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

secantusdb-0.6.0b8.tar.gz (11.9 MB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

secantusdb-0.6.0b8-cp313-cp313-win_amd64.whl (14.7 MB view details)

Uploaded CPython 3.13Windows x86-64

secantusdb-0.6.0b8-cp313-cp313-musllinux_1_2_x86_64.whl (17.4 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

secantusdb-0.6.0b8-cp313-cp313-musllinux_1_2_aarch64.whl (16.4 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ ARM64

secantusdb-0.6.0b8-cp313-cp313-manylinux_2_28_x86_64.whl (17.2 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ x86-64

secantusdb-0.6.0b8-cp313-cp313-manylinux_2_28_aarch64.whl (16.2 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ ARM64

secantusdb-0.6.0b8-cp313-cp313-macosx_11_0_arm64.whl (15.1 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

secantusdb-0.6.0b8-cp312-cp312-win_amd64.whl (14.7 MB view details)

Uploaded CPython 3.12Windows x86-64

secantusdb-0.6.0b8-cp312-cp312-musllinux_1_2_x86_64.whl (17.4 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

secantusdb-0.6.0b8-cp312-cp312-musllinux_1_2_aarch64.whl (16.4 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ ARM64

secantusdb-0.6.0b8-cp312-cp312-manylinux_2_28_x86_64.whl (17.2 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ x86-64

secantusdb-0.6.0b8-cp312-cp312-manylinux_2_28_aarch64.whl (16.2 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ ARM64

secantusdb-0.6.0b8-cp312-cp312-macosx_11_0_arm64.whl (15.1 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

secantusdb-0.6.0b8-cp311-cp311-win_amd64.whl (14.7 MB view details)

Uploaded CPython 3.11Windows x86-64

secantusdb-0.6.0b8-cp311-cp311-musllinux_1_2_x86_64.whl (17.4 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

secantusdb-0.6.0b8-cp311-cp311-musllinux_1_2_aarch64.whl (16.4 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ ARM64

secantusdb-0.6.0b8-cp311-cp311-manylinux_2_28_x86_64.whl (17.2 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ x86-64

secantusdb-0.6.0b8-cp311-cp311-manylinux_2_28_aarch64.whl (16.2 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ ARM64

secantusdb-0.6.0b8-cp311-cp311-macosx_11_0_arm64.whl (15.1 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

secantusdb-0.6.0b8-cp310-cp310-win_amd64.whl (14.7 MB view details)

Uploaded CPython 3.10Windows x86-64

secantusdb-0.6.0b8-cp310-cp310-musllinux_1_2_x86_64.whl (17.4 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

secantusdb-0.6.0b8-cp310-cp310-musllinux_1_2_aarch64.whl (16.4 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ ARM64

secantusdb-0.6.0b8-cp310-cp310-manylinux_2_28_x86_64.whl (17.2 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ x86-64

secantusdb-0.6.0b8-cp310-cp310-manylinux_2_28_aarch64.whl (16.2 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ ARM64

secantusdb-0.6.0b8-cp310-cp310-macosx_11_0_arm64.whl (15.1 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

Details for the file secantusdb-0.6.0b8.tar.gz.

File metadata

  • Download URL: secantusdb-0.6.0b8.tar.gz
  • Upload date:
  • Size: 11.9 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for secantusdb-0.6.0b8.tar.gz
Algorithm Hash digest
SHA256 288de7deb3c790c232c23c3ba881c4f31ea2dd85fba39011576d90da1a2f9f1a
MD5 d700c074f514aa91b32cef3ade663e14
BLAKE2b-256 993eccba8b440b2699a20c6a9954846a6044cdfc9b0e516b90cfb4a067f0df8a

See more details on using hashes here.

Provenance

The following attestation bundles were made for secantusdb-0.6.0b8.tar.gz:

Publisher: publish.yml on jdrumgoole/SecantusDB

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file secantusdb-0.6.0b8-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for secantusdb-0.6.0b8-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 49300557b4c8d88f938c2ce26baf739497996af49dd5abea799c08de93397cd4
MD5 1f0dbb415559f6cb39971bce5784bb03
BLAKE2b-256 6f2081b136f4e1b9cde475b6ace12d415152adc32e23aff30e73a9f2ebb458bc

See more details on using hashes here.

Provenance

The following attestation bundles were made for secantusdb-0.6.0b8-cp313-cp313-win_amd64.whl:

Publisher: publish.yml on jdrumgoole/SecantusDB

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file secantusdb-0.6.0b8-cp313-cp313-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for secantusdb-0.6.0b8-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 d49a736b2338cad1007a24e1ee609639bc5cf9e62432cd73346d4595b146acab
MD5 663b567d2952b66d00db943333734ac0
BLAKE2b-256 9d1283d66c8d79eb363035a2b33f0ff09478844fb61445d4b3976e06efd86ffa

See more details on using hashes here.

Provenance

The following attestation bundles were made for secantusdb-0.6.0b8-cp313-cp313-musllinux_1_2_x86_64.whl:

Publisher: publish.yml on jdrumgoole/SecantusDB

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file secantusdb-0.6.0b8-cp313-cp313-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for secantusdb-0.6.0b8-cp313-cp313-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 b38939efde63e6e5e583a37418b5da58165861a460d293c25679ac7334267abb
MD5 21cf8c46260e5a90990030f3b060a0f6
BLAKE2b-256 76f2ee59f6df7f71f29ef7c93fc0b4a186cd226d44155faf61c3acff8d2b467b

See more details on using hashes here.

Provenance

The following attestation bundles were made for secantusdb-0.6.0b8-cp313-cp313-musllinux_1_2_aarch64.whl:

Publisher: publish.yml on jdrumgoole/SecantusDB

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file secantusdb-0.6.0b8-cp313-cp313-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for secantusdb-0.6.0b8-cp313-cp313-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 95983ae71632041a83ddfbb4cbfb944122ea2cd9b3fcd53ad9bd7ce124842378
MD5 4de6b45bc9ecb53e2f6aba3748b2b3ee
BLAKE2b-256 e67e5603b1838e3c4a3047f164089b6f2d57fc640a4b17d5edcb2b9d9e623e39

See more details on using hashes here.

Provenance

The following attestation bundles were made for secantusdb-0.6.0b8-cp313-cp313-manylinux_2_28_x86_64.whl:

Publisher: publish.yml on jdrumgoole/SecantusDB

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file secantusdb-0.6.0b8-cp313-cp313-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for secantusdb-0.6.0b8-cp313-cp313-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 4c10a8435f8532fd193549965880659722ea60c8aaf55e2ac3ed78a40a641c5c
MD5 edd2699db3bbb9d97798344ec65624f9
BLAKE2b-256 55f586da702474380a1f4207e183be0c9277294aa60b9fd656f126cd30fd7a20

See more details on using hashes here.

Provenance

The following attestation bundles were made for secantusdb-0.6.0b8-cp313-cp313-manylinux_2_28_aarch64.whl:

Publisher: publish.yml on jdrumgoole/SecantusDB

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file secantusdb-0.6.0b8-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for secantusdb-0.6.0b8-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1f1079d15631e1bc0d824d4723cd38b98916b980e081195ebfda68f7ebffbd29
MD5 7c40f8fad06bc59b07b299db403e2596
BLAKE2b-256 27ccbc9a3c86431ef2ffd77dee5ed1660ba27d01c717fb12307c7735f245e8a8

See more details on using hashes here.

Provenance

The following attestation bundles were made for secantusdb-0.6.0b8-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: publish.yml on jdrumgoole/SecantusDB

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file secantusdb-0.6.0b8-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for secantusdb-0.6.0b8-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 30c5408da2c093a11fc821c796a961037b31e31618e2295c004836f74fb01a83
MD5 160c6f3c0f45cd6e5413db37df69a41b
BLAKE2b-256 6dc2bfc2526af570b5626e5f02568f3d1333e9b3a634bbd28b82126377757bbb

See more details on using hashes here.

Provenance

The following attestation bundles were made for secantusdb-0.6.0b8-cp312-cp312-win_amd64.whl:

Publisher: publish.yml on jdrumgoole/SecantusDB

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file secantusdb-0.6.0b8-cp312-cp312-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for secantusdb-0.6.0b8-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 220b5eb7043e89cdd15675704f77a0fa77a2669fa95f4b88833a791bde38991d
MD5 99b38c405b3490c6aa716b46ce609520
BLAKE2b-256 42dc126de6614caf2b0bde774ffb3ea52ac4b3830e9eb9a5b3c3fcd0a67d2e52

See more details on using hashes here.

Provenance

The following attestation bundles were made for secantusdb-0.6.0b8-cp312-cp312-musllinux_1_2_x86_64.whl:

Publisher: publish.yml on jdrumgoole/SecantusDB

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file secantusdb-0.6.0b8-cp312-cp312-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for secantusdb-0.6.0b8-cp312-cp312-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 2e51903553724ca70844562b275a558ddd012852c32ad232ed4d36f71df94687
MD5 6d90ac44552d3883dea398ecb25efc9e
BLAKE2b-256 69183c5ac26afccddb9e48d0ee6407baa9d589942ef3ad706e944a7cdec63c96

See more details on using hashes here.

Provenance

The following attestation bundles were made for secantusdb-0.6.0b8-cp312-cp312-musllinux_1_2_aarch64.whl:

Publisher: publish.yml on jdrumgoole/SecantusDB

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file secantusdb-0.6.0b8-cp312-cp312-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for secantusdb-0.6.0b8-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 2dfff2b79382e1b284dcdf8593bbfd9639de65d450f9b92717d5c97c4edafabb
MD5 5349805b31e68eef68316dde153281ca
BLAKE2b-256 dd43934f23eed66845630a382b478bf69ed1d4ead0005a486986bd221d1fe7aa

See more details on using hashes here.

Provenance

The following attestation bundles were made for secantusdb-0.6.0b8-cp312-cp312-manylinux_2_28_x86_64.whl:

Publisher: publish.yml on jdrumgoole/SecantusDB

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file secantusdb-0.6.0b8-cp312-cp312-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for secantusdb-0.6.0b8-cp312-cp312-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 a2cc9f9f54505f08e519c8775f71d520f0e161e5ecdb5b53afd77ec053e53a37
MD5 96a34c5c6274e9ff80d3f1c0d457438a
BLAKE2b-256 87a8be4bdbc2677eedd7074002393508f631a08d56b6f14de2263d90421930dd

See more details on using hashes here.

Provenance

The following attestation bundles were made for secantusdb-0.6.0b8-cp312-cp312-manylinux_2_28_aarch64.whl:

Publisher: publish.yml on jdrumgoole/SecantusDB

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file secantusdb-0.6.0b8-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for secantusdb-0.6.0b8-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5cc51837ea9f39c2e153f865bfb249b68eb8135c674430610e8f1915a4692824
MD5 c256f97cc11ff926e72cf74bd111a8ec
BLAKE2b-256 7e36ed6b04199558d3a274c8e40904c07ee0a9b2423a01bd9c99fe45ebcf11f7

See more details on using hashes here.

Provenance

The following attestation bundles were made for secantusdb-0.6.0b8-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: publish.yml on jdrumgoole/SecantusDB

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file secantusdb-0.6.0b8-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for secantusdb-0.6.0b8-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 31a88e0e955e908c186af751e8fabb31368a76b0a36cc9a28039e5f9bf1af8a8
MD5 bea721ae26ba4164dc89041324d1943f
BLAKE2b-256 d54cd9c7087780ca6e0b8ad6dfada1cee4cab6cc1b3a7cb871921954c9a2a808

See more details on using hashes here.

Provenance

The following attestation bundles were made for secantusdb-0.6.0b8-cp311-cp311-win_amd64.whl:

Publisher: publish.yml on jdrumgoole/SecantusDB

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file secantusdb-0.6.0b8-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for secantusdb-0.6.0b8-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 ed9b728f1d59f3430158f53e43abd25fdb4b7186f8f4b81322c7777b98b06e8f
MD5 728f88304c1ae985525ec84e262f5ab3
BLAKE2b-256 52b6da4da7bfd8c0fa8d9244bd3903d284042d67da36f99a6c04b417216b8aa0

See more details on using hashes here.

Provenance

The following attestation bundles were made for secantusdb-0.6.0b8-cp311-cp311-musllinux_1_2_x86_64.whl:

Publisher: publish.yml on jdrumgoole/SecantusDB

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file secantusdb-0.6.0b8-cp311-cp311-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for secantusdb-0.6.0b8-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 34d3d8b7c9724bd69b0f83d424ebdfc7351f448f3fc648b41f744dc12df52a2f
MD5 2012bc2c53baf06a7fe47f192a214747
BLAKE2b-256 019b7f4315cbd507a64bafa1158f2f5d7a281403c76d71a36647463f928d710f

See more details on using hashes here.

Provenance

The following attestation bundles were made for secantusdb-0.6.0b8-cp311-cp311-musllinux_1_2_aarch64.whl:

Publisher: publish.yml on jdrumgoole/SecantusDB

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file secantusdb-0.6.0b8-cp311-cp311-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for secantusdb-0.6.0b8-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 899f801c25e52f762d07fca2b8f579fa5db89ce017801826b5662736b3d7abe6
MD5 f47c3122d08d6065a6ca0e65d936910e
BLAKE2b-256 711b4beaf052abba72ee1e5814fab31235655b85f54e1c68d50d3f8eb227bc4a

See more details on using hashes here.

Provenance

The following attestation bundles were made for secantusdb-0.6.0b8-cp311-cp311-manylinux_2_28_x86_64.whl:

Publisher: publish.yml on jdrumgoole/SecantusDB

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file secantusdb-0.6.0b8-cp311-cp311-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for secantusdb-0.6.0b8-cp311-cp311-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 46b7f71709086c6ec9812b4326e050f27497c43b8c65647758fa6b6a7787b976
MD5 f0d85acfdbacf09da3c7c1dcc8b01ebb
BLAKE2b-256 6a4b0d8028fcb13eff048109a83a94e5195e85fe4a47997707b26fdc69d37d6a

See more details on using hashes here.

Provenance

The following attestation bundles were made for secantusdb-0.6.0b8-cp311-cp311-manylinux_2_28_aarch64.whl:

Publisher: publish.yml on jdrumgoole/SecantusDB

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file secantusdb-0.6.0b8-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for secantusdb-0.6.0b8-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7014dc2b3d6c5704b38b463dc9093f966636a58b12cd5203df73f645061070cb
MD5 38cfa70337b1621176b8007365e0721d
BLAKE2b-256 34f22fbbce9403c443a8f7349499fdf4194fa185fc034b90be7248401149e714

See more details on using hashes here.

Provenance

The following attestation bundles were made for secantusdb-0.6.0b8-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: publish.yml on jdrumgoole/SecantusDB

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file secantusdb-0.6.0b8-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for secantusdb-0.6.0b8-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 74eb725c070a426ae465adf504e4c2687195bdab5b578c324b0c2a030e025053
MD5 ddcf2ebc77cc62ba8e09017bac0ce014
BLAKE2b-256 3c012897008a5f2f79f63c75a232f4d435d1f3e8a65ad240eeaef91b2bd626b4

See more details on using hashes here.

Provenance

The following attestation bundles were made for secantusdb-0.6.0b8-cp310-cp310-win_amd64.whl:

Publisher: publish.yml on jdrumgoole/SecantusDB

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file secantusdb-0.6.0b8-cp310-cp310-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for secantusdb-0.6.0b8-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 0aa1702d56fdf564a49e456c6a0b396b83f23a87913aad87791b1ff89147116f
MD5 23158c0db4f90d8a030e59c90738ac66
BLAKE2b-256 42c503cf45116c2704a077d95370d4cf319cfddd6a034557691e44f5d0ea5bfa

See more details on using hashes here.

Provenance

The following attestation bundles were made for secantusdb-0.6.0b8-cp310-cp310-musllinux_1_2_x86_64.whl:

Publisher: publish.yml on jdrumgoole/SecantusDB

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file secantusdb-0.6.0b8-cp310-cp310-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for secantusdb-0.6.0b8-cp310-cp310-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 8b5b91cec101b2966e38b1953fdd911e5216e750ae226d7df4ad353a8010cb66
MD5 bc92859273f19967132c60b87fcdaa19
BLAKE2b-256 4d9b34b0f19a46ec80e4ad7399327b0800a8fd01faeb47b2f50f1163b7125a0b

See more details on using hashes here.

Provenance

The following attestation bundles were made for secantusdb-0.6.0b8-cp310-cp310-musllinux_1_2_aarch64.whl:

Publisher: publish.yml on jdrumgoole/SecantusDB

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file secantusdb-0.6.0b8-cp310-cp310-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for secantusdb-0.6.0b8-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 56fa0f11d9e28c8af074a6baaa3c7e9176964fc0b57681e44ff6105b104985d6
MD5 f1690e5eabc015965dcb4ecea89ffaff
BLAKE2b-256 7a009b5e7c726333a2d554ec8a713f885eebc77ffb08c8d061d5eda0cd0d8d73

See more details on using hashes here.

Provenance

The following attestation bundles were made for secantusdb-0.6.0b8-cp310-cp310-manylinux_2_28_x86_64.whl:

Publisher: publish.yml on jdrumgoole/SecantusDB

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file secantusdb-0.6.0b8-cp310-cp310-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for secantusdb-0.6.0b8-cp310-cp310-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 fa933923a68c0637dc473bba04dbdcad2e26e316c242383a4f89cfd37e175e47
MD5 22c447b2093239c3b5c96614922afc55
BLAKE2b-256 1bbe9ed38147713063ffcee686b9e33b548ef3d414f529c435e14c7d72cacb16

See more details on using hashes here.

Provenance

The following attestation bundles were made for secantusdb-0.6.0b8-cp310-cp310-manylinux_2_28_aarch64.whl:

Publisher: publish.yml on jdrumgoole/SecantusDB

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file secantusdb-0.6.0b8-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for secantusdb-0.6.0b8-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 18e7d11d954db270d067e7578061fb3bd9aa4e07f8b6e3e01238dcb9d546c405
MD5 d0fe5184170f25b9c4b7c211afedf051
BLAKE2b-256 ad9b8abf7336980c7feb9a6218e08312739e43bdc3f1a5273d7e8deaaf0c3b75

See more details on using hashes here.

Provenance

The following attestation bundles were made for secantusdb-0.6.0b8-cp310-cp310-macosx_11_0_arm64.whl:

Publisher: publish.yml on jdrumgoole/SecantusDB

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page