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 Status

[!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 on Read the Docs. 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.4b235.tar.gz (9.5 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.4b235-cp313-cp313-win_amd64.whl (14.6 MB view details)

Uploaded CPython 3.13Windows x86-64

secantusdb-0.5.4b235-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.4b235-cp313-cp313-musllinux_1_2_aarch64.whl (16.6 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ ARM64

secantusdb-0.5.4b235-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.4b235-cp313-cp313-manylinux_2_28_aarch64.whl (16.3 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ ARM64

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

Uploaded CPython 3.13macOS 11.0+ ARM64

secantusdb-0.5.4b235-cp312-cp312-win_amd64.whl (14.6 MB view details)

Uploaded CPython 3.12Windows x86-64

secantusdb-0.5.4b235-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.4b235-cp312-cp312-musllinux_1_2_aarch64.whl (16.6 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ ARM64

secantusdb-0.5.4b235-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.4b235-cp312-cp312-manylinux_2_28_aarch64.whl (16.3 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ ARM64

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

Uploaded CPython 3.12macOS 11.0+ ARM64

secantusdb-0.5.4b235-cp311-cp311-win_amd64.whl (14.6 MB view details)

Uploaded CPython 3.11Windows x86-64

secantusdb-0.5.4b235-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.4b235-cp311-cp311-musllinux_1_2_aarch64.whl (16.6 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ ARM64

secantusdb-0.5.4b235-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.4b235-cp311-cp311-manylinux_2_28_aarch64.whl (16.3 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ ARM64

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

Uploaded CPython 3.11macOS 11.0+ ARM64

secantusdb-0.5.4b235-cp310-cp310-win_amd64.whl (14.6 MB view details)

Uploaded CPython 3.10Windows x86-64

secantusdb-0.5.4b235-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.4b235-cp310-cp310-musllinux_1_2_aarch64.whl (16.6 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ ARM64

secantusdb-0.5.4b235-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.4b235-cp310-cp310-manylinux_2_28_aarch64.whl (16.3 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ ARM64

secantusdb-0.5.4b235-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.4b235.tar.gz.

File metadata

  • Download URL: secantusdb-0.5.4b235.tar.gz
  • Upload date:
  • Size: 9.5 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.4b235.tar.gz
Algorithm Hash digest
SHA256 3077fb30534f1043c03eb44501e849e2e73b201d9c079e8d2c92541a71d1d7f7
MD5 c0c06e06565414931478f509619bd330
BLAKE2b-256 7095ced07b3bf38ce6cfb0465e7dae289d8b228b0ed102af1e104048286394ba

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.5.4b235-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 a4be216783bc8054567e36bd953e3a1260545da3b0bba751d7c44156d0971e71
MD5 dec661d68d9dc4e3195b639300ab5019
BLAKE2b-256 0e940c5c602d5038bdf67116f985bec0dfd066e25b17d88cf716e4cdfd75b34b

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.5.4b235-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 339dc78f711d627a2883254d4f867a95b9fb368b951cf85d9c40581e09371839
MD5 8ecc014a7c4dc6c46138fd72125137e4
BLAKE2b-256 5eac162b2a5e3cb2c3d43cabedbcbd56321d3caa5e9f4d2426459743e8f2609b

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.5.4b235-cp313-cp313-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 5fadac44b4747277c9d5d24bce6bd765a55ad807bb9d83a70c77a6c229abf9be
MD5 74c92f63b44e5b7c992b4fa6439addf9
BLAKE2b-256 f82f7e0f57ba4431ea30302c3a2b9a76a43ca294aafdc14c8d7778c10a070de5

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.5.4b235-cp313-cp313-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 5c20c3fe563eb899285223436dae3a7a802bef4f7d65e0bc090c243b2368aa09
MD5 0dd8018172993b725714e467b435d057
BLAKE2b-256 ebbb4bf46c4e71a048e743c1cae28ef73576b01dd7c82c4755a62e0f02b9112c

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.5.4b235-cp313-cp313-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 16b8e0669cb54bdf6f967aaa8d2cc89bfb73e65458d578672361722646a05a0b
MD5 7a283b5e6470d58e5fbe0b7d3af31fb8
BLAKE2b-256 0222dda0dc903044abf6d5a570a9a7297646178a76cdde733c75156ae1c56c0f

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.5.4b235-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 30deeada3d11a6a4724a4e0b1b04909788efddf2ea7f39678d9d387adc1b0dba
MD5 af9cafcd35cae2ef369fa52015f25bab
BLAKE2b-256 5fac72f40b72921b366bd388d80b39a72e8df67efeb54e944ca6af9188826646

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.5.4b235-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 2597e9fab55373c2b3aa8ffa0ead6d13a5c31a6b05425730bca6ecfafd998b51
MD5 e4f1e0c9c0142e69ac5596215e0ac9c1
BLAKE2b-256 fb6bcfc8727020ebf8442b8612c51d570b12b6dbc3240c7304c12da3c35a5533

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.5.4b235-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 207818dfccb304e70793145c6696fe32d70093b8c34ad563f01b8c1709e85c82
MD5 7b7c20deceb6e412ac29eec8e2998b20
BLAKE2b-256 01f24d17aba482feec21da7d137d3087a9540ff68e2e3f4ea58fa2d05b026031

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.5.4b235-cp312-cp312-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 cf4153195c5e1779c6f09e51deb7c6a3572ddd522fcc9348a4d3daf59ae2c5d6
MD5 6a97bf608ca485ac1132a70cfa70ac71
BLAKE2b-256 f119398293438dbd49cbf1fdbf3ac72fdf6c0b706a9eb1d1def9d32d6f190925

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.5.4b235-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 0f58beb8a37f0fe068a6724a8381f223b19050c37abf25f5165ec51faae77389
MD5 3bb545286b8c66a8c89fdb7ef77f9bdb
BLAKE2b-256 88cbddba3b97a030f31b0638c41abc8205058071b127002557c300917d9cf2f2

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.5.4b235-cp312-cp312-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 8f6d61339aa9ae710a47b56fd289a1d570b69a1c2592eb4e52e8528ebcca4adf
MD5 a1ec7eb2b22656480833b7c4850eb07f
BLAKE2b-256 1dfb57e74504f925eb6bc82474fe07d29d259bc8ce1312dbd706465741c875b7

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.5.4b235-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 44389ffad7214ccf24e363046a03b1a21a2f152ed2535e6340c5264dbe03a9e4
MD5 9ebef10749fd61ac46d66051b27c3754
BLAKE2b-256 2340ba95ab4160ea1167e27f4022c75c88fed1a4d28afcf810e5e72a7d8a22b9

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.5.4b235-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 ca7a2199bbb25c0beab347ade6f65661c783991ae2522e6d93622942784948cc
MD5 21ca7fed37b53af110de342120f6abf8
BLAKE2b-256 fc8c5fd18de234d6cc1d8b6df38f5a2749a5793856ebb972e3a37fd98dfc03e7

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.5.4b235-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 7c9d0596a78933ec62ee320f2f4d03c517f37bb2c12f96d8a346ca2ca5e509ff
MD5 982cb5a4761fdd4dd3efb3cf9221a7b2
BLAKE2b-256 709732d9cd8e66d9b496ef32c200599fc1f89b680e0fe95162be041ff0319943

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.5.4b235-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 89db3cafdce611bfaa59642206ed5a08e74bf45f59fc0baeed3718aace988655
MD5 c4899f21b05962a1149059608504fc07
BLAKE2b-256 83ac8f2e8b2251dff1e09193aa608aabb9e305f2dd04d83a26657416220143c4

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.5.4b235-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 335d99fae019d6d5610f707036a3ec8c809b8757e27172f639053907bff0a9dd
MD5 88fbd13eefca0120cbbce0f0df5dc1be
BLAKE2b-256 2096922d8ef85c17851d65ef605787744350acde0b08579ba613667d66da51ed

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.5.4b235-cp311-cp311-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 1485cb5e92c9b23d10fab7e69829f28e75cb1125f48756557267d61a057db43f
MD5 3bd5186886975f3daacc3c60c1a346e6
BLAKE2b-256 ad7ad230ddb93b401f3f92b275ffc40bacfc2433ccc1b58a81d5d2056b379d7e

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.5.4b235-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 66210374d5058e5c529a514b8092669bc5fe584054d855de32b41f4be6c34dc9
MD5 891bc5cf3f9d70c9b6f7b90499a5b83a
BLAKE2b-256 434b826147cd964f076a544e174ca861ff6b67e76ba165f0c08e210fc41713ae

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.5.4b235-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 8942df06c95d696a602c26356dcd76d2cf396672fc99c0db295cd8be74027af2
MD5 8a9e7a7a2065e3f2bc6664698d23f053
BLAKE2b-256 3ca977bffd6722162388240178fa6d5a4586474b148b830724dc2ff060b5784a

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.5.4b235-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 4130e2c4c78491e61ab905023d861c5f7be04786c6718cde8cdbe4f2c205d021
MD5 79c6647da9416226b6a8e1e57b4b1fc9
BLAKE2b-256 6d9b0cf57ec27a5d0c5b07e752650b1130e95d3faf0e52f4420ce8d4b9114574

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.5.4b235-cp310-cp310-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 3b437a4955b2715e70d2d607ac743e121be26a8fc1262078df7243db787bb26e
MD5 873b52e53f02b5e64359205605e4dcef
BLAKE2b-256 d89db19962377efdff8518b746bd74cdf11c27213160c0c48bf853b333961472

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.5.4b235-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 e1c7feda5294360ab39c62d6ffd09e542fd2546ae946d5abb4480e0c927b18c8
MD5 c714aff7bfd99a71f19a268dab2e7f94
BLAKE2b-256 df801dc767c2f06f01139f31f5d9d1ed1fc16e7ff7a82e9b104b29ddf851de27

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.5.4b235-cp310-cp310-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 0070d3bcabc9330d2c8830be304328f9db810d1680c825d8a34b60fbf72583df
MD5 e23ea71de73a02848758a7dd556efa01
BLAKE2b-256 d6fc8b0e5081eb98c1253467d62323b98969b25b644aed641159c24733cb699f

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.5.4b235-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b677f96ea649312d68aa0bbc053f5160adf2fc889aaea18f24cdc5dfb28e2c6b
MD5 734416a018dacc3fbcaaebd1511f98cd
BLAKE2b-256 7d8b0d9d5fda4e4037b2db21960e7dd7ee1e38095fc3d264c5d2970f141bbf6f

See more details on using hashes here.

Provenance

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