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 ~4×–17× 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.0b6.tar.gz (11.8 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.0b6-cp313-cp313-win_amd64.whl (14.7 MB view details)

Uploaded CPython 3.13Windows x86-64

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

Uploaded CPython 3.13musllinux: musl 1.2+ ARM64

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

Uploaded CPython 3.13manylinux: glibc 2.28+ ARM64

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

Uploaded CPython 3.13macOS 11.0+ ARM64

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

Uploaded CPython 3.12Windows x86-64

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

Uploaded CPython 3.12musllinux: musl 1.2+ ARM64

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

Uploaded CPython 3.12manylinux: glibc 2.28+ ARM64

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

Uploaded CPython 3.12macOS 11.0+ ARM64

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

Uploaded CPython 3.11Windows x86-64

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

Uploaded CPython 3.11musllinux: musl 1.2+ ARM64

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

Uploaded CPython 3.11manylinux: glibc 2.28+ ARM64

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

Uploaded CPython 3.11macOS 11.0+ ARM64

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

Uploaded CPython 3.10Windows x86-64

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

Uploaded CPython 3.10musllinux: musl 1.2+ ARM64

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

Uploaded CPython 3.10manylinux: glibc 2.28+ ARM64

secantusdb-0.6.0b6-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.0b6.tar.gz.

File metadata

  • Download URL: secantusdb-0.6.0b6.tar.gz
  • Upload date:
  • Size: 11.8 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.0b6.tar.gz
Algorithm Hash digest
SHA256 4d276e6828f6efc0ee7356bb3f2f55fb1eb7439bcbe24e42d3b64f8f5f296e69
MD5 544352a351eaf98308841551802e64f6
BLAKE2b-256 eb1092848dff9b99c46d96334039b5c5b190f5abfe40b23ac9f2f79067eec6e1

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b6-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 484828aeb708547780218ca72616eba00684d025c20219928643a9b492c78638
MD5 71ad11b748135c1f22b1093ac9a17aac
BLAKE2b-256 dfa8e33cb2c37a7a86c763a72ddf44b975c931d07c343c9e58b900037f838e9e

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b6-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 d7e268f551a23e85e41b0117bee07586bf88753ff4fa58f1812c7caaf70501d0
MD5 19e62077ae931f7aa88b9e33d3b5ccc9
BLAKE2b-256 cc5d87dcaab637def3bf169323415d328463abd310052fb8622d2f6e5c6cb1d3

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b6-cp313-cp313-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 420678fa38a1c7763ab8925726cd35b6c36e181985e6aceac6c1e227f93b1973
MD5 bdcde966547070f59459a1fe1e006fd5
BLAKE2b-256 157b26181ed7e92e1bb8e832309c182706bbf110158e00d846f286973f02d6aa

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b6-cp313-cp313-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 364809069da0a18a850154bc6c9124df8bdd2cd3f59153275602f3497a7004b3
MD5 54272561e256bc6f722147f3885a7ef9
BLAKE2b-256 57e7797ab4e537a6e17bbb2265703342ca68ac8fffd779186f817e937866dfb0

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b6-cp313-cp313-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 46f14c51bfb21fd2fb988682aa3d2ab7be83883ab9a0716dbb3c5d2bcc712fd0
MD5 e5e27e9c2a9135382e21547f3eb99998
BLAKE2b-256 4c8b4470f0be76a8c59bfc0bd92c7e86fb2a5c101dd1966670508955cf500514

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b6-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7ae9659808ad778e2e5e110a3e79ef126adf07afc6286a32533dac343151cae2
MD5 f3a23d559b631d8cdb738a020b1c70c6
BLAKE2b-256 ac07026b2825baf137738e5d5e51c956b2b6d91d0434b92fdf8807f8ae6a0f9a

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b6-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 0291c649a69502356560c47854377b56ea0b5777513af4bd18fb2bda5c81ba62
MD5 7ebfa418ea41bfe7ff42ab8e135e7c72
BLAKE2b-256 a2a2b22e29876a3b755e74cf0e9bea882be1df76494e10891b1b3bbbe39e1977

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b6-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 80b845a724658a014519d749eb8862ce324a57f1c677058d8b206934da9b5172
MD5 5b80e71b709ea21422f32d13afcfa9e7
BLAKE2b-256 9d6728e8dcd558b4d8b7b01792dbb37f14ee4993a21069371c0bae57dac7ea66

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b6-cp312-cp312-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 dd515fb658ab712b8f6ae7e6eb7a9b113bf96eb545bcbd6e9297f1c7dcc57480
MD5 ad32c844e76387c736be6fadd1f7d58a
BLAKE2b-256 865980e2cff6ed825b24c8587772378300a25e09cc045867636e866eb3612c5b

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b6-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 3d2ab162fcc928929ad12ed23e5bf77b811b76bba17ff4a3487193f8145bafb7
MD5 fbff6d4760ff512ad25b5bdd909188d2
BLAKE2b-256 123db75f1913ccd4a964ac123f43b74c6cd5ed64cff866e450f92a7e6f752537

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b6-cp312-cp312-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 0e158849fa503d2fbdeac125bc0766e4ab13102dfde1b08245ee3da88cdbe425
MD5 754bff993dfad73d16e0f2fbe9a71150
BLAKE2b-256 445a0ef96e635786d5f9725437827fca5d0e8eca8e048d6d74d074e0890b084d

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b6-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d970959343c2169c4f9270775a42c34320d73bdf805edbbfa3dc69b5708ae64b
MD5 f9071bcba320c49e4015b09f25e503f1
BLAKE2b-256 993235799d56fc907adb998b3a7158e45cd94267137be8c6f1530770a20eb649

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b6-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 77d0bb51e35bc7286029bc3166164ff27702dfe4e27e831a425c5ee8157b98c3
MD5 e59625a1d277b17f4e9b956aa6562c51
BLAKE2b-256 7db712b9c1586bbbc10cf95f67a768f84fa9fd0705f43ee1f73e9921ac8f0b91

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b6-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 079dde70f17396eb5af6d210f334f021d0e81d573bbc63e68ae8aa5311b34df1
MD5 9639c0558845535d9dfb34f26f7ca106
BLAKE2b-256 f54fe9264ad6d11a0aa3b80462d3f96157dae3d4c1ca050881babe48f9cf57a9

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b6-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 17801568304766585ac55ee8a94489651c7375f1adec03c817187265796c3989
MD5 2a7610d6173f472d02ee8f4155e7a4aa
BLAKE2b-256 09cee2ee2a9c6329608cb08167c1c6ef7049182994f83bfa5a4630d0299ac2bd

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b6-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 5ea2c9dd8d93598c969c6b84e3662eddecafb3b0e227e46a829e879b7dde18ce
MD5 f21cbaf4e589e07e76fb5cbcb229a304
BLAKE2b-256 133bab1a68430c43846d51a59b71d69196687eb0e21d42d5bb9a55fcf81b1540

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b6-cp311-cp311-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 7840743c381cbe4cea2ad46c28fa26b5b5bf47ff7ff90d6b2d04bc77cc8cfcc0
MD5 0230187de4db11465999d557c9c28856
BLAKE2b-256 4c410087383eace82d7ca3a19dfa83763bbe19e527928655e72e562345644665

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b6-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f01fc4707f606a63627ededbda719f4449fbb41562a3440faf63c4f05f48b876
MD5 53c4c423c4052601121d1d16cb1f2ec1
BLAKE2b-256 66718f2cee150193eab23104e3edef93d09b10c124895d98358e52c6396e3e86

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b6-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 9a09201f8232fab9be29ce8656dea6ea3248050ca8a0357e1e401c41a6bcb648
MD5 66043f6fcd2a055d015e404128e95a22
BLAKE2b-256 06829d7687e00fb9c6c463c23f3dae2cfc83e8c3008bbb2abd28a1ebbebf3866

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b6-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 c26cb666922874c476a8bc51da6f2750a2d2527238f364518ce3e1930bf6923b
MD5 0d48da3868a5050822d9bce5633250ff
BLAKE2b-256 4c2ad28bb7ff3c54901624b5d3f2f2d113ebca46c8e1c86939f3c3cfc4a034df

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b6-cp310-cp310-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 edb2c65e38877ae859ccee0a5867c3e737516f8ed6f22b7ca78c0f1d82735136
MD5 aad8a90742a324d759ecf0ed9dc7ff74
BLAKE2b-256 a8a2287bdbae039f1f4da0c7aeb979b8bedec55f015cdc594e5a204eb03268e1

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b6-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 5dcb9d4bdd1131d59deec8af55edce7260bbfaca5263be1f6544084caf24d613
MD5 651286bf2b22651fca350fe5baf4902a
BLAKE2b-256 ac3558e87dd9915eb397568f5aa333a6b5f2dac5fc7d30c1d9a107e6bbab44bb

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b6-cp310-cp310-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 cf24ec4da9567babb824b7c1b217913dd8fc94aef87d189d18af2f4e657aeecd
MD5 74327c7af292020a5ac50e098aca38a0
BLAKE2b-256 bb4375f84033633cf822a63565c4aa26b2cdffccaa93ea0f7ddb5e288be3a23c

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b6-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e0378a3778368207ce7ab482ad6da092834233fc379880b6d3cd64752bd6eff0
MD5 97028684398bbfa2513e137f73ddf5ec
BLAKE2b-256 ca777b2f712e6da10c4bad4e21a6f9698f58157e61861e9a5123dccb6aa36910

See more details on using hashes here.

Provenance

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