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

Admin web UI

An optional local console — browse collections, watch live metrics, tail change streams, inspect query plans, manage users, and take backups (including point-in-time recovery) against any SecantusDB or MongoDB-wire server you already have running.

pip install 'secantusdb[admin]'
secantus-admin --uri mongodb://127.0.0.1:27017
The SecantusDB admin dashboard: live server metrics, operation counters and per-second charts.

It's dev-tool shaped, not a production console: loopback-only, gated by a local token, with every script and stylesheet served from the package. See the admin UI docs for a tour of all 22 pages.

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

Uploaded CPython 3.13Windows x86-64

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

Uploaded CPython 3.13musllinux: musl 1.2+ ARM64

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

Uploaded CPython 3.13manylinux: glibc 2.28+ ARM64

secantusdb-0.6.0b5-cp313-cp313-macosx_11_0_arm64.whl (15.1 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

secantusdb-0.6.0b5-cp312-cp312-win_amd64.whl (14.7 MB view details)

Uploaded CPython 3.12Windows x86-64

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

Uploaded CPython 3.12musllinux: musl 1.2+ ARM64

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

Uploaded CPython 3.12manylinux: glibc 2.28+ ARM64

secantusdb-0.6.0b5-cp312-cp312-macosx_11_0_arm64.whl (15.1 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

secantusdb-0.6.0b5-cp311-cp311-win_amd64.whl (14.7 MB view details)

Uploaded CPython 3.11Windows x86-64

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

Uploaded CPython 3.11musllinux: musl 1.2+ ARM64

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

Uploaded CPython 3.11manylinux: glibc 2.28+ ARM64

secantusdb-0.6.0b5-cp311-cp311-macosx_11_0_arm64.whl (15.1 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

secantusdb-0.6.0b5-cp310-cp310-win_amd64.whl (14.7 MB view details)

Uploaded CPython 3.10Windows x86-64

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

Uploaded CPython 3.10musllinux: musl 1.2+ ARM64

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

Uploaded CPython 3.10manylinux: glibc 2.28+ ARM64

secantusdb-0.6.0b5-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.6.0b5.tar.gz.

File metadata

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

File hashes

Hashes for secantusdb-0.6.0b5.tar.gz
Algorithm Hash digest
SHA256 851bcb307652230f04b18b47dea3ddfb0363585647e7023c929fba0d4dfd7538
MD5 cad1c483ed52a59477734d07fac68f32
BLAKE2b-256 04261bc3679cf34103ca329d8cdda84dfc2af540a32c108aed48e644608c34e2

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b5-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 7e31aecf95993e03ef0eb4d3601969a33ca4db9e5e51f83ac350b3c384125b04
MD5 0a26dd5fb6ae0ca29f281b64e7c87bd9
BLAKE2b-256 921c226461eec3d1cd52df5f63f330403780176d3b3c5ba71e8df26a4eab3662

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b5-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 896337759330cfef8d4529721c979f30bd96ff01aff82f9c6c737c9fc5711a86
MD5 bf264903ecda12ec45eab640488ce8e8
BLAKE2b-256 99285c172296dd34b3d8a85a15c6f346734ab367ebd665afe11ea06b0fd08bc7

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b5-cp313-cp313-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 6068a275dfc64b8093f8165f11b993aa7eb50c324d3c6e921b64bed1b98f7811
MD5 44785cf525442594ede9c8c312b2807b
BLAKE2b-256 e1ccffe6a2ffcc20613690280a7aa711ca4e0e80cab7e0184257848e0f20db1c

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b5-cp313-cp313-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 cb02e54d1767db0d411249049be8b3dc9184a78830fada5264294eb16e52e9fe
MD5 45b3b9733981b7a07b79129b812184e3
BLAKE2b-256 718809ac4b37dd098b10986dfd6a66753418e60f9ecd70743bbe249483effc13

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b5-cp313-cp313-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 a8466ff5b8b1657d12f54807c88df91ce67d245b6cebd0107233123102ecd74e
MD5 8351f1224fbee49b962096b1a3b2d0cc
BLAKE2b-256 bc397797d223dfffc8799ecae8f602d17b380645a0339ae0ec850102c339db2d

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b5-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 851192043ee181ed0a2b5b1047e5313d0df7d6801967ddd1feab731fc2cb8828
MD5 de57fc3b0f0dadd083b765f0a0dba869
BLAKE2b-256 b88d18a049b0f7f07272ed4d0f5296cfc1d271b1decf9e75999663098cc0415b

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b5-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 d767968fb010f6190ead83bd86bcc6760d8db231b360c0900e6ac67a6447b818
MD5 a397bc26000ba92d8906d38505cbfb79
BLAKE2b-256 c8050c49fc28287248e795c0e996f5adb102992e109ad11bbb3bcbd59b12ce11

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b5-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 6a046c49517cbc6593ccc8a035d8a778c01410f26e691f33f87f70a669afc466
MD5 f9dafed09ebfce17564982a56d8c1995
BLAKE2b-256 1d5a1940c5a155ad7aab5de305fa71edb7633e67a825f3fb466b2110a87bbcdb

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b5-cp312-cp312-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 1ec305f967269119388f4bb0a6e3b092447edc0adb51e00735823ff54a4a2ace
MD5 8fd013cd614241a4279a393eea531c64
BLAKE2b-256 ceb0424778481136c9ff620874ba5848e5c52839eb331ab1f8271f8aa7127dfa

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b5-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 320aab7817951ef88e817347eaa7095403df28160da51892d460a09698e9694f
MD5 5eadab7292dc3c3e8688b879229236e7
BLAKE2b-256 967fe8295d75e27f4a47097105010059f7bc63dbf2b5b58ecf2203606e71ba31

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b5-cp312-cp312-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 d4fea6ef0766dedcb553b75b6b51e470a0987a750147c48a4ffa5cd4dff640ea
MD5 0450c1e35e378287b6305051a9591e28
BLAKE2b-256 3a4cb688c8e452462f263a2bd466b27737ac8f80dbdcc40e00e5281b8c686277

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b5-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d02770477a7f098ade5c79866651c89f324e7b2dc54a21d1e5a65e454e55e42a
MD5 b6416c683454deac800cba4d43f3caed
BLAKE2b-256 47b118d6ef69382292e9be778ad574054015a7f3c07c43fbab46b7bd8b5a98a4

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b5-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 085cf596fde71d9e6e31660bd72f3d651037442887d6897abc090083120cd2e5
MD5 b9912946da979f34349b030abd05ad20
BLAKE2b-256 2af85b23279d6d4862f14234ae7376d4975d53b72f481d4cd4bd9df07a67844a

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b5-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 dc8a251d0141282e938a5737bb013135a8a95f74154cb6c9b4b9371d5f743e19
MD5 a5b3033c7595a0bc365d53f15a69a75f
BLAKE2b-256 1d9167d552c695bf68d8bf586711e5d2aa5906663e9294ea2aff04865e5d93e6

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b5-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 c6bc1cc8bda03d6ab8ca65e3c605abfcfd9ab44bf9f462488f150ed5daaead78
MD5 cb792f4739876c66d859d115df39e1a6
BLAKE2b-256 c659cc1f6fc91eb483bc588a99669f0ea440b5020785e8afa6a5f639921e4a07

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b5-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 2a241a918647a628939fcd91641a4795a830b3c185627474d9e95e49f4ecb0ec
MD5 bf023a96b393328980e6a7b9adcc773a
BLAKE2b-256 6089652da4cf14b017a50802c31fba6703443e45c2972212327912e7fd4f6486

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b5-cp311-cp311-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 0b9a15915aa3084c699e74b1c6210442dda9f9ce122537306f1f1c40ea250061
MD5 642a5f46fb997905cfa47f4e91815a35
BLAKE2b-256 1cf7faabd1d3554f8dc791fb577faa381af625b27cc0b9c2adc19b33f0f024e0

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b5-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4da49907bf8abcef82d1dde33dc153d8707f703b2b7e4f7beffa2c798dc07a6c
MD5 19b8da717e0c1546439410f3f6e3dda2
BLAKE2b-256 52eeaf460549aac1398ad0d271cd7dc6b291e653ebb4b09d4a6e8dd18d222c49

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b5-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 d1508c30cd4cc1f61415029267ab985d5ed29a502c9a677c424993dd5372c3ab
MD5 0b9a1c599ca05caf28da469434cfca27
BLAKE2b-256 0342ef4c8a4bc38a7310d002f79f82514137d20ebaee73511da9c1a7aa549a2a

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b5-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 6b9927189c0cb883716bb6bf3d4c5c54c1999417bea2edea7f562ab6ddbb2d7d
MD5 20124470b113ca4c9796b9bd553e62c2
BLAKE2b-256 3dff6428996a1b33b88d6990173f1bc7eb380245347c7a6a597687e2f82ec70c

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b5-cp310-cp310-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 72eed16868a674e5ed951dfd7bd2aaa8d0b584afd7952c58c415f523f8cf91cb
MD5 e3821e575218526e16971740b92762e1
BLAKE2b-256 b256fbff65d9ceb4f3c1364c4a7f7f8b1d6d7fc934901d4cb0aa2e4127ce41af

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b5-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 b38f868149a08f18ded89e86f9b678d4bca110ed3d8187c8955ce1b497d9b221
MD5 6339b16449fbba7522cd08093baea238
BLAKE2b-256 3b6e893035f4f0cab777902bde6146dc3cafd9f0c0c91cfae01f3f5b6639100f

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b5-cp310-cp310-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 4b13f63adbc7994cc0ce8a9f9dc7f72fb811cc24ff9577f80620e85f370b07fd
MD5 49f70189a54c10b945ac263a13d28c24
BLAKE2b-256 780f53fdb3be6616e8d63d2ef13850e66a9578951dc24960acf9af01f9bbaacc

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b5-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d8a138d217d93cc6a7b68ee0267867655439ae96c8b7040c4b02b3146f78480c
MD5 e759d8309c4bb07d41d315af7b9f46e0
BLAKE2b-256 839ea2a4938e5e2b0e01491f00a282344b9ec433b3a8f37fa6e242a4348c473f

See more details on using hashes here.

Provenance

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