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.0b4.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.0b4-cp313-cp313-win_amd64.whl (14.6 MB view details)

Uploaded CPython 3.13Windows x86-64

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

Uploaded CPython 3.13musllinux: musl 1.2+ ARM64

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

Uploaded CPython 3.13manylinux: glibc 2.28+ ARM64

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

Uploaded CPython 3.13macOS 11.0+ ARM64

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

Uploaded CPython 3.12Windows x86-64

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

Uploaded CPython 3.12musllinux: musl 1.2+ ARM64

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

Uploaded CPython 3.12manylinux: glibc 2.28+ ARM64

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

Uploaded CPython 3.12macOS 11.0+ ARM64

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

Uploaded CPython 3.11Windows x86-64

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

Uploaded CPython 3.11musllinux: musl 1.2+ ARM64

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

Uploaded CPython 3.11manylinux: glibc 2.28+ ARM64

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

Uploaded CPython 3.11macOS 11.0+ ARM64

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

Uploaded CPython 3.10Windows x86-64

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

Uploaded CPython 3.10musllinux: musl 1.2+ ARM64

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

Uploaded CPython 3.10manylinux: glibc 2.28+ ARM64

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

File metadata

  • Download URL: secantusdb-0.6.0b4.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.0b4.tar.gz
Algorithm Hash digest
SHA256 e0d093fa8eaf50a76b883e12bfa4b289baeeb438196c2c0b5465418c87096c35
MD5 30ae160f185cb4f63897a13285071e69
BLAKE2b-256 52114041e4b72bcbbd4e5b5b71c360c8e26ae15bbb18b3dbcfff21fbf5cacf5f

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b4-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 a9e91c9a6690f6f171f1fcb5d77055186ab8f3fdb44b575e01ed3daef20d222b
MD5 87ae7b807fce4f40d701868a35cfd5a0
BLAKE2b-256 bc4c65704c85669930b400e54da4b411687dc483b0e173c23e349b28646fd0ee

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b4-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 9d598156840e190b1296ab47bcbe79bf3c2ef7485c14a4ab170ef07c980a42a5
MD5 3895ebd6147e69907f17b160d7f11780
BLAKE2b-256 b4fd2358df11fc085b35a44aa27a6986c8442917d3ec2e6e6376cc79fd8a6844

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b4-cp313-cp313-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 96a51624c4cfbf73ad32454f595bef31b28ff021a0621097073af4abc86431e6
MD5 012ca81bfd06cf711fa07bca26fea8ff
BLAKE2b-256 23679da3d1c6a5eae67817ff610978bba4f49375360a2557825312e5d27b5679

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b4-cp313-cp313-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a179331ff3208764f4458689f0fce4c25e4ddef33bc621c9eb169434faf2dfdd
MD5 b433db8278a87841ebbf787976ec6331
BLAKE2b-256 4e123ab534a0886e177c2f87f46e3edd064b159edc2a01fd7897c733528c1c35

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b4-cp313-cp313-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 f3f44e7804ec5569bed0a1514c0ce8a8895f12e75ad1be43e501a8c0729c4f9b
MD5 122a244f9f025c76e4430ae4d9494652
BLAKE2b-256 80b7f9d0aeebae978a3efc61caaa313c857cc73917d134bacba485407e558097

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b4-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 291f9ba83991371fe1ef8e76c77e2a52bb18318a304e4690250f0b486dc7b76a
MD5 59d6ea1d8e21cfc43bff23eb7d703506
BLAKE2b-256 a0bbef59ab2a78ca8df6dc83d77077b6371e53626f855b717811e4538d619e08

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b4-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 43137dbf6ea300d88f09d9dd0a04ff68f92e1fb934f0bc63351f2862706631fc
MD5 a47910fede0720e2c57c40066977fbc8
BLAKE2b-256 7653300569d01aa9be0ab75dcb02a1842496ffe81de1f0ab6d5f00a276494861

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b4-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 45784ce02932546ee1151388c01681fff7bac00ef0239ee5343f927eb0a3a5e2
MD5 0fd2553ee91a695afc41306b510b914a
BLAKE2b-256 5ee24e970d54ae61de67f2b34dc2130c217679a85936bc7af5a461ed247c231e

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b4-cp312-cp312-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 8bdf93b3cda8160d5b4d0e7314e7b9898f3145f3a68ec3e8633f1ccdf0bd09b9
MD5 089d33d595fd356d4d25c78264c35a27
BLAKE2b-256 5032ca5904b6940d8aa84421b984edde0d0f09f5b9b63ae17275387885c74d3d

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b4-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 c51cb7077ff53cc2030db7953b75543b773b7a63063d94e8568b4264225c2c0b
MD5 8ca22de0b0aca08c175b59331b300855
BLAKE2b-256 4fe8310924a2121e72cef081e8acdff97c1d42a3ac84340b51daff34cb6254c7

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b4-cp312-cp312-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 46cd8106a408eb2e08deeae3bc95cbc23eed2127cc3198a5fc3e9e51acabcd33
MD5 8846503dca46345ba76b880be7daac03
BLAKE2b-256 4148a246c6129a01feb0d9b065d5df19dfc73cb27e8501a8bad42410714a7516

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b4-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d6f1177f725c2876964b70b976e612f86544d7135d916d603856dbacf204fcc9
MD5 68cb9dbeece30f4f1497ed0fce92469a
BLAKE2b-256 f51e7a02edd739f1665791f2b90b2bb6afcfcb0af4715fb61409bdf2cc1f4c1d

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b4-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 fe6c0c614349573330ba7e4228d2495e51b268776f47bec77bfde1bb11b2a46c
MD5 2e9c5e4e2f9763490beb97867db20fba
BLAKE2b-256 58e2a2593173925642f383530a35b2aed4d1ca16fa93cebf9c08c1b33dbd9735

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b4-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 7b841b41ad1fe57736c82f4bfee816cdf049aa0b8c171be1f28719915126d8b1
MD5 a5e9956ce0c2c4a737cd7c9d4acac3ab
BLAKE2b-256 78c321818bf9f2146a52e6651c559e0db5ab16bdf9e28267b5fcaecefc2ea7c7

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b4-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 4a23919c47d485cd1c0be134b1b337b44f8ba4e72fb08370136e6c12b216bdc2
MD5 42d838dbcae26e742db3f361c5385a3e
BLAKE2b-256 d9ed0cc3c61ef73d45ee91242d21dc71008bdd27929f00dd4703f214740dee45

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b4-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 24739783b1981de1fef047542326445b054c75216f8224ee93a56a2b7cb49839
MD5 280b8130107bdc30b89ff2d4b28b22c2
BLAKE2b-256 39ee2a85993c0b75cecb65c9fae19de925c1a02ac2561e67f50f8115e72ab5d5

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b4-cp311-cp311-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 93f33dde822dbc3cedd7e750f828b8855791ed8c4a48f38f877f514c1506b1bc
MD5 e6071903612d89e185ecde77c4e83205
BLAKE2b-256 d2dcfd4ceccc9ad008360d83b3885011db9bc9220936f89133faa04c4589ca01

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b4-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1c1bc7d42a2281c6355725c8dc9c6f481c705d064138f021b9e1bba767386daf
MD5 54d5b25fff31a1c40f0101dd49820172
BLAKE2b-256 2f7078113b2329e4a7ad35ce3257073fd631de2f2b23102b05d38edcc16fa0a6

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b4-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 8645406c487f7c02c20df91c3bbc9777ea2c3d658ff0483b7eb2b4302ee8f368
MD5 a76224e2cd99aafd7fc0f4a0817d6668
BLAKE2b-256 e8325e3e566d490ddd89b08587579bda320bcc9ed3bbfaa0dd9798674e7c39ed

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b4-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 91fbb365fd44e33ce3c612c638c29f55fa2901005c72afcd7adf3dd5cfcb45f1
MD5 908c7a5a50dc60671ebe6963db3a6761
BLAKE2b-256 eebcb3e16dbda56e60c321b3f4b834d5beb1d60d806a9ae0141458d5202641e9

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b4-cp310-cp310-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 e09c72310618a664dab74130db680f4b079c09dc47231c77dc869d7e98d71296
MD5 4db024961fe19fc4b40d618117d50c9d
BLAKE2b-256 0480271df2600fbfbd170c899e1d480d36fa4e4726dbaa22484269540f27460b

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b4-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 4be8d84ef135fda4e7ae1393a0df6e80b40d3f7b0a1d900d4c8648cf97a1632c
MD5 c2f7350827e8d60635368d209d31d9a3
BLAKE2b-256 000e1d7815e050f26186524b89b456586e089137a87c09804c0bc459d79a681c

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b4-cp310-cp310-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 7b26b4c5780060edce933f33166167415dc1f999e351b4df273f86d2da62ebdf
MD5 836026141e9e4c6191a0102a02964f75
BLAKE2b-256 26ec34ab5bece87aa6ac6d645c7d9f5772c1bb2e3e0b3fb36865f59904d7d40c

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b4-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3a32319eacf580204015931407f0a1bd02b93915924633bd202dc6e886faa40b
MD5 79dd1f050ba3ba3e17193cde77d33c8c
BLAKE2b-256 4f0978c4b41040a7281efe6d7b29be0cb3a9a7e5e5369ea4add6c771d700843b

See more details on using hashes here.

Provenance

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