Skip to main content

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

Project description

SecantusDB — the SQLite of document databases

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

[!WARNING] Beta software.

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

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

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

from pymongo import MongoClient
from secantus import SecantusDBServer

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

Storage engine

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

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

What's in scope

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

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

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

SQL / PostgreSQL interface (opt-in)

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

from secantus.sql import SecantusPGServer

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

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

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

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

Installation

pip install SecantusDB

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

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

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

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

Building from source (unsupported platforms only)

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

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

See Installation for dev-install instructions.

The Rust server (separate)

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

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

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

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

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

Standalone daemon (drop-in mongod replacement)

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

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

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

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

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

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

Examples

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

from pymongo import MongoClient
from secantus import SecantusDBServer

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

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

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

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

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

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

Documentation

Full docs are at secantusdb.com/docs — with the Rust server's own tree at secantusdb.com/docs/rust. Highlights:

  • Quickstart — embedding in tests, running standalone.
  • The two servers — Python vs Rust server, which to use, and what each doesn't support yet.
  • Architecture — the layered design.
  • Indexes — what find() and aggregate accelerate, explain semantics, hints, partial indexes, TTL.
  • Aggregation — supported pipeline stages and expression operators.
  • Compatibility — the divergences you should know about before you point an application at SecantusDB.
  • Conformance validation — every supported driver's own test suite (pymongo, Go, Node, Java, Ruby, Rust, and the PHP library + extension) run unmodified against SecantusDB, with a cross-driver summary table and a per-driver report for each. The other-language gauges catch wire-protocol bugs that pymongo's permissive client accepts silently (e.g. int32-vs-int64 cursor ids).

Development

git clone https://github.com/jdrumgoole/SecantusDB.git
cd SecantusDB
uv sync --extra dev
uv run python -m pytest    # 584 tests, runs in parallel under pytest-xdist

Common workflows:

uv run python -m invoke fmt    # ruff format
uv run python -m invoke lint   # ruff check
uv run python -m invoke test   # pytest, parallel
uv run python -m invoke docs   # build Sphinx docs (warnings as errors)

License

SecantusDB is dual-licensed:

  • Code — GPL-2.0-only. See LICENSE. SecantusDB bundles the WiredTiger storage engine (itself GPL-2/GPL-3), so the combined work is GPL.
  • Written contentCreative Commons Attribution 4.0 International (CC-BY 4.0). See LICENSE-DOCS. Covers README.md, everything under docs/, the validation reports, and pymongo_validation/README.md. Operational instructions to AI assistants (CLAUDE.md) and vendored third-party content (under vendor/) are out of scope.

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

secantusdb-0.5.4b236.tar.gz (9.6 MB view details)

Uploaded Source

Built Distributions

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

secantusdb-0.5.4b236-cp313-cp313-win_amd64.whl (14.1 MB view details)

Uploaded CPython 3.13Windows x86-64

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

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

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

Uploaded CPython 3.13musllinux: musl 1.2+ ARM64

secantusdb-0.5.4b236-cp313-cp313-manylinux_2_28_x86_64.whl (17.1 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ x86-64

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

Uploaded CPython 3.13manylinux: glibc 2.28+ ARM64

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

Uploaded CPython 3.13macOS 11.0+ ARM64

secantusdb-0.5.4b236-cp312-cp312-win_amd64.whl (14.1 MB view details)

Uploaded CPython 3.12Windows x86-64

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

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

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

Uploaded CPython 3.12musllinux: musl 1.2+ ARM64

secantusdb-0.5.4b236-cp312-cp312-manylinux_2_28_x86_64.whl (17.1 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ x86-64

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

Uploaded CPython 3.12manylinux: glibc 2.28+ ARM64

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

Uploaded CPython 3.12macOS 11.0+ ARM64

secantusdb-0.5.4b236-cp311-cp311-win_amd64.whl (14.1 MB view details)

Uploaded CPython 3.11Windows x86-64

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

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

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

Uploaded CPython 3.11musllinux: musl 1.2+ ARM64

secantusdb-0.5.4b236-cp311-cp311-manylinux_2_28_x86_64.whl (17.1 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ x86-64

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

Uploaded CPython 3.11manylinux: glibc 2.28+ ARM64

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

Uploaded CPython 3.11macOS 11.0+ ARM64

secantusdb-0.5.4b236-cp310-cp310-win_amd64.whl (14.1 MB view details)

Uploaded CPython 3.10Windows x86-64

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

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

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

Uploaded CPython 3.10musllinux: musl 1.2+ ARM64

secantusdb-0.5.4b236-cp310-cp310-manylinux_2_28_x86_64.whl (17.1 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ x86-64

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

Uploaded CPython 3.10manylinux: glibc 2.28+ ARM64

secantusdb-0.5.4b236-cp310-cp310-macosx_11_0_arm64.whl (15.1 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

Details for the file secantusdb-0.5.4b236.tar.gz.

File metadata

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

File hashes

Hashes for secantusdb-0.5.4b236.tar.gz
Algorithm Hash digest
SHA256 b05fbb30298d1e0b3d7a89fff5a281362bf28b4d97f3548c68a1b8183be14f57
MD5 5eb9d7cae307caa7c5cda1238366fdc6
BLAKE2b-256 50859bdaf1a059f34e83d2afb19742f20ff632b977e368432636b2659362f36e

See more details on using hashes here.

Provenance

The following attestation bundles were made for secantusdb-0.5.4b236.tar.gz:

Publisher: publish.yml on jdrumgoole/SecantusDB

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file secantusdb-0.5.4b236-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for secantusdb-0.5.4b236-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 0ccb0f735433cc4aea0ebf32c00b92dbaad6a32af42e502929498c6ce58d71ab
MD5 af0909f249d1c199e10319db1c1a4841
BLAKE2b-256 8cadba319018ba3ad1035c7ddf147ee33fa7215480ab7b3cfadee10dd0539c9f

See more details on using hashes here.

Provenance

The following attestation bundles were made for secantusdb-0.5.4b236-cp313-cp313-win_amd64.whl:

Publisher: publish.yml on jdrumgoole/SecantusDB

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file secantusdb-0.5.4b236-cp313-cp313-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for secantusdb-0.5.4b236-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 713c8584955f8ed81333e56525299e803501634425e7a5730cfbdd1d7d4b09f8
MD5 caf23a31cf2337c614482d37feaed8f0
BLAKE2b-256 c4beaaac8ff6ecd7925f5951fa08e0f4d6225a066d618e622d016c0cd4c84f2f

See more details on using hashes here.

Provenance

The following attestation bundles were made for secantusdb-0.5.4b236-cp313-cp313-musllinux_1_2_x86_64.whl:

Publisher: publish.yml on jdrumgoole/SecantusDB

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file secantusdb-0.5.4b236-cp313-cp313-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for secantusdb-0.5.4b236-cp313-cp313-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 6e95fc38ff3f52e9b7874ef785d2932ee92313f669c2a3cc8ea1332f583cf431
MD5 490d2d073d9a0bd376a4a53f0e66bd0d
BLAKE2b-256 a38b525e2bfe27719e9ece57b6b5438d5722af21a30e1fd0914c192d4c107e6f

See more details on using hashes here.

Provenance

The following attestation bundles were made for secantusdb-0.5.4b236-cp313-cp313-musllinux_1_2_aarch64.whl:

Publisher: publish.yml on jdrumgoole/SecantusDB

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file secantusdb-0.5.4b236-cp313-cp313-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for secantusdb-0.5.4b236-cp313-cp313-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 205a6fc4fc9b1e9242630773c6cb0f9cd154ce9e1db2aa1965c21d77e99a6db5
MD5 7aa85717c39cf620fa4b9e6a3f89e1d0
BLAKE2b-256 5790dfa1afe8e5bbb7c41a54f602025c90bd760fa0137f06fc02c6ca59128029

See more details on using hashes here.

Provenance

The following attestation bundles were made for secantusdb-0.5.4b236-cp313-cp313-manylinux_2_28_x86_64.whl:

Publisher: publish.yml on jdrumgoole/SecantusDB

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file secantusdb-0.5.4b236-cp313-cp313-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for secantusdb-0.5.4b236-cp313-cp313-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 cc2d019ba17dd64b0daad84ad3675120e685cdc5772e4e577734a281a6e393a2
MD5 9784426704780d170d8b46b784d2f8c4
BLAKE2b-256 637927330575ecade496f56e5f4392aca7ea3efcc7b16fa8b7f6bd6b5f8a9a8c

See more details on using hashes here.

Provenance

The following attestation bundles were made for secantusdb-0.5.4b236-cp313-cp313-manylinux_2_28_aarch64.whl:

Publisher: publish.yml on jdrumgoole/SecantusDB

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file secantusdb-0.5.4b236-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for secantusdb-0.5.4b236-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c11e03ab992f932d2834c73c52d05cdff834a73d13a6c894c90c76424c60aa1b
MD5 1197a093478cccfcbb58646b4c85db73
BLAKE2b-256 077be1b502f0e4daf7eae3536d37bded0198446d50b33934b406b222f5676450

See more details on using hashes here.

Provenance

The following attestation bundles were made for secantusdb-0.5.4b236-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: publish.yml on jdrumgoole/SecantusDB

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file secantusdb-0.5.4b236-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for secantusdb-0.5.4b236-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 26c2b8bdb1609e9ef28e81e71ed3f0e0f6715a9c8677e6ca72771aff3d6ff813
MD5 48fe5a352a3f8cae4bae113fa8d334d6
BLAKE2b-256 3e7697eba9cd2a2a70a302d94df098f65c0d84e8f773a867432b605ba2a0de39

See more details on using hashes here.

Provenance

The following attestation bundles were made for secantusdb-0.5.4b236-cp312-cp312-win_amd64.whl:

Publisher: publish.yml on jdrumgoole/SecantusDB

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file secantusdb-0.5.4b236-cp312-cp312-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for secantusdb-0.5.4b236-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 d19f33cf793276a858762f5025b688c5190466d172dc26bfb9efa04321d36d0d
MD5 b62e95d7751870fb9ac00f36cea82199
BLAKE2b-256 8be32b072323e1ec5cc5eda24800550883ab6acad56f348db276ea6ed18ea766

See more details on using hashes here.

Provenance

The following attestation bundles were made for secantusdb-0.5.4b236-cp312-cp312-musllinux_1_2_x86_64.whl:

Publisher: publish.yml on jdrumgoole/SecantusDB

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file secantusdb-0.5.4b236-cp312-cp312-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for secantusdb-0.5.4b236-cp312-cp312-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 f6a3db8f1aea4c821127c3b0840a4ff45112f49099e5d83794fde16059431727
MD5 4893087b3d3b24c0646a384e49c832d8
BLAKE2b-256 5e05dac42f7ee33e816799302688f595e955762b89ca4a82d629a2e093dabdd4

See more details on using hashes here.

Provenance

The following attestation bundles were made for secantusdb-0.5.4b236-cp312-cp312-musllinux_1_2_aarch64.whl:

Publisher: publish.yml on jdrumgoole/SecantusDB

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file secantusdb-0.5.4b236-cp312-cp312-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for secantusdb-0.5.4b236-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 8b34d98677bcdbf3edd7fcf4dc7deffda8f67f1fdfafc1c93f63c14ddc1384e3
MD5 c75779ae5aecea6117363ff50b112361
BLAKE2b-256 4cc8c2a90800fc33f929af76ff87bf4a57a6ce6edb78e4a31f12aed00121e507

See more details on using hashes here.

Provenance

The following attestation bundles were made for secantusdb-0.5.4b236-cp312-cp312-manylinux_2_28_x86_64.whl:

Publisher: publish.yml on jdrumgoole/SecantusDB

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file secantusdb-0.5.4b236-cp312-cp312-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for secantusdb-0.5.4b236-cp312-cp312-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 b3deb8b485e9563825c290a44670898a33b155d6a729150fb4b2a84d23c1040d
MD5 6002faf5783a61bac43a37f605c7b44b
BLAKE2b-256 4bf9796dd0d772280e949708793cfd729bb52d2d8b2ac3273ab6a1d318c5d4c5

See more details on using hashes here.

Provenance

The following attestation bundles were made for secantusdb-0.5.4b236-cp312-cp312-manylinux_2_28_aarch64.whl:

Publisher: publish.yml on jdrumgoole/SecantusDB

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file secantusdb-0.5.4b236-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for secantusdb-0.5.4b236-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e609d902768c0254c10e7c84bf32e67c47e1411b688e90ffe3f9d15d60998caa
MD5 91f600e2b6235c3757f88196a2de7ac0
BLAKE2b-256 a0d39bb13c48ac794bc3f06480076ee72fa29629955fe13405409672b122fd1b

See more details on using hashes here.

Provenance

The following attestation bundles were made for secantusdb-0.5.4b236-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: publish.yml on jdrumgoole/SecantusDB

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file secantusdb-0.5.4b236-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for secantusdb-0.5.4b236-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 db5c15a87df7644ae0a1221244f3328954adbd12c0d9b88bb064015ca5e57be6
MD5 ff804bc459b486bb54e74941cc55a436
BLAKE2b-256 241984dcd6b209cd934f1d0d38e5c91acb85480c5a4f5efbd8393db2f14b16eb

See more details on using hashes here.

Provenance

The following attestation bundles were made for secantusdb-0.5.4b236-cp311-cp311-win_amd64.whl:

Publisher: publish.yml on jdrumgoole/SecantusDB

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file secantusdb-0.5.4b236-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for secantusdb-0.5.4b236-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 eaf41e6a51c4b202f806853eb2e004dacb8ac93d996cbcc11bca357312b2d41d
MD5 f7681841b5d4ffa2cf17dea9f0a76cb6
BLAKE2b-256 ebfb1fd688683c0535e97ecd0c6766ddfee0ed07f3647f9a9da9c6464a986144

See more details on using hashes here.

Provenance

The following attestation bundles were made for secantusdb-0.5.4b236-cp311-cp311-musllinux_1_2_x86_64.whl:

Publisher: publish.yml on jdrumgoole/SecantusDB

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file secantusdb-0.5.4b236-cp311-cp311-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for secantusdb-0.5.4b236-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 24056cd6c75cc60719ea74c3477fc1dfb978fc350e2c13f4e5ff21a1547a91af
MD5 4b8898f3e41b7a1b2266dc5727014620
BLAKE2b-256 a2b02f14f0b3248bec3f34449d7ac8f9313242ea14668c871d76eac340afca01

See more details on using hashes here.

Provenance

The following attestation bundles were made for secantusdb-0.5.4b236-cp311-cp311-musllinux_1_2_aarch64.whl:

Publisher: publish.yml on jdrumgoole/SecantusDB

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file secantusdb-0.5.4b236-cp311-cp311-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for secantusdb-0.5.4b236-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 e5c864b8ae1fc4886b8f58e69c8c6e2a87f208125b3d39943055db3401ddb4dd
MD5 1cbf84f086207398c7d4808ae1d68027
BLAKE2b-256 4a9042beb159a5e36c196636263a171f385de084ab4aecfebc7382b42ad3797d

See more details on using hashes here.

Provenance

The following attestation bundles were made for secantusdb-0.5.4b236-cp311-cp311-manylinux_2_28_x86_64.whl:

Publisher: publish.yml on jdrumgoole/SecantusDB

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file secantusdb-0.5.4b236-cp311-cp311-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for secantusdb-0.5.4b236-cp311-cp311-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 ab398236ecfb7fde9d1d0df9b39707c7c33e23bc578297c6d11637f8b7d4b4ee
MD5 d506fec5aede807ecf7636568a12fc16
BLAKE2b-256 f8f5b7a611b846b1956c46201fe6231dff8e3eff4bff3f8528cfb8e2d910dd42

See more details on using hashes here.

Provenance

The following attestation bundles were made for secantusdb-0.5.4b236-cp311-cp311-manylinux_2_28_aarch64.whl:

Publisher: publish.yml on jdrumgoole/SecantusDB

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file secantusdb-0.5.4b236-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for secantusdb-0.5.4b236-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 09b71afeb6e665a7cd110120bc1e41903f6ab2ef259fbe69e20235b30df2d6a1
MD5 71d9a562e92d853c4df97a01b23f0832
BLAKE2b-256 a2479544c4343cb7839679d6f896527a9196d1817293f1ce3b5710bc02f27e33

See more details on using hashes here.

Provenance

The following attestation bundles were made for secantusdb-0.5.4b236-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: publish.yml on jdrumgoole/SecantusDB

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file secantusdb-0.5.4b236-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for secantusdb-0.5.4b236-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 369a7ce83a0a14dd8ab42f6696a0cab0976ce46948f6e786fb6bfc34e972a45d
MD5 e4f74a83ae52606e69c525455bff1d84
BLAKE2b-256 bbfb0349d4664d72a3761ada6a9434ff8434edffd2f2b6996f4553bf9f40cb78

See more details on using hashes here.

Provenance

The following attestation bundles were made for secantusdb-0.5.4b236-cp310-cp310-win_amd64.whl:

Publisher: publish.yml on jdrumgoole/SecantusDB

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file secantusdb-0.5.4b236-cp310-cp310-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for secantusdb-0.5.4b236-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 4fda799f89ed48482585ae9006f4d3acd671823d3e3150e0e180c8bb70b21ab0
MD5 a5d398cbea2d27e003c4033b02d0702c
BLAKE2b-256 d0b6237802ed5702e98f9cdef407bd937e61b7c619517b0f1675aef030ed4c93

See more details on using hashes here.

Provenance

The following attestation bundles were made for secantusdb-0.5.4b236-cp310-cp310-musllinux_1_2_x86_64.whl:

Publisher: publish.yml on jdrumgoole/SecantusDB

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file secantusdb-0.5.4b236-cp310-cp310-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for secantusdb-0.5.4b236-cp310-cp310-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 c0029c7d5c5dbd2c0329434b9a364aa18a960f56d315bd7546b9b2df351f3822
MD5 79adbb9ff2cd7dcca54bbc2f0365f72f
BLAKE2b-256 3aab4eafbf8c931851a56a81333b81dbbb836652d82a1a9c630753d89dd722de

See more details on using hashes here.

Provenance

The following attestation bundles were made for secantusdb-0.5.4b236-cp310-cp310-musllinux_1_2_aarch64.whl:

Publisher: publish.yml on jdrumgoole/SecantusDB

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file secantusdb-0.5.4b236-cp310-cp310-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for secantusdb-0.5.4b236-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 85c356f1a0f4b805215d93e8e1546935e23bbdd6ab0eef9dd0bb032b6d40b243
MD5 b14db04bb65a26a509e6e3f13ddcd294
BLAKE2b-256 34bce497142ee7aac59803432d53ca835c76aea7b159036b1907a97a2b3cd5f2

See more details on using hashes here.

Provenance

The following attestation bundles were made for secantusdb-0.5.4b236-cp310-cp310-manylinux_2_28_x86_64.whl:

Publisher: publish.yml on jdrumgoole/SecantusDB

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file secantusdb-0.5.4b236-cp310-cp310-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for secantusdb-0.5.4b236-cp310-cp310-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 9964cf0533276f36be2a0621ee1ab956f6f631ad2e770fbc90d3ab8b4ea35c2d
MD5 f91c75d3b8e948815126184eae64bf13
BLAKE2b-256 d33676e5b2dc398544f5463fa987f3760e64172113312e7efedbbbbed23912ef

See more details on using hashes here.

Provenance

The following attestation bundles were made for secantusdb-0.5.4b236-cp310-cp310-manylinux_2_28_aarch64.whl:

Publisher: publish.yml on jdrumgoole/SecantusDB

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file secantusdb-0.5.4b236-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for secantusdb-0.5.4b236-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e39a8ad3b0619f0d8505ab57080bbf96ad10f9d340336ec7895c4fde35009291
MD5 cc8dfd59c6336dd18ecf0ef18779c837
BLAKE2b-256 f70bfffb0808c7a332691537f4cb0599db608f58fb3ec2ea59ad13f0b4cddb81

See more details on using hashes here.

Provenance

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