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.0b9.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.0b9-cp313-cp313-win_amd64.whl (14.7 MB view details)

Uploaded CPython 3.13Windows x86-64

secantusdb-0.6.0b9-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.0b9-cp313-cp313-musllinux_1_2_aarch64.whl (16.4 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ ARM64

secantusdb-0.6.0b9-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.0b9-cp313-cp313-manylinux_2_28_aarch64.whl (16.2 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ ARM64

secantusdb-0.6.0b9-cp313-cp313-macosx_11_0_arm64.whl (15.2 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

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

Uploaded CPython 3.12Windows x86-64

secantusdb-0.6.0b9-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.0b9-cp312-cp312-musllinux_1_2_aarch64.whl (16.4 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ ARM64

secantusdb-0.6.0b9-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.0b9-cp312-cp312-manylinux_2_28_aarch64.whl (16.2 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ ARM64

secantusdb-0.6.0b9-cp312-cp312-macosx_11_0_arm64.whl (15.2 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

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

Uploaded CPython 3.11Windows x86-64

secantusdb-0.6.0b9-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.0b9-cp311-cp311-musllinux_1_2_aarch64.whl (16.4 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ ARM64

secantusdb-0.6.0b9-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.0b9-cp311-cp311-manylinux_2_28_aarch64.whl (16.2 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ ARM64

secantusdb-0.6.0b9-cp311-cp311-macosx_11_0_arm64.whl (15.2 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

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

Uploaded CPython 3.10Windows x86-64

secantusdb-0.6.0b9-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.0b9-cp310-cp310-musllinux_1_2_aarch64.whl (16.4 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ ARM64

secantusdb-0.6.0b9-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.0b9-cp310-cp310-manylinux_2_28_aarch64.whl (16.2 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ ARM64

secantusdb-0.6.0b9-cp310-cp310-macosx_11_0_arm64.whl (15.2 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

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

File metadata

  • Download URL: secantusdb-0.6.0b9.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.0b9.tar.gz
Algorithm Hash digest
SHA256 ec76b776ffce0d52fe1715a6808d4ee5f4e1f4eff7b3a9adc7bba8f56c7939ed
MD5 16995985860750d472b8839fefa64620
BLAKE2b-256 81934663cb3ed82e4783a4f140861415fa4bf4cfc9378a1fe0c9924f15e4841a

See more details on using hashes here.

Provenance

The following attestation bundles were made for secantusdb-0.6.0b9.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.0b9-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for secantusdb-0.6.0b9-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 aca0f86b93c52742985afdf1178ef43c4fdddea8ad22e385c457212ede1e2310
MD5 e93293a47f33bbb180920288d2c7039e
BLAKE2b-256 210c76f61edaeceffddee40cf6528d8b712054e6c19793c33ae44608a7a10d12

See more details on using hashes here.

Provenance

The following attestation bundles were made for secantusdb-0.6.0b9-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.0b9-cp313-cp313-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for secantusdb-0.6.0b9-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 466262dae8931bde3ce9526cb07106c041224bde15e754869809d020c1f8c50d
MD5 5b3ee9945a49035cc963c4221cfbd0d6
BLAKE2b-256 9b3cd16c2a051b48d618c3b72008ceb9bf3b3f63747f580f6c3dac946e47a294

See more details on using hashes here.

Provenance

The following attestation bundles were made for secantusdb-0.6.0b9-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.0b9-cp313-cp313-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for secantusdb-0.6.0b9-cp313-cp313-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 96a46dfd77f07acdaee20b65511cbbc348707c1ecb50048f18cc5b57fe54402c
MD5 0637167af95f2f339c20d29a0c437bfe
BLAKE2b-256 a783924026b2659995a3d632a98e9c6f3f02f2561654b9064a95d14007afe5cb

See more details on using hashes here.

Provenance

The following attestation bundles were made for secantusdb-0.6.0b9-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.0b9-cp313-cp313-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for secantusdb-0.6.0b9-cp313-cp313-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 480e6723800582aac4f4109e5118fc82a510e553ad11975b8715c519f7854440
MD5 c1f3a907c4dd13ffdf61cf8d8b8c3c2e
BLAKE2b-256 a7255b3fc7acb3cf27096f5d4980f687e7d3c0412918a6e36b5878cf621db686

See more details on using hashes here.

Provenance

The following attestation bundles were made for secantusdb-0.6.0b9-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.0b9-cp313-cp313-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for secantusdb-0.6.0b9-cp313-cp313-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 c69c3e60d72da178010782cc1d1b54c62e0bb11aec40da6ad3c00fb240683d94
MD5 7bc6660e2acbe35190fdfb0a9fe4174c
BLAKE2b-256 0aa075482f86bd2b8549c9e0ff0514d43857c02f2f125d40ad8cf1af6b17a9e2

See more details on using hashes here.

Provenance

The following attestation bundles were made for secantusdb-0.6.0b9-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.0b9-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for secantusdb-0.6.0b9-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 703f04e3cba68f3b3c2679d12e9ff880062acf6627a926bc0f50e4b2d183a9fd
MD5 b188b047a68a763cdc5c94b4d5021b2e
BLAKE2b-256 8592278e7629f62cd64c7c1a2ca24146a74257212acdae104b22c2efd0a7ae82

See more details on using hashes here.

Provenance

The following attestation bundles were made for secantusdb-0.6.0b9-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.0b9-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for secantusdb-0.6.0b9-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 d02fbaa67e3155ebd4788c2dd30786e9b762ead9de37f92533978bcc965bfd8d
MD5 443f973935f3f94c969326be36a62971
BLAKE2b-256 a1ca222d906cc83818ba8bae3f0cb953bb1b8a7311969824695a432fa20f3315

See more details on using hashes here.

Provenance

The following attestation bundles were made for secantusdb-0.6.0b9-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.0b9-cp312-cp312-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for secantusdb-0.6.0b9-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 c27d0774d80f0f3d313f8c29356f015b0d20c729a58789c15bd192ac7f9cadbf
MD5 76e0ab0ad2e853872da2deef9ded6105
BLAKE2b-256 d02e1287042dc21258ff827fba8b799cbe4ba0b48edad24da5e00bd27fc08c7a

See more details on using hashes here.

Provenance

The following attestation bundles were made for secantusdb-0.6.0b9-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.0b9-cp312-cp312-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for secantusdb-0.6.0b9-cp312-cp312-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 802021828dd37ca4a4a471639be779f3d4b94ff2c9cfb9eeb3b809577f95b131
MD5 39215a6bb6128400ddad0657b3270637
BLAKE2b-256 3209d9b755452dd624714b40b161093a3d98109f7e07aeba939442e2f575fcec

See more details on using hashes here.

Provenance

The following attestation bundles were made for secantusdb-0.6.0b9-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.0b9-cp312-cp312-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for secantusdb-0.6.0b9-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 d0b2ca6cd62fd65c9c4a524ead06e2e350f155bfdfb22a2f539b6cacf85fd509
MD5 b4885f8472b7f4672e0a12f1a9995b1c
BLAKE2b-256 13eeca0a70628bd40a30c7e7166d85e7932c0224ccaf978f18468eacc828fdae

See more details on using hashes here.

Provenance

The following attestation bundles were made for secantusdb-0.6.0b9-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.0b9-cp312-cp312-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for secantusdb-0.6.0b9-cp312-cp312-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 8045afa53d2dddcd0a91e5b1d59e25f066250ac9e8bc74cd18f494e40f5e8c5d
MD5 4f757dfd499d0271ab16aaceda20b384
BLAKE2b-256 3b69b086c9f61af87929ca85b3c1a66929f926b449d2c029a899aac7d8543b4e

See more details on using hashes here.

Provenance

The following attestation bundles were made for secantusdb-0.6.0b9-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.0b9-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for secantusdb-0.6.0b9-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 29eb114973d92ed0facb8c7a061d272687245343c059b96cd9b671aa2c0063c1
MD5 324b8e64c05f65e1487a20c5cf8fbe02
BLAKE2b-256 8a8efb3c1515ed6dc335a0a5927393cb3646789063872432bbd064d87089d115

See more details on using hashes here.

Provenance

The following attestation bundles were made for secantusdb-0.6.0b9-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.0b9-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for secantusdb-0.6.0b9-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 c8327ef1d3c7c081de483f6b7568b6dfce80d8f9df4b079a5de22fd21efb6ae2
MD5 99be2cfd4ca8663cfea43352305b64f1
BLAKE2b-256 1a7ca25829c9954454b37777734c64a7c144d325171d81121a3dd1bb1414fa9a

See more details on using hashes here.

Provenance

The following attestation bundles were made for secantusdb-0.6.0b9-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.0b9-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for secantusdb-0.6.0b9-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 8fec9926845f54b0372d272f8a609b12cab74e82ae2df812ee76e58331aaa303
MD5 910fcd2dc97393314a0c0d7af8cecf7a
BLAKE2b-256 94ace0258f27179b765bbfcc4f5462f32d82a9e2d0f9190bdc6cda5132b98ccc

See more details on using hashes here.

Provenance

The following attestation bundles were made for secantusdb-0.6.0b9-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.0b9-cp311-cp311-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for secantusdb-0.6.0b9-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 378cec71e6be21ab7477da2f3999d01682203d10fcc943a4d1cf5c903ea9dcb5
MD5 7c6b6767ac526d79d65bf01bee812c1b
BLAKE2b-256 93a0d7ba2a2ff760e6fdb00f59243c5544b902cc364f010c8d4f35a84087fc86

See more details on using hashes here.

Provenance

The following attestation bundles were made for secantusdb-0.6.0b9-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.0b9-cp311-cp311-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for secantusdb-0.6.0b9-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 c0fa474741efcf9fad1d84762fe62bb6b59f787b86b4efdae9d3931865b0744e
MD5 fc0d2c203ba790a4a82f77517511d93b
BLAKE2b-256 75a9e48ddf45b861a7135e043f1c37a64093e829ee758b7228db4fb2d73959d3

See more details on using hashes here.

Provenance

The following attestation bundles were made for secantusdb-0.6.0b9-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.0b9-cp311-cp311-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for secantusdb-0.6.0b9-cp311-cp311-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 73a5442c855621ca33b826e1088bf7c39d2837b1b659fd01be689b0021e7750c
MD5 0b5e80ec7d6afd63133631dd3dd86079
BLAKE2b-256 d535d3eb374dc052708835a3d8ffaca4704972888b96f7f2eb48f3cd029379e7

See more details on using hashes here.

Provenance

The following attestation bundles were made for secantusdb-0.6.0b9-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.0b9-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for secantusdb-0.6.0b9-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 58a224a6e2b65daf399bc2ec579479fdc6c348853da421274a34bed76a1da046
MD5 031ef88ea9bf78f1e006868811279af9
BLAKE2b-256 55e848e1a8eebb41f9ccc862c1d887985e5e9c5717f8ed6acc4d9f5f928ecc49

See more details on using hashes here.

Provenance

The following attestation bundles were made for secantusdb-0.6.0b9-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.0b9-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for secantusdb-0.6.0b9-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 f629288d6a1ebe1c75e07530bd6d4f28daf900a2f58e943f40a4357f0f528b9f
MD5 426dc6f74662e2755d3b3ba718735895
BLAKE2b-256 47d14975ca4859afed86db6b2dd4499475f3e015b00ffe2eb2c905b5d4e8606e

See more details on using hashes here.

Provenance

The following attestation bundles were made for secantusdb-0.6.0b9-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.0b9-cp310-cp310-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for secantusdb-0.6.0b9-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 3aaadb0372e4028a3e8cd0a89b1ec72207ffd20ba35ce8d4a2c1232fd0d196f7
MD5 34065b68177adae8d222b3273cb5329b
BLAKE2b-256 6d5f986b05e0f299f93adee4facdb7f88cd904a07ea6b9ff607cef5e73d3af2e

See more details on using hashes here.

Provenance

The following attestation bundles were made for secantusdb-0.6.0b9-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.0b9-cp310-cp310-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for secantusdb-0.6.0b9-cp310-cp310-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 ce42aa1e3d1ff88b900fab8c6a70a3bd81145cf375c1ef92102d5a12700a9cee
MD5 2bdb750ee86dc82c708de5cef51bd2c5
BLAKE2b-256 371dc48abdff8cc09cf0e6fa93a6ea9d92e609c6e51b24cdd6fc98d324166cc0

See more details on using hashes here.

Provenance

The following attestation bundles were made for secantusdb-0.6.0b9-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.0b9-cp310-cp310-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for secantusdb-0.6.0b9-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 6fc0e0d7b28a506f69d8d7bdc2cc257789fda26af371409acdbf739e0a103b24
MD5 b554fe91c5414c69b5ecf243453d9d43
BLAKE2b-256 913078fd8dc38d0df2b39ad3df6d0fdc6ae2f5e5551afc30f6396b9b21c292e5

See more details on using hashes here.

Provenance

The following attestation bundles were made for secantusdb-0.6.0b9-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.0b9-cp310-cp310-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for secantusdb-0.6.0b9-cp310-cp310-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 fd73031fd4d98b1c01610a1c571f658d2bebb06e9c9722e908fac87a04c8ae5c
MD5 4cc0335da3d39ac51c757f266f499aa4
BLAKE2b-256 d026fe486d42903eafdcc9b183a03a528226aa714cd98cb59fe36920c60d3bea

See more details on using hashes here.

Provenance

The following attestation bundles were made for secantusdb-0.6.0b9-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.0b9-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for secantusdb-0.6.0b9-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a7bb7c3cb05139107a6192715a8fdd8b184124ece6bf0516a4690bdc543c7f12
MD5 ce2437f730cd563c9e0aa63cab55520e
BLAKE2b-256 ac68c566fc98eeb3d85bacd653367a586954367c5d5644969b3dd42fbf3395b2

See more details on using hashes here.

Provenance

The following attestation bundles were made for secantusdb-0.6.0b9-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