Skip to main content

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

Project description

SecantusDB — the SQLite of document databases

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

[!WARNING] Beta software.

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

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

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

from pymongo import MongoClient
from secantus import SecantusDBServer

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

Storage engine

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

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

What's in scope

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

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

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

SQL / PostgreSQL interface (opt-in)

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

from secantus.sql import SecantusPGServer

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

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

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

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

Installation

pip install SecantusDB

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

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

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

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

Building from source (unsupported platforms only)

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

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

See Installation for dev-install instructions.

The Rust server (separate)

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

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

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

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

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

Standalone daemon (drop-in mongod replacement)

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

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

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

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

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

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

Examples

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

from pymongo import MongoClient
from secantus import SecantusDBServer

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

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

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

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

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

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

Documentation

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

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

Development

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

Common workflows:

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

License

SecantusDB is dual-licensed:

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

Project details


Release history Release notifications | RSS feed

Download files

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

Source Distribution

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

Uploaded CPython 3.13Windows x86-64

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

Uploaded CPython 3.13musllinux: musl 1.2+ ARM64

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

Uploaded CPython 3.13manylinux: glibc 2.28+ ARM64

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

Uploaded CPython 3.13macOS 11.0+ ARM64

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

Uploaded CPython 3.12Windows x86-64

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

Uploaded CPython 3.12musllinux: musl 1.2+ ARM64

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

Uploaded CPython 3.12manylinux: glibc 2.28+ ARM64

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

Uploaded CPython 3.12macOS 11.0+ ARM64

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

Uploaded CPython 3.11Windows x86-64

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

Uploaded CPython 3.11musllinux: musl 1.2+ ARM64

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

Uploaded CPython 3.11manylinux: glibc 2.28+ ARM64

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

Uploaded CPython 3.11macOS 11.0+ ARM64

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

Uploaded CPython 3.10Windows x86-64

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

Uploaded CPython 3.10musllinux: musl 1.2+ ARM64

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

Uploaded CPython 3.10manylinux: glibc 2.28+ ARM64

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

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

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

File metadata

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

File hashes

Hashes for secantusdb-0.6.0b2.tar.gz
Algorithm Hash digest
SHA256 b409edca633e4a79b2b9cc55b34332e8725b575ea91278bc052255b9e8d25bd1
MD5 287773930b057b66e012e584e70082f6
BLAKE2b-256 b42c01a141e14deed942b9c23061adb1f6a69a49b46cf14f7e845e32d79a6429

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b2-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 2f0250fdceddbfb316a1e7a021f9721b9b116fd428f61bea3b49082f49c3b318
MD5 60fd22ea9fc8c9042fe7663582a707a2
BLAKE2b-256 9abfa90ec6ea1e00e3466d0f26f7bb8ddcf4090ccb8d5e4bf661b07c11777e01

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b2-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 3c6db8b758729edf6be66e8628f6d306ff3653825252cc3bab3af0791d8192ed
MD5 2e04a0a18f214d214db4654395bf973d
BLAKE2b-256 b0ca8438ee3791ea7671058800a585ac163b843b3ac1b4d535837eba9a5f2789

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b2-cp313-cp313-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 f8a5fa887804e598e0c383adc5fd0f69a9f69fa829711a335339c2a694466189
MD5 ea44677e9ff6b4fb60e08f9e1f49a161
BLAKE2b-256 a9e79a74e9f0fec40d0fd2c0525063551c109eb522f97d994c8f3d50af2f1ea2

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b2-cp313-cp313-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 05ddf0c5b90672f66c7d7a0db05430dfd3a86b95f9283b78bf9dca8f808ef458
MD5 a25a82bf7cb7334b41b803a522253c18
BLAKE2b-256 7b10509b2278b1f896d3b526bd225bfa90b48a9ab35d227805e2130ed7869b78

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b2-cp313-cp313-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 76667c51485cf39304e603a9f29192cf7356e736ffec03e57a5e6fe930505841
MD5 37cad93c45b7ad320349168d4122f501
BLAKE2b-256 12fc5aeaccc8fc4fd239acdb2edfda3f7906fc640c6913046cead3ccac19919c

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b2-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5394695d4b5616e4f58232655107898b209782f99984a1cae54de13504ebd6fa
MD5 bd31fa9f3b132898ce107b6dc5a4a5eb
BLAKE2b-256 2c0b53e55a9c8c279621e84ce8d12d134d368e93c9b2be6bc41279144f1eae3f

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b2-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 d7c4a409117fa71fbafe0ff38aa35b4767394fa9440eb75e197358c6c1ec23c1
MD5 032c72ca65b2a66306cb87feb860d069
BLAKE2b-256 238c33d508e589162be2e0a14df1446e7f448ced1fa66dc8d68be1fefb3a0487

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b2-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 7f427417871fd389bafa5c098fc082d7d6958427093e1f77034fcf2594d3ba6b
MD5 b37a48dd18e684e8b3c9a4ed64e9e71e
BLAKE2b-256 8079d0dab6545178897d8c3068e8c4ce589a76dd7212da886d43793d83d0b079

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b2-cp312-cp312-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 23821ae25e898129475321a35a79b3f50e92694798f90312780903726dff0ed9
MD5 d2151f05af4fbc8c0644c2ffb6276287
BLAKE2b-256 ac894935358ee80e8917de7705293c1a2d9906f82d44814e1194bb9237643a14

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b2-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 5c9b4aaa25bb601bf69bee0cd343822faa153a37a82880eb0fb10fb615752b07
MD5 70a6e2e6efa05204a14d34004929eecf
BLAKE2b-256 1201984718d79e84d3830a3d3c4d2fb2646365ad6c85e784391f218f6bc9824c

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b2-cp312-cp312-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 f4d9ca463349d714f2099cfe95d07daf137ee7da8578ef352a49943995e8c2c6
MD5 cbbffefcc7b8d2f54f23e7404df2253b
BLAKE2b-256 ce434a4497b395ad657bb88468908510a3c05d4f905b97f476e91be789d24252

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b2-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e2e6d5ab564b845b9239ea07b0df54f9e3336ded1c3128b54dceae01dd8637c1
MD5 09a88fd27d25d362ab4ffcb1fbf8f452
BLAKE2b-256 222728973163b44f39bf8df699fb7e0f6c1f3f5042ca59c8cab0c188ee5c4fce

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b2-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 88baa019253b0fe4ead6dda48d53013c5ef83a1d05ff04b2814ababd45e2a0ff
MD5 70d1cc6cb435e8da92f3db38e147db31
BLAKE2b-256 cc82e365b31d149e4657761fc49da48a57be4d33795129584a11296c160860d1

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b2-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 52f92e312d7efea3d39c9e045e646994b9c3757eda140680dcae7bd0300f9a68
MD5 8049f3a2b739ee8ef32522580557fa82
BLAKE2b-256 9837754e482f5394bdd432967b1de395fbb2c350447ec16396fead5132cc7901

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b2-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 55ea71e7be0b2450ec83a0c5a8179f975a6689404f6f511a3f61c5fa34c5f9ab
MD5 93f302515f13cb66a6661787972272c7
BLAKE2b-256 6939dde0324b9399755f6a8938e574a830e5c19a660d4bdaf878061f6d854e3a

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b2-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 ceeca736de4f667531d514e21446733d1a63ff6ff116310c8ca168c754c6d6ba
MD5 1f5289eed9fa1b5a9993c02d2f15a02a
BLAKE2b-256 4c996ddbabd22d625eaede352c0c823c94bcdc04ffc76c9c198db80620b6e1c1

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b2-cp311-cp311-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 b6dc45769765d075f9cf06f8308b9c61da7935c06771cdb413f59b53bbffe8b6
MD5 1d987b110d50eedaaf2f16ce1bf6b8a4
BLAKE2b-256 509718ef2f41bb684a63a15d0946932e473676d496e6fcc9d2e3a04d7a4a1d9e

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b2-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e2b8be3a0e19bdea6d3e7301a371031eb4c21af64e26a369f4ec1cee9fefea38
MD5 c1190fd9e424b341fcb2329348e0d0a2
BLAKE2b-256 9a90ec2e637fe3bb2c30df4b8a21e38c23fb676b7f81e5bf5447149c0bd10356

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b2-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 a84d0d6621cc6773bef4831a8208153890620e8dcd0062377ce17666ac032af2
MD5 79244e8ac189d33c7553a0068bd2bf3b
BLAKE2b-256 71dcb62a6de715dfa02c7d316697fc08b583d78c3f8ccb8bda98dbf5680a1442

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b2-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 47d1fae8c85da2cc55ac13907aedc0cf89fa20621e5f97d949efb12948b0fc88
MD5 d432410b5b98bf4f4c6a13a489cd7879
BLAKE2b-256 46f28c867634f22a2776b2a74930c006b434c5258c90ba2cfeaaebcaaf876252

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b2-cp310-cp310-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 68295977a794cf9ec33eb5f030a7cda0abd82fff26aa687f0a79d73467e9ceca
MD5 9e18d7d474c9ecdbb1fc631f876332b4
BLAKE2b-256 d44da38d79fc7e0518349d643042f09bde210e72cc80d37c18f3669309bba9b7

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b2-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 95655ddda7ae90fa1af82879523c21d12de54754345eccc1b16b95591e36f273
MD5 fad57652ae18dc863d165af5bbc9dd40
BLAKE2b-256 a0b822027cf3a06a92073b2ef7ed0f3423974fec0cf71af2967b6f93f6aff6db

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b2-cp310-cp310-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 ae828fa679d9093e269fdb8f1d8726b9503ad82d6ad6761f2b989159443c90c7
MD5 e4b19650b84793ca09f31521b4712d52
BLAKE2b-256 998e9af2a28a509c9f3d8268e608ee7e95a4248f656d1577ad44e7abec2ca9dd

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b2-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4680ff6627f097fe40a7c2b5fbfdcfa1d95709e26b12deff7f007ab71687633b
MD5 098ef11749cf7dae4a50c6f312067bdc
BLAKE2b-256 c49e38071ea576c27db9ab4c080bfac6e0106f05e14c7f940627a6df0d724e95

See more details on using hashes here.

Provenance

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