Skip to content

v0.1.0

Latest

Choose a tag to compare

@anidotnet anidotnet released this 30 Aug 15:11
· 5 commits to main since this release

First release. One protocol, implemented three times, at one version across all
seven artifacts.

Published

Registry Artifact
pub.dev dbinspect_bridge, dbinspect_sqflite, dbinspect_drift, dbinspect_hive, dbinspect_hive_ce, dbinspect_mdns
crates.io dbinspect-bridge
Maven Central org.dizitart:dbinspect-bridge

The core

The engine-neutral bridge: the wire protocol, pairing, the transport and the
release guard. It knows about no database.

  • WebSocket transport with JSON-RPC framing, and a per-request deadline so one
    slow adapter cannot wedge a session.
  • Pairing with a 40-bit code compared in constant time, per-session backoff, and
    a limited number of attempts before pairing closes until the application
    restarts.
  • Loopback is plain; anything else is TLS with a certificate generated for the
    session, its fingerprint printed in the pairing banner to be pinned.
  • Capabilities are deny-by-default: an operation that is off is absent from
    capabilities, not merely refused at call time.
  • The release guard: the bridge folds away in a release build and the protocol
    strings fold away with it.

Transactions (§3.1)

beginTransaction, commitTransaction, rollbackTransaction, the
capabilities.transactions flag and the transactionEnded notification, so a
mutation is not permanent the instant it is accepted. Additive to v1 — a server
without them answers the badRequest an unknown method already gets.

transactions is the one capability that is not an opt-in, because it is not
a permission: it reports whether the engine underneath can roll a write back.
Drift and sqflite have it; hive and hive_ce report false, because a box has no
journal and a client needs to know that in front of the keystroke rather than
after it.

Adapters

dbinspect_sqflite, dbinspect_drift, dbinspect_hive and dbinspect_hive_ce,
plus optional mDNS advertising in dbinspect_mdns.