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 Status

[!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 (secantusdb).

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 ~8×–46× 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. Off by default; flip on with secantusdb --auth (or SecantusDBServer(..., require_auth=True)), provision users with createUser, then connect with the standard MongoClient(uri, username=, password=) shape. See Authentication. Authorization (RBAC), x509, LDAP, Kerberos, and TLS are not implemented — an authenticated principal is currently treated as fully privileged.

What's out of scope: real replica sets, sharding, RBAC, x509 / LDAP / Kerberos auth, TLS, text / wildcard indexes, $where, real transaction rollback. If you need those, run a real mongod. Geo support ($geoWithin / $geoIntersects / $near / $nearSphere, $geoNear, 2dsphere and 2d indexes) is in scope and shipped.

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.

Optional Rust acceleration

The operator engines (query matching, updates, the aggregation-expression evaluator, projection, and the storage-independent aggregation pipeline) have an optional Rust implementation that runs off the GIL. It's an accelerator, not a replacement — the pure-Python engines are always present and remain the default, and the Rust core is pinned byte-for-byte against them.

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

Enable it process-wide (default stays Python):

export SECANTUS_ENGINE=rust       # or "auto" — rust if the extension is present
from secantus import SecantusDBServer
server = SecantusDBServer(engine="rust")   # same effect, programmatic

rust transparently falls back to Python for anything it doesn't reproduce, so it's always correct. The Rust side is a Cargo workspace under crates/: a pure-Rust engine crate (secantus-core, no PyO3) plus a thin PyO3 bindings crate (secantus-core-py) that builds the secantus-core wheel. Splitting them keeps the engines reusable so they can evolve toward a first-class, standalone Rust build.

Standalone daemon (drop-in mongod replacement)

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

secantusdb --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.

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: pymongo's own test suite and mongo-go-driver's own test suite run unmodified against SecantusDB — see pymongo validation report and Go-driver validation report.

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

Documentation

Full docs are in docs/; build them with uv run python -m invoke docs and open docs/_build/html/index.html. Highlights:

  • Quickstart — embedding in tests, running standalone.
  • 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.
  • pymongo validation report — per-category pass / fail / skip rate from running pymongo's own test suite, unmodified, against SecantusDB. The submodule at vendor/pymongo-tests/ is checked out at the pinned upstream tag with zero local edits; a pytest plugin starts an embedded server and points pymongo's DB_IP/DB_PORT at it.
  • Go-driver validation report — same shape against mongo-go-driver's own test suite, unmodified. Spawns a standalone SecantusDB daemon and runs go test with MONGODB_URI pointed at it. The Go driver underpins mongodump / mongorestore and most non-Python tooling, so this gauge catches type-strict wire bugs (int32 vs int64) that pymongo accepts silently.
  • Node-driver validation report — same shape against mongo-node-driver's own test suite, unmodified. Spawns a standalone SecantusDB daemon and runs mocha with MONGODB_URI pointed at it. Initial baseline is restricted to the import-clean subset of unit tests because of an unrelated ESM/TypeScript loader quirk in node-mongodb-native v7.2.0; see node_validation/include_paths.py for the rationale.
  • Java-driver validation report — same shape against mongo-java-driver's own test suite, unmodified. Spawns a standalone SecantusDB daemon and invokes the driver's bundled ./gradlew with -Dorg.mongodb.test.uri=mongodb://.... Initial baseline is the :bson:test module (BSON serialization, ~289 test files); the JDBC-style integration modules can be added to java_validation/include_modules.py as we widen.
  • Ruby-driver validation report — same shape against mongo-ruby-driver's own test suite, unmodified. Spawns a standalone SecantusDB daemon and runs bundle exec rspec with MONGODB_URI pointed at it. Initial baseline is the lite-spec subset — 90 files under spec/mongo/ and 9 YAML-runner files under spec/spec_tests/ that require 'lite_spec_helper'. Covers BSON, URI parsing, SCRAM-SHA-1/256 conversation framing, retry / heartbeat protocols, CMAP, error-class encoding, plus the cross-driver spec-test corpus for connection strings, server selection, SDAM, auth mechanisms, max-staleness, and read/write-concern document shapes. No real-mongod connection required — SecantusDB doesn't have to satisfy any cluster machinery for these. Auto-discovered by ruby_validation/include_paths.discover_lite().

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.5.3b7.tar.gz (9.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.5.3b7-cp313-cp313-win_amd64.whl (1.5 MB view details)

Uploaded CPython 3.13Windows x86-64

secantusdb-0.5.3b7-cp313-cp313-musllinux_1_2_x86_64.whl (1.8 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

secantusdb-0.5.3b7-cp313-cp313-musllinux_1_2_aarch64.whl (1.7 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ ARM64

secantusdb-0.5.3b7-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.7 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

secantusdb-0.5.3b7-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.7 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64

secantusdb-0.5.3b7-cp313-cp313-macosx_11_0_arm64.whl (1.5 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

secantusdb-0.5.3b7-cp312-cp312-win_amd64.whl (1.5 MB view details)

Uploaded CPython 3.12Windows x86-64

secantusdb-0.5.3b7-cp312-cp312-musllinux_1_2_x86_64.whl (1.8 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

secantusdb-0.5.3b7-cp312-cp312-musllinux_1_2_aarch64.whl (1.7 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ ARM64

secantusdb-0.5.3b7-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.7 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

secantusdb-0.5.3b7-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.7 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

secantusdb-0.5.3b7-cp312-cp312-macosx_11_0_arm64.whl (1.5 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

secantusdb-0.5.3b7-cp311-cp311-win_amd64.whl (1.5 MB view details)

Uploaded CPython 3.11Windows x86-64

secantusdb-0.5.3b7-cp311-cp311-musllinux_1_2_x86_64.whl (1.8 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

secantusdb-0.5.3b7-cp311-cp311-musllinux_1_2_aarch64.whl (1.7 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ ARM64

secantusdb-0.5.3b7-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.7 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

secantusdb-0.5.3b7-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.7 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

secantusdb-0.5.3b7-cp311-cp311-macosx_11_0_arm64.whl (1.5 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

secantusdb-0.5.3b7-cp310-cp310-win_amd64.whl (1.5 MB view details)

Uploaded CPython 3.10Windows x86-64

secantusdb-0.5.3b7-cp310-cp310-musllinux_1_2_x86_64.whl (1.8 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

secantusdb-0.5.3b7-cp310-cp310-musllinux_1_2_aarch64.whl (1.7 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ ARM64

secantusdb-0.5.3b7-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.7 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

secantusdb-0.5.3b7-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.7 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

secantusdb-0.5.3b7-cp310-cp310-macosx_11_0_arm64.whl (1.5 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

Details for the file secantusdb-0.5.3b7.tar.gz.

File metadata

  • Download URL: secantusdb-0.5.3b7.tar.gz
  • Upload date:
  • Size: 9.8 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for secantusdb-0.5.3b7.tar.gz
Algorithm Hash digest
SHA256 83aca7648a1ec6fb77d3351c237510b4fa0cfdd5c1c5c5883fc0bf1342b33cfa
MD5 55acec18b430c922e97fd4214985a7b2
BLAKE2b-256 c7c62191c5c0f47b2db47c79c508914fe98dd35154a933e6e925877dae6bcdef

See more details on using hashes here.

Provenance

The following attestation bundles were made for secantusdb-0.5.3b7.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.5.3b7-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for secantusdb-0.5.3b7-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 5fc17b5d1f9d0b937bd5136cc2613befd0c4f4c38eb4c82ff57420d775b8e904
MD5 b9317d201bcefcd51044ea05f661666d
BLAKE2b-256 22c38fed89589bbcec4fa1310e22dcf956b24454f5289edf06504f004e0254f2

See more details on using hashes here.

Provenance

The following attestation bundles were made for secantusdb-0.5.3b7-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.5.3b7-cp313-cp313-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for secantusdb-0.5.3b7-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 399cea67849cb1eebffa7d7b68402b9363e10b7af2ebfbc839100b0ca2a69dd3
MD5 5c5fc2cf456871db6d6f817dc1596052
BLAKE2b-256 e1152ce9e437e9d15b1eb7be35b86f509087f8eb1b2c49960c58b0ef4c18cccc

See more details on using hashes here.

Provenance

The following attestation bundles were made for secantusdb-0.5.3b7-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.5.3b7-cp313-cp313-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for secantusdb-0.5.3b7-cp313-cp313-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 b4c39bc0b26a8ab10267b995a2606aaa373586154638b4325a641ee171910da2
MD5 62717f305f410fe50720e597c95e0f45
BLAKE2b-256 8c21553e393f49d35ad6ad8d6665d627ad2bf0c5451aee863b33675855591a23

See more details on using hashes here.

Provenance

The following attestation bundles were made for secantusdb-0.5.3b7-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.5.3b7-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for secantusdb-0.5.3b7-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b48a1457b5ce66fa50cef15c11fe2eec2576b578519f2a9c9fb122ba5ab63b4b
MD5 3205db42e60ce68d0e8c42b3734de0e3
BLAKE2b-256 933a1a9692345de8551913b30d2b91a388b7ee5353ee8fd742e7a74d28b78e0a

See more details on using hashes here.

Provenance

The following attestation bundles were made for secantusdb-0.5.3b7-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_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.5.3b7-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for secantusdb-0.5.3b7-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 1e42649e7223236c7c62ab773970a5d8faa91f6972e959bb0ea35b74ab955fef
MD5 48486fd7e5b5f9b010aa29758e0f20c1
BLAKE2b-256 ad508a31f65071a9e2fd7da14679e29fc0435fcfb5c17dc0d719ad48f4c66e03

See more details on using hashes here.

Provenance

The following attestation bundles were made for secantusdb-0.5.3b7-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_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.5.3b7-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for secantusdb-0.5.3b7-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 373d23ba68f583c59692eb7e89ea47be33399e571a860cc7e13bd2e6882d3bda
MD5 d115b342edec2f259151bf62c4c54a51
BLAKE2b-256 b143e65cd5db4d9d84563ef662814241ae8c2a39430dd9db369ff738414e25e0

See more details on using hashes here.

Provenance

The following attestation bundles were made for secantusdb-0.5.3b7-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.5.3b7-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for secantusdb-0.5.3b7-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 8745b980c90db8dc5ada550d6c39effed828a99a86ac2dd31da716627a969ccd
MD5 313e19cad99ad9771458f618a702a03c
BLAKE2b-256 9b7bcfec930b17b3a60df822aec3c421bd6eb7a2895249129e99e9c57b56d11e

See more details on using hashes here.

Provenance

The following attestation bundles were made for secantusdb-0.5.3b7-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.5.3b7-cp312-cp312-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for secantusdb-0.5.3b7-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 3ba603c56cd430345188fb2c3a4f4b66d57158980fe433beabe72eaf29b19767
MD5 6dbf803776bda8eb01bbd59a061b9858
BLAKE2b-256 89b8cc0585428e226dc343e645d9e35b2bcb7f5d6a7f5751a573ba0ad3cdddf2

See more details on using hashes here.

Provenance

The following attestation bundles were made for secantusdb-0.5.3b7-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.5.3b7-cp312-cp312-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for secantusdb-0.5.3b7-cp312-cp312-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 e792eaffb73cd3daa4b682c542d7913da200728a7dccd0ba3916c412239b54ab
MD5 f0402f54e475726f6e5aad20287a7e90
BLAKE2b-256 2b1c5f5c6ca6906ee16c9f8abbf54f792ca91ffcf986621f5e7d0d5bab432cfd

See more details on using hashes here.

Provenance

The following attestation bundles were made for secantusdb-0.5.3b7-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.5.3b7-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for secantusdb-0.5.3b7-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 08088953d1dc7297d73e260aeef13f90b2b669861665e1409bfaf694122bea9f
MD5 dbe449288b24ec94d16e6125d3dc5010
BLAKE2b-256 fa57c1ac191118b7f13ee9a4489e052dddd21134eab64e4b81f5625d3035be7e

See more details on using hashes here.

Provenance

The following attestation bundles were made for secantusdb-0.5.3b7-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_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.5.3b7-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for secantusdb-0.5.3b7-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 df22563225dea44d5c0bd06bacd475cc576981e6e4831d9f3ae9367fd2c1f193
MD5 a7e33a36d18f624b215545cba15bd00c
BLAKE2b-256 ef1641b9bc94adb0424489449b9f1f141872993925659f7a4da0c894d7100fba

See more details on using hashes here.

Provenance

The following attestation bundles were made for secantusdb-0.5.3b7-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_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.5.3b7-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for secantusdb-0.5.3b7-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4467b991dbacd7c70af7d0326b61d3fbd4e5d4c728c4a90bc032b81fe9efb21c
MD5 841fbeba9613e03302c8780ce5646435
BLAKE2b-256 b8f378d76a8b7960cf4de7d05cd7033b35e89db3f92762ce96b893e0eaad38a3

See more details on using hashes here.

Provenance

The following attestation bundles were made for secantusdb-0.5.3b7-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.5.3b7-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for secantusdb-0.5.3b7-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 1d50d61b788a5d4cb8cbb54ddc81bdd0731ea6c0b67951f346345aa7285e2321
MD5 f81e40de7b43433bcfc54df9b3e343b9
BLAKE2b-256 f99e0df9379e8a0fbc3d503fa8c72b367277e8fb874364e75bbc3b9181c9d1f8

See more details on using hashes here.

Provenance

The following attestation bundles were made for secantusdb-0.5.3b7-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.5.3b7-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for secantusdb-0.5.3b7-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 525b95eccb21f5dff3b4d728c27c9bc100f6ca1a80f152282f29c61cbdd4ab23
MD5 5b8bf31ab1cf829f47b285d27be1f15d
BLAKE2b-256 f87b03148e735fcfb07fa03fc08f76127147c8c77829836cc8b9daa7e640181f

See more details on using hashes here.

Provenance

The following attestation bundles were made for secantusdb-0.5.3b7-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.5.3b7-cp311-cp311-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for secantusdb-0.5.3b7-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 059622e27546a79d391dbdc82a56421a1e5fcd3a6bf2bb7bd0e9a1a8335990a7
MD5 a6177d950ecf5839fa632773039d8fde
BLAKE2b-256 d68436c391eb23a92edca1b35bbbaf639b5947382f474a4a103be07fb0c2ad94

See more details on using hashes here.

Provenance

The following attestation bundles were made for secantusdb-0.5.3b7-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.5.3b7-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for secantusdb-0.5.3b7-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c58f4ea2bcb236862524b6246aea348479222a90bd8fb879710a4db355db860e
MD5 3a3338aec1ad5263834790387414cdd6
BLAKE2b-256 b4646e239c8b9bdce2bdd3ae54a9d20416d9ce8fdcbcd0d369832f72f9cc6d9a

See more details on using hashes here.

Provenance

The following attestation bundles were made for secantusdb-0.5.3b7-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_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.5.3b7-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for secantusdb-0.5.3b7-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 a2ae1bc03dac6e7bb45b3f7a450560a9b403ff720722decc33cb021490e66b9a
MD5 838a025bbb17436f65c27064d7ab4dfc
BLAKE2b-256 6264df63241708cccf29c1e16d1d375ee106ce575d65c55baf0ab1429d7bd8bf

See more details on using hashes here.

Provenance

The following attestation bundles were made for secantusdb-0.5.3b7-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_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.5.3b7-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for secantusdb-0.5.3b7-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 da8bf779febc99145d9bb03215eb161d4cfbbd57e74cedc54c83ae506ce86de9
MD5 3fa65da6efdbca4b6cd8bcd53ac838a3
BLAKE2b-256 c60aa126dec14267eb43ea8638f62489f04f97befebad9c980be86430666fbcc

See more details on using hashes here.

Provenance

The following attestation bundles were made for secantusdb-0.5.3b7-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.5.3b7-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for secantusdb-0.5.3b7-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 e741fb6a997d1498ad0761ce05bc780030354b0e9ee8f7455205a8c0f7a8b83d
MD5 cd57fd20cecb64d82557733ba462b199
BLAKE2b-256 187e83c31dc95068c9b40a30353ef985e8eddfa615a1c23521f5711a249b9560

See more details on using hashes here.

Provenance

The following attestation bundles were made for secantusdb-0.5.3b7-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.5.3b7-cp310-cp310-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for secantusdb-0.5.3b7-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 a909af1f4b2e041032ef67e6d0648383620bbf0c0f2d92de5d51fe4b7378b494
MD5 28f97ec43bfda0057782e131087bcecf
BLAKE2b-256 44dea95644d4a135d13e76bde0e192febe5fbef1d1b07b71f411f78d40a64081

See more details on using hashes here.

Provenance

The following attestation bundles were made for secantusdb-0.5.3b7-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.5.3b7-cp310-cp310-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for secantusdb-0.5.3b7-cp310-cp310-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 f42f2956c32fa6fe9699b83f12a6e43029c0efd6118926932afac6916b3acb0a
MD5 1ae5dd45f75a523e64a46c0f8406436d
BLAKE2b-256 494d0324e5a422cfb0deb05285343d3068bb64e8111ef8025db2ab07e7fdd185

See more details on using hashes here.

Provenance

The following attestation bundles were made for secantusdb-0.5.3b7-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.5.3b7-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for secantusdb-0.5.3b7-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a2ab351038dfe2d6ed5df897230c4ebe20d769fb96cf26a5688c525c5d6b0ea9
MD5 f28c2c969ec7a13c65b2f69c6cd550f8
BLAKE2b-256 3e06ffa4ade937a6a9c30a148ca67462b5beef7c7bc0ac4252a298afcd2f20f5

See more details on using hashes here.

Provenance

The following attestation bundles were made for secantusdb-0.5.3b7-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_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.5.3b7-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for secantusdb-0.5.3b7-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 4e771cf6d83f2441ab09baac0912773c307f85d466762a089ee1cdf719af8ee1
MD5 dd20242f06c8716828b8d0dc7e20c51b
BLAKE2b-256 335a382c5b8519c282e88145646d11bc1d10cdfcaf16ed168c6954e0021d777f

See more details on using hashes here.

Provenance

The following attestation bundles were made for secantusdb-0.5.3b7-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_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.5.3b7-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for secantusdb-0.5.3b7-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 11e86b27a8384eef96b38bd5ee4daa314ff55523fae3951e7ec8f6ccbf8179c1
MD5 6ba66ca5728669a332425dcb8cee106c
BLAKE2b-256 8cc03ea9b5b6135be91d416029a54a96ce15fe1699122eb3019af1dd7e5ad277

See more details on using hashes here.

Provenance

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