Skip to main content

An embeddable, MongoDB compatible, document database, built on WiredTiger

Project description

SecantusDB — the SQLite of document databases

Status: beta Tests: 584 passing License: GPL-2.0-only (code) + CC-BY-4.0 (content) Python: 3.10+ Documentation

[!WARNING] Beta software.

SecantusDB is past initial proving but the Python API surface (CLI flags, public class signatures) may still shift before 1.0. The on-disk format is WiredTiger's — the same engine MongoDB uses — and the schema we layer on top (collection / index / oplog tables) has been stable across releases; the test suite runs against real on-disk WiredTiger storage and the persistence tests explicitly verify close-and-reopen round-trips. That said, we don't yet ship a migration tool or a formal compatibility guarantee, so please don't put production data here yet — production deployments that need durable data across upgrades should still run a real mongod.

Drop-in MongoDB for single-node applications. SecantusDB is a real MongoDB server written in Python: it speaks the MongoDB wire protocol on the same TCP socket a mongod would, so any standard MongoDB driver or tool — pymongo, mongo-go-driver, mongosh, mongodump / mongorestore — connects unchanged. Point a MongoClient at it and your application code doesn't know the difference, as long as the application only needs single-node behaviour. No mongod to install, no port conflicts, parallel-test friendly, embedded or as a standalone daemon (secantusd-py).

Single-node only by design: replica sets, sharding, and anything that depends on real cluster topology are out of scope. Within that single-node scope, SecantusDB is the database your driver thinks it's talking to — same handshake, same wire frames, same error codes.

from pymongo import MongoClient
from secantus import SecantusDBServer

# On-disk by default at ./secantus-data; pass storage_path=":memory:" for ephemeral.
with SecantusDBServer(port=27017) as server:
    client = MongoClient(server.uri)
    db = client["mydb"]
    db["users"].insert_one({"_id": 1, "name": "Joe"})
    assert db["users"].find_one({"_id": 1})["name"] == "Joe"

Storage engine

SecantusDB uses the same WiredTiger C library mongod ships — vendored at vendor/wiredtiger/ (mongodb-7.0.33), built from source into the wheel, called via WT's official Python SWIG bindings. There is no Python re-implementation of the storage engine: B-trees, page eviction, write-ahead logging, durability, on-disk format are all pure WiredTiger. Your data lives on the same battle-tested engine mongod uses.

That doesn't make SecantusDB as fast as mongod — the layers above storage (command dispatch, query planner, aggregation pipeline) are Python, and a like-for-like benchmark currently has SecantusDB ~4×–17× slower per operation than mongod. CRUD reads sit near the lower end of that; bulk update / delete and aggregation sit at the upper end where Python loop overhead dominates. See docs/benchmark.md for current numbers and methodology. The right use is tests, dev, embedded apps, and single-node prototypes where conformance + WT durability matter more than per-op latency.

What's in scope

Everything a single-node application needs from the wire — the handshake (hello / isMaster / ping / buildInfo / ...), CRUD (insert / find / update / delete / findAndModify / count / drop), cursors with getMore / killCursors, aggregation pipelines and the expression language they need, and change streams (single-node, oplog-backed; collection / db / cluster scope; resume tokens; fullDocument: "updateLookup"; pre-images via fullDocumentBeforeChange; blocking awaitData getMore). All backed by a real query planner with index acceleration — single-field, compound, mixed-direction, partial, TTL, sort — proper explain output (IXSCAN vs COLLSCAN), and a hash-join $lookup.

Authentication: SCRAM-SHA-256 — MongoDB's default since 4.0 — is implemented end-to-end on the wire, alongside native TLS / mTLS and the MONGODB-X509 cert-as-username mechanism. Off by default; flip SCRAM on with secantusd-py --auth (or SecantusDBServer(..., require_auth=True)), provision users with createUser, then connect with the standard MongoClient(uri, username=, password=) shape. See Authentication. Authorization (RBAC) is not enforced — an authenticated principal is currently treated as fully privileged — and LDAP / Kerberos / GSSAPI / AWS / OIDC auth mechanisms are out of scope.

What's out of scope: real replica sets, sharding, RBAC, auth mechanisms beyond SCRAM-SHA-256 / MONGODB-X509 (no LDAP / Kerberos / GSSAPI / AWS / OIDC), OP_COMPRESSED, text / hashed / wildcard indexes, and $where / $function / $accumulator / mapReduce (no embedded JS runtime). If you need those, run a real mongod. Native TLS + mTLS, multi-document transactions (with WiredTiger-native rollback), and geo support ($geoWithin / $geoIntersects / $near / $nearSphere, $geoNear, 2dsphere and 2d indexes) are all in scope and shipped.

SQL / PostgreSQL interface (opt-in)

SecantusDB can also speak SQL over the PostgreSQL wire protocol. Install the extra (pip install "secantus[sql]"), start a SecantusPGServer — optionally sharing the same storage as the MongoDB server — and connect with psql, pg8000, or SQLAlchemy over a postgresql:// URL:

from secantus.sql import SecantusPGServer

with SecantusPGServer(port=5432) as server:
    ...  # SELECT / INSERT / UPDATE / DELETE, JOIN, GROUP BY, transactions, ...

Or run it as a standalone daemon — pip install "secantus[sql]" puts a secantusd-py-pg script on your PATH:

secantusd-py-pg --host 127.0.0.1 --port 5432 --storage-path ./secantus-data

SQL is compiled down to the same query / aggregation engines the MongoDB side uses, so it inherits index acceleration and the type system. A collection written with pymongo is queryable as a SQL table with no CREATE TABLE (schema-on-read), nested documents surface as jsonb (->, ->>, #>), and BEGIN / COMMIT / ROLLBACK are real transactions. Auth (SCRAM-SHA-256) and TLS work the same as on the Mongo side. See SQL / PostgreSQL interface for the supported-SQL matrix and examples.

Installation

pip install SecantusDB

Pre-built wheels are published for CPython 3.10, 3.11, 3.12, and 3.13 on:

  • macOS arm64 (Apple Silicon)
  • Linux x86_64 and aarch64 (manylinux2014 / glibc, and musllinux_1_2 / Alpine)
  • Windows AMD64

macOS Intel (x86_64) is not in the wheel matrix; use a from-source install if you need it.

WiredTiger is vendored inside the wheel — no separate package, no compile step, no system build tools required.

Building from source (unsupported platforms only)

If your platform isn't in the matrix above, pip install SecantusDB falls back to the sdist and compiles WiredTiger from source. That needs three native build tools on PATH:

  • cmake (>= 3.21)
  • ninja
  • swig (>= 4.0)
Platform Install prerequisites
macOS (Homebrew) brew install cmake ninja swig
Debian/Ubuntu sudo apt-get install -y cmake ninja-build swig
Fedora/RHEL sudo dnf install -y cmake ninja-build swig
Alpine apk add --no-cache cmake ninja swig build-base

See Installation for dev-install instructions.

The Rust server (separate)

SecantusDB ships two separate servers on independent version lines: the pure-Python server (this package's SecantusDBServer) and a self-contained Rust server that speaks the same wire protocol off the GIL. You run one or the other — there is no in-process engine switching. The Python server is always pure-Python; the Rust engines live only in the Rust server.

The old in-process accelerator (SECANTUS_ENGINE=rust / SecantusDBServer(engine=...)) has been retired in favour of this two-server split.

The Rust side is a Cargo workspace under crates/: a pure-Rust engine crate (secantus-core, no PyO3) reused by the Rust server and the standalone secantusd-rs binary, plus a thin PyO3 bindings crate (secantus-core-py) that builds the secantus-core wheel — the vehicle that pins each Rust engine byte-for-byte against its pure-Python counterpart.

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

The Python server is the conformance leader and the default choice: it passes 99.2% of pymongo's own test suite. The Rust server runs the same unmodified suite and currently passes 92.0% — it's faster per operation (see docs/benchmark.md) but is still closing the gap. The features the Rust server doesn't support yet — showExpandedEvents DDL change events, large change-event splitting, read / write-concern semantics, timeseries _id non-uniqueness — and a side-by-side of when to pick each server are spelled out in The two servers.

Standalone daemon (drop-in mongod replacement)

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

secantusd-py --host 127.0.0.1 --port 27017
# storage at ./secantus-data by default; pass --storage-path :memory:
# for an ephemeral temp dir cleaned up on shutdown.

The same pip install secantus also puts the standalone Rust server on your PATH as secantusd-rs (same flags, same wire protocol; see The two servers) — on Linux, macOS (Apple Silicon), and Windows. Intel-Mac wheels are pure-Python.

Then point any MongoDB driver or tool at it — no application code changes, just the URI:

mongosh mongodb://127.0.0.1:27017
mongodump --uri mongodb://127.0.0.1:27017 --out ./dump
from pymongo import MongoClient
client = MongoClient("mongodb://127.0.0.1:27017")  # same code as for mongod

The conformance gauges back this up: the official driver test suites run unmodified against SecantusDB — see the conformance validation summary.

Examples

A walk through the operations a typical application exercises — connect, insert, index, query, drop. Full version with explanations: examples in the docs.

from pymongo import MongoClient
from secantus import SecantusDBServer

# Ephemeral here so the snippet is self-contained; the production default
# is on-disk at ./secantus-data — drop storage_path or set a real path.
with SecantusDBServer(port=0, storage_path=":memory:") as server:
    client = MongoClient(server.uri)
    cellar = client["wine_cellar"]
    bottles = cellar["bottles"]

    # --- Insert ---
    bottles.insert_one(
        {"_id": 1, "name": "Pommard 2018", "region": "Burgundy", "year": 2018}
    )
    bottles.insert_many(
        [
            {"_id": 2, "name": "Brunello 2015", "region": "Tuscany", "year": 2015},
            {"_id": 3, "name": "Barolo 2017", "region": "Piedmont", "year": 2017},
            {"_id": 4, "name": "Pommard 2020", "region": "Burgundy", "year": 2020},
        ]
    )

    # --- Indexes ---
    bottles.create_index([("year", 1)])                     # single-field
    bottles.create_index([("region", 1), ("year", -1)])     # compound

    # --- Query ---
    drinkable_now = list(
        bottles.find({"year": {"$lte": 2018}}).sort("year")
    )
    assert [b["name"] for b in drinkable_now] == [
        "Brunello 2015",
        "Barolo 2017",
        "Pommard 2018",
    ]

    by_region = list(
        bottles.aggregate(
            [
                {"$group": {"_id": "$region", "count": {"$sum": 1}}},
                {"$sort": {"_id": 1}},
            ]
        )
    )

    # --- Drop ---
    bottles.drop()                              # one collection
    client.drop_database("wine_cellar")         # whole database

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.0b3.tar.gz (11.8 MB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

secantusdb-0.6.0b3-cp313-cp313-win_amd64.whl (14.6 MB view details)

Uploaded CPython 3.13Windows x86-64

secantusdb-0.6.0b3-cp313-cp313-musllinux_1_2_x86_64.whl (17.3 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

secantusdb-0.6.0b3-cp313-cp313-musllinux_1_2_aarch64.whl (16.3 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ ARM64

secantusdb-0.6.0b3-cp313-cp313-manylinux_2_28_x86_64.whl (17.1 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ x86-64

secantusdb-0.6.0b3-cp313-cp313-manylinux_2_28_aarch64.whl (16.1 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ ARM64

secantusdb-0.6.0b3-cp313-cp313-macosx_11_0_arm64.whl (15.0 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

secantusdb-0.6.0b3-cp312-cp312-win_amd64.whl (14.6 MB view details)

Uploaded CPython 3.12Windows x86-64

secantusdb-0.6.0b3-cp312-cp312-musllinux_1_2_x86_64.whl (17.3 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

secantusdb-0.6.0b3-cp312-cp312-musllinux_1_2_aarch64.whl (16.3 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ ARM64

secantusdb-0.6.0b3-cp312-cp312-manylinux_2_28_x86_64.whl (17.1 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ x86-64

secantusdb-0.6.0b3-cp312-cp312-manylinux_2_28_aarch64.whl (16.1 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ ARM64

secantusdb-0.6.0b3-cp312-cp312-macosx_11_0_arm64.whl (15.0 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

secantusdb-0.6.0b3-cp311-cp311-win_amd64.whl (14.6 MB view details)

Uploaded CPython 3.11Windows x86-64

secantusdb-0.6.0b3-cp311-cp311-musllinux_1_2_x86_64.whl (17.3 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

secantusdb-0.6.0b3-cp311-cp311-musllinux_1_2_aarch64.whl (16.3 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ ARM64

secantusdb-0.6.0b3-cp311-cp311-manylinux_2_28_x86_64.whl (17.1 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ x86-64

secantusdb-0.6.0b3-cp311-cp311-manylinux_2_28_aarch64.whl (16.1 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ ARM64

secantusdb-0.6.0b3-cp311-cp311-macosx_11_0_arm64.whl (15.0 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

secantusdb-0.6.0b3-cp310-cp310-win_amd64.whl (14.6 MB view details)

Uploaded CPython 3.10Windows x86-64

secantusdb-0.6.0b3-cp310-cp310-musllinux_1_2_x86_64.whl (17.3 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

secantusdb-0.6.0b3-cp310-cp310-musllinux_1_2_aarch64.whl (16.3 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ ARM64

secantusdb-0.6.0b3-cp310-cp310-manylinux_2_28_x86_64.whl (17.1 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ x86-64

secantusdb-0.6.0b3-cp310-cp310-manylinux_2_28_aarch64.whl (16.1 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ ARM64

secantusdb-0.6.0b3-cp310-cp310-macosx_11_0_arm64.whl (15.0 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

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

File metadata

  • Download URL: secantusdb-0.6.0b3.tar.gz
  • Upload date:
  • Size: 11.8 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.0b3.tar.gz
Algorithm Hash digest
SHA256 0f21ce701ac8beb55d7f60b1212575713defb8765adeb1ff9ab75b36a2b48f4d
MD5 355b8a7285a15b3b3a3e34c809c5fbac
BLAKE2b-256 06e9983728bd8e548d7845f05f1192013b2736e2e2a80714cbef085185f4d676

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b3-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 50fcb43d5930de28e70cf99146d38bd15afb0c98723af63f3cf8005c8b0cb8c3
MD5 6ecd519293e6a0b84d33dd820620d83e
BLAKE2b-256 f1b6ef46b263c37b1b47f1e1407d6c6e23786d9a0aa8788cea12cb4f005cdd2a

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b3-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 917c9456f9b63f2297229ce8808983881bffe0e19b40978f0a862cdc9f561085
MD5 301811f3a9ab905ccb0c7d46f84fbd09
BLAKE2b-256 5fc8d3c85ef2ba26edf66ec267a55b874bfeb48cb0aedcadef38efb17508e886

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b3-cp313-cp313-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 8c05155e23b641e7e418e30f67d81da441ea077819eadfe0e8993a7a869fab8f
MD5 a16b27b2881dce2dd9119a5fee3010cf
BLAKE2b-256 5813a658f4dbc3aea641c572d18d15ac7f2031ecb79d3999cda259e77f822bdb

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b3-cp313-cp313-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 e82a5659b0a20001e2fd45817c309d88421de892023f89becd8e425bab0d6887
MD5 66b03def4d271243a123b397a9a1208e
BLAKE2b-256 d00ef9ae63a4f130af422f214b60cbbb10c6412b1a58f18b2f10042c36eaad7b

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b3-cp313-cp313-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 cb86a2e4c567e5c3e53dadb0f08690ca93a9f8298a05049fee5a0cd4c7590a23
MD5 0576d56854bb041bc29bfb0ded998ba6
BLAKE2b-256 5ee82737c98a98831bd367500c71414daf2371bd0970b4a80a6545fb96ae1183

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b3-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a0aa0c0fb81307a5c6e95b590590b869facfe83a1edc2a0ff1def800958bd661
MD5 1c8985fc431652bb3f6d37dd0ce01af2
BLAKE2b-256 a5a41a605ca929b1283551a044090ed50f70ad4e1068ef2fd745108470a63258

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b3-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 bc774f735c37b660ab46c9e1890fc66b2cbd72fad25fa3ebb881c1ba913c7b05
MD5 020e0af7f23abc2293fdf4952b0eb2d6
BLAKE2b-256 337d957e9b0f184a8a0fa39366b1607aa299be643c07fd356703673cd7ba5f0a

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b3-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 a58eb44b761dc68fd687e21fe6b6501e94d8883a9230c19327c4b79c67f0116c
MD5 65eaac093024510b83aa3c5f3963c78f
BLAKE2b-256 8e290932a39bb66e9dac84eba74384248823e194d35213a15b56645435942ad2

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b3-cp312-cp312-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 705306abc8a20e8e2a615e33c4eeb1531c188e55b288afec89c562f2f1a66fed
MD5 3a448b41ff78e1a4c028852fc6bb6d83
BLAKE2b-256 4786e09d794f25c907ec6fbca745ee106d523337d40cddcd69cf0048b256f875

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b3-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 60139ee36d54599399549adeccaf847bd6a2232c523e9ade7480a56991d0fe00
MD5 f3bad81bd4a96d216e74c63984b6f0d1
BLAKE2b-256 df660ce87917b1d3a32e18f13cdf004a71d0c46e1ba3607fab643e00a060cf1b

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b3-cp312-cp312-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 5b69f27fe0bfcca43726a6d4d6677edae49032e2b55b19d93c56fc15514d8cbe
MD5 d5efc9d099d3218d24f55f8b3302bf36
BLAKE2b-256 5c0e57faf9e64b16c20f0fd1b0f23be1f919affb8f14de85b83e60e7ee0c50bf

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b3-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3992fd8b1d268c18def256ea3b05a26e0f04b797a20f9371eb3efe58e8568996
MD5 f601a5a9a28e27bf0a3f3d7d22fd3326
BLAKE2b-256 13a6694ed5eb7953690d26651db6173993fb3c56254ef5d1e26a7b5579ad69a3

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b3-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 e4f74e82ebeee8ff660d80ad1eaaacdb06e4e7b42199e06f5ff574dbb15a1a74
MD5 1e2cbfadfd70e608e04c0fdbc0becade
BLAKE2b-256 8ee9f21768d07af10c077a6a517b1122231ba7470bc616315ff66dbd5714626c

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b3-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 1c6bb7b007918763882b36153c4eae53b2811d25d112194bbbb1b1eb4e0549bd
MD5 e7b6f2cecf6673a04be985b0323564d0
BLAKE2b-256 a36fb0a765e0aeb238d2dfd5ec0bdebcfbd3b81d60ce6ec427926c0be6604b75

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b3-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 c8759c825cb54def04ab50a88690437b0c0885994a2cd1497b93e94df156b6a1
MD5 168b393a00c6b2c01d3e358716e97b8f
BLAKE2b-256 c0dc7efec4e54ab66c293f4eae761061e11625bf61a4eb395939d6c3e55cdaff

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b3-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 62e9505928333a8fb5308c7b46ca321274f48af66b1af306024f3ec9cae1e3e9
MD5 424a9718749ccd03932a7c24942abed3
BLAKE2b-256 a7bf52758567e9c667378de3adeb7d556e028549ab3c1d66b2c7a99df1e89504

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b3-cp311-cp311-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 3642f5054b701c102e52f878e5e72b12d5aa233bfc4a9522158628f5ea6d0ffe
MD5 d71e32f5e0cd0fe46c440550c4f28973
BLAKE2b-256 6d12db32f4fb29610a87fb9d05c2974c5dbb9f4fa1357d8eca143c2b832b74f4

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b3-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a5a6d70b30c56c8f8e3a6218528be15d0e2e41304eb4849eb13c76515f091c68
MD5 32e048e22dcbd60fd2884f91d2f91404
BLAKE2b-256 d44183aec88af1f9f4b51f24a0c54bf83f1ea551963b0c9b248d35fc86e2d1f5

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b3-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 d6c078d9ba6e090e9d357bce14df46624151b1a59ef5417a6cb4e8f6c604ac3d
MD5 45e1c9097bdd6a6e262b95a4b95a2965
BLAKE2b-256 fb2c9744f27f412d94cad5f6a90332a568dec9d130be1d710477704dfb81adb3

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b3-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 2aa53879dc08aa8473a1e5296ba3891c8380bbd6c9ad6bf10943dfa11234c746
MD5 bbd176e2482c5d695c4a3402a7fad67d
BLAKE2b-256 4e5a9a69e6807527eefc6cd80885e847126f7a9e40ad5a02692ca65882d3b0e2

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b3-cp310-cp310-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 eadc75a40953183bee9b1826ddfb33f90153beb5150cb37ad1418515134e4aa0
MD5 0bf5626f31c9762beef2a31c2c8232a9
BLAKE2b-256 ef8d303f20c92eb586eaf69324e6961cdc8bcdc8abc99ccc552a197d68e14808

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b3-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 1b83e2995bfdecf4607376ee2580b8e03561db4e7b1016fa7cb42595945abb71
MD5 3c193566063f222803dacb8b9a4ad692
BLAKE2b-256 068d29abcc4fe846c5e5037c16b5fe9cd4d3eb40e2567d993245ee021bb54f0b

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b3-cp310-cp310-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 ceffdd9921e2de66ee8615ff80dcad1d41a2aef75f17401d28c0f0e4f3aa5e06
MD5 8ca786f2bf2bb62ee8572fbb17682d57
BLAKE2b-256 4368f30a489ddba4e72299a32be8fe9e2cc73fcd0d40ec81c0dd4bbb5655774d

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b3-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 20f0fda17e33fec4422c12f51c92d36513568056f34f215d5ed3aa70e39b555e
MD5 d27b6516e0b2ee47e5b8d98856dd0141
BLAKE2b-256 525bdbec826d86718e642f7cc356f018fac0e6bd689ddebc08490bd04a660724

See more details on using hashes here.

Provenance

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