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.5.4b237.tar.gz (9.6 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.4b237-cp313-cp313-win_amd64.whl (14.2 MB view details)

Uploaded CPython 3.13Windows x86-64

secantusdb-0.5.4b237-cp313-cp313-musllinux_1_2_x86_64.whl (17.4 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

secantusdb-0.5.4b237-cp313-cp313-musllinux_1_2_aarch64.whl (16.6 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ ARM64

secantusdb-0.5.4b237-cp313-cp313-manylinux_2_28_x86_64.whl (17.2 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ x86-64

secantusdb-0.5.4b237-cp313-cp313-manylinux_2_28_aarch64.whl (16.4 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ ARM64

secantusdb-0.5.4b237-cp313-cp313-macosx_11_0_arm64.whl (15.1 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

secantusdb-0.5.4b237-cp312-cp312-win_amd64.whl (14.2 MB view details)

Uploaded CPython 3.12Windows x86-64

secantusdb-0.5.4b237-cp312-cp312-musllinux_1_2_x86_64.whl (17.4 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

secantusdb-0.5.4b237-cp312-cp312-musllinux_1_2_aarch64.whl (16.6 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ ARM64

secantusdb-0.5.4b237-cp312-cp312-manylinux_2_28_x86_64.whl (17.2 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ x86-64

secantusdb-0.5.4b237-cp312-cp312-manylinux_2_28_aarch64.whl (16.4 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ ARM64

secantusdb-0.5.4b237-cp312-cp312-macosx_11_0_arm64.whl (15.1 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

secantusdb-0.5.4b237-cp311-cp311-win_amd64.whl (14.2 MB view details)

Uploaded CPython 3.11Windows x86-64

secantusdb-0.5.4b237-cp311-cp311-musllinux_1_2_x86_64.whl (17.4 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

secantusdb-0.5.4b237-cp311-cp311-musllinux_1_2_aarch64.whl (16.6 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ ARM64

secantusdb-0.5.4b237-cp311-cp311-manylinux_2_28_x86_64.whl (17.2 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ x86-64

secantusdb-0.5.4b237-cp311-cp311-manylinux_2_28_aarch64.whl (16.4 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ ARM64

secantusdb-0.5.4b237-cp311-cp311-macosx_11_0_arm64.whl (15.1 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

secantusdb-0.5.4b237-cp310-cp310-win_amd64.whl (14.2 MB view details)

Uploaded CPython 3.10Windows x86-64

secantusdb-0.5.4b237-cp310-cp310-musllinux_1_2_x86_64.whl (17.4 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

secantusdb-0.5.4b237-cp310-cp310-musllinux_1_2_aarch64.whl (16.6 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ ARM64

secantusdb-0.5.4b237-cp310-cp310-manylinux_2_28_x86_64.whl (17.2 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ x86-64

secantusdb-0.5.4b237-cp310-cp310-manylinux_2_28_aarch64.whl (16.4 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ ARM64

secantusdb-0.5.4b237-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.5.4b237.tar.gz.

File metadata

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

File hashes

Hashes for secantusdb-0.5.4b237.tar.gz
Algorithm Hash digest
SHA256 36b9d3f948fe7d9138b811410e6a2c4a83f56f731c9fc7a5743a13068b7ec918
MD5 26624a90205000a06dbdadddd1c35f43
BLAKE2b-256 21f29cbf1025f14e17778ad682be5c8ddf0b23d0238fdac2fd4e53233bf5ebaa

See more details on using hashes here.

Provenance

The following attestation bundles were made for secantusdb-0.5.4b237.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.4b237-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for secantusdb-0.5.4b237-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 bdeae33414aa6e9d1b90412d5d444c05d2580cb5e1818d60ab08ddafb192ae91
MD5 8d2678143bff0125eab14dd482fe3b4e
BLAKE2b-256 da5e74f56c420481b0e99ed7b91444588c9ee5e626cc29b54cc45de650ffd515

See more details on using hashes here.

Provenance

The following attestation bundles were made for secantusdb-0.5.4b237-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.4b237-cp313-cp313-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for secantusdb-0.5.4b237-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 94e57d3bd391a536181d36905e7e1413702e425582a670649ce5443ace9ea754
MD5 ba6d9ac468fa9b2e33e58adc16cd57f4
BLAKE2b-256 4f410c540747ec55602c12191b6568ac4fb8d0748247f6dbf69c0118381f7085

See more details on using hashes here.

Provenance

The following attestation bundles were made for secantusdb-0.5.4b237-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.4b237-cp313-cp313-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for secantusdb-0.5.4b237-cp313-cp313-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 1af62ff8fc4ccd2cf1f7ab7e5090265eb6b11911654364d520731730cae90cff
MD5 d161bd18a71f38429087a41e1f9a444b
BLAKE2b-256 78f1ef14fe6dda34ae6e53a3bd53c43517ef8d63e0ecc8049b705901ca1b4e45

See more details on using hashes here.

Provenance

The following attestation bundles were made for secantusdb-0.5.4b237-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.4b237-cp313-cp313-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for secantusdb-0.5.4b237-cp313-cp313-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 4d99f61e430845212c672e845469dc627a1ae6b370ac4826fa672af779d0062c
MD5 a0dcf84cab3904419300e0e5e563a4d0
BLAKE2b-256 263cbdcbff3c16e334c41860b946f6ba16d91ea76472144b18cae5df45bd441e

See more details on using hashes here.

Provenance

The following attestation bundles were made for secantusdb-0.5.4b237-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.5.4b237-cp313-cp313-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for secantusdb-0.5.4b237-cp313-cp313-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 9ee627df8fe8f8385cbd4c55fcd41977be79e2373a7d237b55afe945cdc612ca
MD5 2d173b7be69ce62c611bc469f5c924ac
BLAKE2b-256 c4c649b394f408720209536a2a546891e31c9bef949e04ff17ddf80d28c9150c

See more details on using hashes here.

Provenance

The following attestation bundles were made for secantusdb-0.5.4b237-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.5.4b237-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for secantusdb-0.5.4b237-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 727c92667e30196af6a3184aeeffe7765494c436e15f5823e66606f444c066e3
MD5 0acbddd723548fb57a2f7f9f212742b2
BLAKE2b-256 6bc27197ecabab3e826a452b86afb3acd206a8821ea5dba1b75084310957c4b9

See more details on using hashes here.

Provenance

The following attestation bundles were made for secantusdb-0.5.4b237-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.4b237-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for secantusdb-0.5.4b237-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 0659a1102ed6b56fd3c075b3d060ae92e89cc8c959c29d149db96e73aa6814c7
MD5 e74c6b02a44147714ef33696d77dc494
BLAKE2b-256 3ee5738a20b4a68c611ada9cef71e4de46042ddb764c5493dedb92d265fcb493

See more details on using hashes here.

Provenance

The following attestation bundles were made for secantusdb-0.5.4b237-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.4b237-cp312-cp312-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for secantusdb-0.5.4b237-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 6a0a3ab023788e559300585bf3eb7a2429f22534342db02c15e0854b9f44605f
MD5 a29242fd2a59760a37d3a759ca0b79d3
BLAKE2b-256 bd92aa2035fdf1b56ec10a00c8d1529069038ee567336c7a40f33e5994b6d8b3

See more details on using hashes here.

Provenance

The following attestation bundles were made for secantusdb-0.5.4b237-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.4b237-cp312-cp312-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for secantusdb-0.5.4b237-cp312-cp312-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 4265a0d013313c2e0988136e35417554f7ae10659bdc0d7d31382b51423789b3
MD5 9923caa173c19280c9c5f7addc9959e4
BLAKE2b-256 3b4001c0055514682fbca8f35da493dce944e6a798e1153b0bcda0d3e604ab53

See more details on using hashes here.

Provenance

The following attestation bundles were made for secantusdb-0.5.4b237-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.4b237-cp312-cp312-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for secantusdb-0.5.4b237-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 373b973bb47816fb189bbcb16e85dcd2ce9692396854300f350ce61461899078
MD5 9f806c171b47ac706beed983ad3af90f
BLAKE2b-256 d8eeae1364ea3cae94884d941d0902f374dbe585f9f77bf99c3b3464f0cf7f37

See more details on using hashes here.

Provenance

The following attestation bundles were made for secantusdb-0.5.4b237-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.5.4b237-cp312-cp312-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for secantusdb-0.5.4b237-cp312-cp312-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 bedab6ce0145c2645fda9ec6e70f3975c0c80b390152cc006397fa79afc3aae1
MD5 2044c00a3551d72ee5712b2c054cff0c
BLAKE2b-256 6b3e080aa0da0de7cec7bacd12707c4a25c7f3cf264a4e47c8b7d99aab58cdc4

See more details on using hashes here.

Provenance

The following attestation bundles were made for secantusdb-0.5.4b237-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.5.4b237-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for secantusdb-0.5.4b237-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 79a613c04b63977ceecb7954e49797edcdf3123ddcd20019c3a1902f91840ef7
MD5 5a25721459af93ff76dfe28ffd821aa8
BLAKE2b-256 9fca60b194900a6352c6fcca3a2fa5ddd91723721dd5924718d34e50704cf152

See more details on using hashes here.

Provenance

The following attestation bundles were made for secantusdb-0.5.4b237-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.4b237-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for secantusdb-0.5.4b237-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 4ae78d8de0a647da8e632a7f7353494624fd0faf9852da21fdf11e64b9228389
MD5 e198b01db850451268fca58931c6b42e
BLAKE2b-256 32b40be13660523587917932954f63fc73fc3fd804b78328388c1cc56a285c9a

See more details on using hashes here.

Provenance

The following attestation bundles were made for secantusdb-0.5.4b237-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.4b237-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for secantusdb-0.5.4b237-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 9c37474098cd1fae0dc82aa4fa703a87a44b2a84f7c42748819e4ad2a9feef47
MD5 03e4a6bb5fa2322da5fb38e9e2c6bc9e
BLAKE2b-256 e0345f211c6c79b12a89b5c4f28f4a3003440900d43768bda121c0a981688d2b

See more details on using hashes here.

Provenance

The following attestation bundles were made for secantusdb-0.5.4b237-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.4b237-cp311-cp311-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for secantusdb-0.5.4b237-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 d2ff2478a24763cec78be160db0fb1beed8138b9fee1836be78d3ebbccedb554
MD5 8c27713a124bfddf1150c1afdf10801d
BLAKE2b-256 ce97e0de0a6d8aefafe8241f4f3034927c503375ddbf9d332e0a28cadd9d2eaa

See more details on using hashes here.

Provenance

The following attestation bundles were made for secantusdb-0.5.4b237-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.4b237-cp311-cp311-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for secantusdb-0.5.4b237-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 3249c8c1096b1d6f31f44822a5614f8c563731aad2dab9d5b29b0ea4052231b1
MD5 9e1fa7fe4f2a5d394c5a4c1067ed0de2
BLAKE2b-256 101599ecd3bca51b0f2478ef832e537f73c45c4eaf79e2c9150d5e1850efb660

See more details on using hashes here.

Provenance

The following attestation bundles were made for secantusdb-0.5.4b237-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.5.4b237-cp311-cp311-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for secantusdb-0.5.4b237-cp311-cp311-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 fb8e3b6bcd80fa5b5ea0b548dad578d1c5e9c8c7a691e0145f5ce15f78973121
MD5 da037dfebfa6c59e2db44033e3c264e7
BLAKE2b-256 c2406d7f9ebb95ab6d8f5d0800eea82794fe8466303c03db38ca83605cffcb33

See more details on using hashes here.

Provenance

The following attestation bundles were made for secantusdb-0.5.4b237-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.5.4b237-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for secantusdb-0.5.4b237-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2e4d3749c16ecc53575ad145d2ca0b47f6df81954e44fff34d2a3eaf2dc90ceb
MD5 607e453e68104ecb764cc8d1793f2d8b
BLAKE2b-256 e5f7ed892e4c1d4c5d87e00b92ef30f91e8e0da5e4065279b41d54184703aefd

See more details on using hashes here.

Provenance

The following attestation bundles were made for secantusdb-0.5.4b237-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.4b237-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for secantusdb-0.5.4b237-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 82aa67a546ef16e67ded48be08387b33d4ec0883ebc67bda989be12ee89ec0ff
MD5 20c24d4b5d7e6f81c88a18c7d250bbed
BLAKE2b-256 c5eae4cf217e48027839e8b13e7ff5e880df175e8fe2add530f10130cdd03126

See more details on using hashes here.

Provenance

The following attestation bundles were made for secantusdb-0.5.4b237-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.4b237-cp310-cp310-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for secantusdb-0.5.4b237-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 b348d5bc57ad76a117130b26d5b76cf22ea3264b5e9e71145539c28bb529cc76
MD5 8e36838e0fcc31578a91271c2bcb10e7
BLAKE2b-256 8fe9e90f77b96c94d31a1a733a7317d9076dfc045b6bf7b0061a9814c3747ce2

See more details on using hashes here.

Provenance

The following attestation bundles were made for secantusdb-0.5.4b237-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.4b237-cp310-cp310-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for secantusdb-0.5.4b237-cp310-cp310-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 32f4c050389aaa2800d6ca1d8ce432600d8daa8b46eb97f500ae583d3e83ba5e
MD5 ea3e9f899dc16c9522cc61f7115d807f
BLAKE2b-256 ed70e8d5290ef27e3c6dc617212b20bbd25c8fb8fb0f9b4a07ca9d75471570c6

See more details on using hashes here.

Provenance

The following attestation bundles were made for secantusdb-0.5.4b237-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.4b237-cp310-cp310-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for secantusdb-0.5.4b237-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 08410560b7844feff32ee732f032475120692299a83cc5894793622ef39a3822
MD5 1d2ce3d7bd6faff03b307ce3760a1d50
BLAKE2b-256 cd5ca698129c0ead7a047ee93027c55010e17baf1365b19235f7a6891c353ab4

See more details on using hashes here.

Provenance

The following attestation bundles were made for secantusdb-0.5.4b237-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.5.4b237-cp310-cp310-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for secantusdb-0.5.4b237-cp310-cp310-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 7bbd160fca4c95bcdc4a296f23964bed0d77c0f75e82d410aea1546bd3a3e5bf
MD5 dd5abe7f65869b4b3d54e6ff81d032c6
BLAKE2b-256 02557bf591beaef756c8a24037af6030ac004f339858905232fb620549453d30

See more details on using hashes here.

Provenance

The following attestation bundles were made for secantusdb-0.5.4b237-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.5.4b237-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for secantusdb-0.5.4b237-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e1130b0261da2cc11b49f11b2f75b9d3bfb714c752b265423cc740b6bf0089bb
MD5 1f11749fd19db696d2aa725b918b2834
BLAKE2b-256 f338aec7d452aea23807a35ae6ef697fbe84fde816ba9c0bbb4c879fa41ab2de

See more details on using hashes here.

Provenance

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