hocuspocus-extension-database

Crates.iohocuspocus-extension-database
lib.rshocuspocus-extension-database
version0.1.0
created_at2025-10-29 17:01:42.106976+00
updated_at2025-10-29 17:01:42.106976+00
descriptionDatabase persistence extension for hocuspocus-rs (MVP): trait and types
homepage
repository
max_upload_size
id1906958
size4,214
xuhaojun (XuHaoJun)

documentation

README

hocuspocus-extension-database

Database persistence extension for hocuspocus-rs (MVP). Provides the DatabaseExtension trait and context types.

Usage

For a SQLite implementation, use the hocuspocus-extension-sqlite crate.

use hocuspocus_extension_database::{DatabaseExtension, types::{FetchContext, StoreContext}};
use hocuspocus_extension_sqlite::SqliteDatabase;

# async fn demo() -> anyhow::Result<()> {
let db = SqliteDatabase::connect("sqlite::memory:").await?;

// fetch (may be None)
let state = db.fetch(FetchContext { document_name: "doc1".into() }).await?;

// store
let state_bytes = vec![1,2,3];
db.store(StoreContext {
    document_name: "doc1".into(),
    state: &state_bytes,
    updated_at_millis: 0,
}).await?;
# Ok(())
# }
Commit count: 0

cargo fmt