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 ~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, 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

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.0b0.tar.gz (9.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.0b0-cp313-cp313-win_amd64.whl (14.4 MB view details)

Uploaded CPython 3.13Windows x86-64

secantusdb-0.6.0b0-cp313-cp313-musllinux_1_2_x86_64.whl (17.8 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

secantusdb-0.6.0b0-cp313-cp313-musllinux_1_2_aarch64.whl (16.9 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ ARM64

secantusdb-0.6.0b0-cp313-cp313-manylinux_2_28_x86_64.whl (17.5 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ x86-64

secantusdb-0.6.0b0-cp313-cp313-manylinux_2_28_aarch64.whl (16.7 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ ARM64

secantusdb-0.6.0b0-cp313-cp313-macosx_11_0_arm64.whl (15.3 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

secantusdb-0.6.0b0-cp312-cp312-win_amd64.whl (14.4 MB view details)

Uploaded CPython 3.12Windows x86-64

secantusdb-0.6.0b0-cp312-cp312-musllinux_1_2_x86_64.whl (17.8 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

secantusdb-0.6.0b0-cp312-cp312-musllinux_1_2_aarch64.whl (16.9 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ ARM64

secantusdb-0.6.0b0-cp312-cp312-manylinux_2_28_x86_64.whl (17.5 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ x86-64

secantusdb-0.6.0b0-cp312-cp312-manylinux_2_28_aarch64.whl (16.7 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ ARM64

secantusdb-0.6.0b0-cp312-cp312-macosx_11_0_arm64.whl (15.3 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

secantusdb-0.6.0b0-cp311-cp311-win_amd64.whl (14.4 MB view details)

Uploaded CPython 3.11Windows x86-64

secantusdb-0.6.0b0-cp311-cp311-musllinux_1_2_x86_64.whl (17.8 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

secantusdb-0.6.0b0-cp311-cp311-musllinux_1_2_aarch64.whl (16.9 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ ARM64

secantusdb-0.6.0b0-cp311-cp311-manylinux_2_28_x86_64.whl (17.5 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ x86-64

secantusdb-0.6.0b0-cp311-cp311-manylinux_2_28_aarch64.whl (16.7 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ ARM64

secantusdb-0.6.0b0-cp311-cp311-macosx_11_0_arm64.whl (15.3 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

secantusdb-0.6.0b0-cp310-cp310-win_amd64.whl (14.4 MB view details)

Uploaded CPython 3.10Windows x86-64

secantusdb-0.6.0b0-cp310-cp310-musllinux_1_2_x86_64.whl (17.8 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

secantusdb-0.6.0b0-cp310-cp310-musllinux_1_2_aarch64.whl (16.9 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ ARM64

secantusdb-0.6.0b0-cp310-cp310-manylinux_2_28_x86_64.whl (17.5 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ x86-64

secantusdb-0.6.0b0-cp310-cp310-manylinux_2_28_aarch64.whl (16.7 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ ARM64

secantusdb-0.6.0b0-cp310-cp310-macosx_11_0_arm64.whl (15.3 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

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

File metadata

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

File hashes

Hashes for secantusdb-0.6.0b0.tar.gz
Algorithm Hash digest
SHA256 324ded8172c83b0aecd680d48bdbc5ed8fdb598746d9cc9b448ec514fe6ed231
MD5 fb2284bd32b7c726772c9bb85f75f26f
BLAKE2b-256 c5bea3e9c9fb943f6eb3ef511af6a296c7091769368f3ab807abbf915311149e

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 a60c95125e94dc5e775a409ea43fb40b95fdd241433f3ab8b74786734e8bb1bf
MD5 e39f85d07df795689915b5a4b5168a58
BLAKE2b-256 ba3b7651cda0deaebb0e2282a5ab572d8ea533af5ba2ab178018287a730f8f30

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b0-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 adba51e56128513dc477b4c193cbad7de547eccf87f64e7c554726e0c6621197
MD5 cd0375e6bad927ea1283ad129c3cd759
BLAKE2b-256 abaa1d44c0c7d096e2efe3b9c2eb1f2fa1c4b1dd3d88c87c148800fa210d8060

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b0-cp313-cp313-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 159ef11e57775446c0254811c3aa9deb30f711b00ca5de146c62c423d25baaa1
MD5 093cba33cc555f0d0a9474d657de7f97
BLAKE2b-256 5fd37011c19474c7b9198a9cab407cba13be6f0c8e272a47ac54b9a268128797

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b0-cp313-cp313-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 8316d7e4c347101cbb9d0c142696ce3b6c3aad90c5c3d5307fe747f7d05c0d52
MD5 f47aa79baed7796b8b19150a0af9adfc
BLAKE2b-256 b5b786aa2ba04e76ec7816d90e2e0e4504dc7628b088a64db0290616d3ce1c3a

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b0-cp313-cp313-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 378cb93a1a92a7468fe757933ad16a4e3752c2e9bcfc11a8daff1e49fa677770
MD5 55c74c30f15f678a92484ffc516e17b5
BLAKE2b-256 26da57ea213ed79818005e7c8fad5e20388d672384fb8be917470b3a32fd987f

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 95ef2366205da3158357150c1aefd2e97b18260dc720379cfd59771d2943ac7e
MD5 195e2409f8e64608c85f1c0e5b88f171
BLAKE2b-256 9bd8e3a36db860989d56f3a1a93118ccd3a503194bb10a0ff88a6502c223e4ed

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 75be86aee86a04d4d68a8b80312f7063af16f33288da3a575caad9b5d9694bdd
MD5 c1c0b732c4787b7a4b791849b7cf2d00
BLAKE2b-256 b31c6417caa9d707b7bfd91edb4318dd01f235a6d82f8173b552734cd7f3a683

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b0-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 c5320a80241eb9261f284aade375daea1bfddd9d18702634652edc15c6842a5b
MD5 d7dc7196eee23b338bc58005b500ac10
BLAKE2b-256 9644e8b01a2dc43747ee1144d54aa5ee7af57c1556be4fa8b496e9c01aed91ad

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b0-cp312-cp312-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 8d320c1091e137e393611fb28d9e07c31dc83a098b5ff7232596b50616021452
MD5 6c4beeb04b267da5e774e9fa8fa584dc
BLAKE2b-256 72c34c928f4c60d2006f3af81f6bb27c8affb3204363dfdfab69f71f9ab70e82

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b0-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 3b6dae5526b23a10877898312f3ea4af4f3ddbf42abb1e4c5123d3335b775d97
MD5 ef9c3c35c3dcefce7890f3170e2bc185
BLAKE2b-256 1dbcda6e5de016c619d8b5ca1e441f8fb5a7711e3ae87204ce28d49614d6b217

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b0-cp312-cp312-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 504fea5650c8b27c062f4604634575896a9851f314f5985bd573d5b2a8cbbf1f
MD5 da78d8aabfacd8b51265134583ac0fef
BLAKE2b-256 a594f491c0b21b31803c10e1bf2c39996fc8552378a3c57ff05faab751e33069

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 12326078f054e48d56489584c675fe1e3e14a0d69895571d8545f4a899280aca
MD5 a3a082e9d3502c4983e09039d5054c18
BLAKE2b-256 e7fc4a49474dc3162258f6db31fb2593b8db0c82e73bba64c0c19681e5a69cd8

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 a5f374c182d208cd1037bee98b652d7e49469072940de5d145c647cf9b1bbdec
MD5 12c889edd621746f77952b3748db9088
BLAKE2b-256 9e4ca61ff684f6c349b0aa53fd5ba61479874975acfbd45cf1ade078d94f0a4b

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b0-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 28fe715607e8414e064fd7fd2c415720234cb00a296c75089896220fd15bdad0
MD5 b84c8ebfb487431034809e366d22e044
BLAKE2b-256 a4bc880e8262a1f0b7aea46578f68afd8c1b92872cb429dd5924d9aff22fd23a

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b0-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 25683216ecaefd081c4460018c35eb5502213000a79de32d6a979432744cd4a9
MD5 ff1854955a9dba4ba98a11c6cb050ed6
BLAKE2b-256 cce2090707425beacb80bb156fe3bdca59a2dfff3c0afb533f9017889986e22e

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b0-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 48d58ffdd85efc059d7bc4b3b136b7108e982064d5687ce7248d8d9eef3b8c39
MD5 3b84b3463008b23a24ed9788d9de86c2
BLAKE2b-256 3aac65de8e0f2c6b77f6326c4e778c3309fc456678ff97c3f1a259cb41585a1c

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b0-cp311-cp311-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 6c2a879248bd828951c455ec5e1e48075f5a2bd74c22aa4a323c93fc094bb487
MD5 845c6cafbb204a5c1a8ca98c635691b7
BLAKE2b-256 19828c63e0b67c080b8d3c115d66561427ad336602db789c6184008413fbd2ec

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 dcb313ffed54e2841bceaf29cb400bb076e1431dd86ceca3e5dfa05f9279ff3c
MD5 13da3bb7506bd380f77865b601b16577
BLAKE2b-256 88940c8b6feed8624f1b3d6669c033c27fbfdc403de564dbf0888c4e504446c2

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 a7da1707e444ed30b45a9f908d68eeeba118ca6a7086ac389a9027e81cc4fd6b
MD5 c22aaa91cd4baf46672af0890143ab36
BLAKE2b-256 d8f925b4edadd886f60060b5ac935479cfae70a2c40f5bc94c6d1385481dab67

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b0-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 ed9d9723893fe5dc2e534a7f836b15acef4c7408476bc05a5397a80566e5fdfb
MD5 436d79d6379fd2a5f1a6693f9db4fd32
BLAKE2b-256 939999d8081305231382e78e3c885021ffab2559119a65f5b1cd470498afed7d

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b0-cp310-cp310-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 433dc894c1ec6dfb53c8bbff9efd6891b04ab2f102c7e6971e9b726abf1f7414
MD5 8c140e8ae0a96db8c04798598631c492
BLAKE2b-256 7a97d41d74f882c6e9511247809df344ce89a97dc35b11a996b03ed1b79eb7a3

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b0-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 ea933117f3be29686218ac277744022ac734e366f2c73179bdf8bfd37f4e8450
MD5 95d011cab2dd500ea3a2a06538ab87af
BLAKE2b-256 799b850c98a0fbe3ada05311c1fb1d7b3ed42ab2cde46350d6315cb22d09f50e

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b0-cp310-cp310-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 8ee6ef4aeeb9e060e8ec8b6bdf7611865345dc7c52b8ce84c8d93d324f677b9e
MD5 87ce7c8c140bb7cfb966f3af1d9630ec
BLAKE2b-256 707f0db709b9da7924b02efbf72e5ee5c4bc6c99421502c265143279ea588e26

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ca5cdeecf0ad35f0c1a335b9c088781f0cbbe6db5d213c81ab49295a157b77c5
MD5 0190e7418c74d3cbec272860ed93562c
BLAKE2b-256 0534f46592aa3cc621bdadcee2c12e2d43ea67b4d6e310bdce0fd19a39beb4cd

See more details on using hashes here.

Provenance

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