(** Database handle and operations *) (** Opaque database handle *) type t (** Open or create a database file *) val open_db : string -> (t, Error.t) result (** Close the database *) val close : t -> (unit, Error.t) result (** Get database metadata *) val metadata : t -> Types.metadata (** Execute a read-only transaction *) val view : t -> (Types.ro Txn.t -> ('a, Error.t) result) -> ('a, Error.t) result (** Execute a read-write transaction *) val update : t -> (Types.rw Txn.t -> ('a, Error.t) result) -> ('a, Error.t) result