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.0b1.tar.gz (10.1 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.0b1-cp313-cp313-win_amd64.whl (14.8 MB view details)

Uploaded CPython 3.13Windows x86-64

secantusdb-0.6.0b1-cp313-cp313-musllinux_1_2_x86_64.whl (18.1 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

secantusdb-0.6.0b1-cp313-cp313-musllinux_1_2_aarch64.whl (17.2 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ ARM64

secantusdb-0.6.0b1-cp313-cp313-manylinux_2_28_x86_64.whl (17.8 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ x86-64

secantusdb-0.6.0b1-cp313-cp313-manylinux_2_28_aarch64.whl (17.0 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ ARM64

secantusdb-0.6.0b1-cp313-cp313-macosx_11_0_arm64.whl (15.7 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

secantusdb-0.6.0b1-cp312-cp312-win_amd64.whl (14.8 MB view details)

Uploaded CPython 3.12Windows x86-64

secantusdb-0.6.0b1-cp312-cp312-musllinux_1_2_x86_64.whl (18.1 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

secantusdb-0.6.0b1-cp312-cp312-musllinux_1_2_aarch64.whl (17.2 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ ARM64

secantusdb-0.6.0b1-cp312-cp312-manylinux_2_28_x86_64.whl (17.8 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ x86-64

secantusdb-0.6.0b1-cp312-cp312-manylinux_2_28_aarch64.whl (17.0 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ ARM64

secantusdb-0.6.0b1-cp312-cp312-macosx_11_0_arm64.whl (15.7 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

secantusdb-0.6.0b1-cp311-cp311-win_amd64.whl (14.8 MB view details)

Uploaded CPython 3.11Windows x86-64

secantusdb-0.6.0b1-cp311-cp311-musllinux_1_2_x86_64.whl (18.1 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

secantusdb-0.6.0b1-cp311-cp311-musllinux_1_2_aarch64.whl (17.2 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ ARM64

secantusdb-0.6.0b1-cp311-cp311-manylinux_2_28_x86_64.whl (17.8 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ x86-64

secantusdb-0.6.0b1-cp311-cp311-manylinux_2_28_aarch64.whl (17.0 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ ARM64

secantusdb-0.6.0b1-cp311-cp311-macosx_11_0_arm64.whl (15.7 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

secantusdb-0.6.0b1-cp310-cp310-win_amd64.whl (14.8 MB view details)

Uploaded CPython 3.10Windows x86-64

secantusdb-0.6.0b1-cp310-cp310-musllinux_1_2_x86_64.whl (18.1 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

secantusdb-0.6.0b1-cp310-cp310-musllinux_1_2_aarch64.whl (17.2 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ ARM64

secantusdb-0.6.0b1-cp310-cp310-manylinux_2_28_x86_64.whl (17.8 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ x86-64

secantusdb-0.6.0b1-cp310-cp310-manylinux_2_28_aarch64.whl (17.0 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ ARM64

secantusdb-0.6.0b1-cp310-cp310-macosx_11_0_arm64.whl (15.7 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

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

File metadata

  • Download URL: secantusdb-0.6.0b1.tar.gz
  • Upload date:
  • Size: 10.1 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.0b1.tar.gz
Algorithm Hash digest
SHA256 efb5ee3c14f42865d9ddfaf47b06b48a33f8f4b01193f0a4c24fda24108dfd00
MD5 becf605cade600dde858a2df738cc2e4
BLAKE2b-256 12dc609d200efd75f74ba413293980b1c98f94961ab1129e587d30dc16b3988c

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b1-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 f53e3509c4fb2971c4d91ebabe0ae75d315ceebec41869292d48c5102efbddc5
MD5 bc308a3dd247020a5e6644a0d0ec2651
BLAKE2b-256 6e895a1a9e8170696898176f76731c7088ef50dd2446f6234aec5089d780b765

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b1-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 944ccd1c2e04735e31def1e890b16eb7b741129711f6072fcbe60cdccaaa5d8a
MD5 c108ddb7bd6af1f116ea9b87989ef0f0
BLAKE2b-256 22925411a85ba455d29699c76b900a518fed1026ea264bc754effffd0f549082

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b1-cp313-cp313-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 36582f18fd9c3e2b2d31d95218b2491aaa596079fdb51ec1e258653f433f8f9c
MD5 81da074c33304d888213c05892b73fc3
BLAKE2b-256 26ea6f9bd59ed090321c5b880f9c53221266e5d86efa49624da0361f661c63ad

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b1-cp313-cp313-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 0902b571b48bdfdc15f94fdf168bfe98b9b52e7c542319cfe750b83fb665cae6
MD5 063f03ff3607514abf3742dc3f0502cc
BLAKE2b-256 c86eca2e9884c7ff3b2a2469975ef4ad3f2147f869340b6e899b23832f67befb

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b1-cp313-cp313-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 59e1820c9c060fe411c00618d63ad9c8f2b939c89d170156de0684b4d80a5e4c
MD5 a5064d52cbec8f0f1e04e9e239039b14
BLAKE2b-256 5a41ae2908c91701ca17653466fda74fef1857ad88ff30aca2781e0dce887310

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b1-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 00c11a59b1623398e126b68b28ba7fdae85e9e56bcfd8d56f23cd4cca0e1ba77
MD5 eaae8bf3c57c28b1cb799a63cb10a013
BLAKE2b-256 abd1c499670feb54b6e50dfc4e323b18ef2f05064f6dce55c7f501f9134103a5

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b1-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 52fb6522088899c562b30cbaa3c16d9d840989478e1ac52840d99b2cf40da505
MD5 044daf43092cf50975f01f8c70ac6e20
BLAKE2b-256 ce17635e1157907cf556d1025a4b66411225e2972fe67ba28f09dd5fad78ea44

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b1-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 1c7a637c384a4c2fb2fa8d866d4251fcd8fb2fbbae3d43d1007a41cceb233993
MD5 0fabf9e3aeac74300ca4bb9a01dcf723
BLAKE2b-256 ba04d4cb854830121528ac7ea5c54ff673dcf96a463c54cde4c60d12a47b9ed9

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b1-cp312-cp312-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 d3b4bc25ae51c206de962f3fbe723347b0942de6db048927f875eb18cbcc969a
MD5 936b05449e9aa58a094ac8d2d07b50d5
BLAKE2b-256 1b2a54f88f04187880188664a15bf4a617f45a930461bddac2187ca8f60e8f5f

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b1-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 7ca74ef1bc1406564212b5e40c064ddf81a2fcd4d6013ccb2ad3deaefd3ec211
MD5 216ac6c2ae6f00ff4bc793b199d5beda
BLAKE2b-256 a4072b7a4bf38bfa4b9e70a4fce6721ca3a997c6a8f34d02e147096a46522306

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b1-cp312-cp312-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 ce74ac68b7fa70512451588b76851c2c6872e1894445b0f580496b7601ffe412
MD5 38d25b8d245f9f357a13ac8e39c7246a
BLAKE2b-256 95a276689d7f0806373daf127836210dac2d6ee0455537493af384af568bfc91

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b1-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 060b8383faea908fc96929a0256b829eb9fe8380ecaae52ec277636cf1824798
MD5 1690961ba690f4b763aba5d49a52c3c5
BLAKE2b-256 d8010bbaefafe8a7f7fb1649ae1070841ab5eaeef31a5396204529120941cd18

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 447c23cf5990c76eeed6fc313124df6989b39c362c06a675c5f099fe4b5c9cd0
MD5 b9cacecdaf960317870cd22dec9234a4
BLAKE2b-256 fe61efcc74b4548c24860ccf2f7d5e2aeff8cfe87f2821f1a9d3f46c82966911

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b1-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 fc22834c51036408678d3b77787a6d94865f349cb918b27a8112e6879d79ce51
MD5 677a999affcd855d1fed6e077b886d44
BLAKE2b-256 8431dedad769d2d79ced6cb578d198f6d8fd77a8e281336bd2c305b309a2705d

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b1-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 2e56bad63ed13787ed0cd2cd7107d4ed4321a12fbb6990d8c0ccffeb8396402c
MD5 49991401764db15ff306f7de082f143c
BLAKE2b-256 738e019a22cd361f5540c379e2fe2858c745b9907904b7028759dd195b2b8057

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b1-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 05bd4dae6123e64aae78742a932b174d1ecd892e4053fd4f17f9fa7702935ee2
MD5 b6697263d86e9141d5abb909bb8a9018
BLAKE2b-256 ba74525182c5385ac25294e9c2ceb34f45e0056b9c2d2187dc6075d95be43f9e

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b1-cp311-cp311-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 9db4d20cf8c680eb7b08ec297417c74e0df34a9cebf3819d3660f8a421a2adfc
MD5 41f2d8171fd66947ff8ab30f18272d2c
BLAKE2b-256 4b506ce91472e5014475f47f2ad7069c4fb64d4e52a9c3442055ba23151f8ca1

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b1-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c3d1aa50ec533373511fc95c5acc85e439e8c1acc74fcbfb251f099cf4af4422
MD5 d2c06c4f996d20c4fdddced4d34fb9f4
BLAKE2b-256 7e47186553cb00f0b8c0ffcd5a150b32a564ea85f6a5631b4b798c46b17feb7b

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 f9ce4aad4a66a9f342732649210fd9be907c5a7215cb30c2d38b84c75782fe13
MD5 6983086c65a1b4dbb4da55da29127220
BLAKE2b-256 fe826337e94f851109049ad15ea70ad12700320787bc856e48582c9fc56fdb72

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b1-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 2f5f32a4c2d442250fcaa5ba452a08397266309c4e34891a6f79fdd98f50ce08
MD5 fe68fe9f4e62a13a022e7becc4ef5b91
BLAKE2b-256 0e188d38d2e5288840af87fd1edda1a2102b9bd15941779a86778fd892042901

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b1-cp310-cp310-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 6330091daa9f8a68cc87b33450631383e4e8d8d43659a0c5dfbae8c756c99c69
MD5 497ccfd138fdf7992180c5353da4c01e
BLAKE2b-256 1023fb9d3c9ede67a3d9bbd3efd372e234a4db5b6f637fb039311ee156049a70

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b1-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 7efd7e0bbaf6afb55af16cfafb7cf38dbd48ae4bef2c40ed2c326b91b2fa1b67
MD5 feb0eac5342c1fdf54f5a067fb826797
BLAKE2b-256 943fdb9902016180559626aceb43123e9a45dafb888e5052ab8836d38bc8924b

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b1-cp310-cp310-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 c9fef1731ffdb8803d4370fc608569055e4c3e80f1c8477c99c76261798ea1ec
MD5 f0545a8c4cbdfa70fc9487117ba2ab61
BLAKE2b-256 28d988f73a889e52c5e09af5b0be2ef786fc0d509732998be0939eed08fced2d

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for secantusdb-0.6.0b1-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a3bfae153e099db643f629a20d07afb2f3f6bd56be177635f9b7dc267acd4f3f
MD5 ed53a04a8078446d66eb61a083d474ce
BLAKE2b-256 0e7bac324238b447168febc0c1b72e98752ebc9e1d39025140c450d768f44ad8

See more details on using hashes here.

Provenance

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