347 releases (66 breaking)
Uses new Rust 2024
| new 0.99.0 | Apr 17, 2026 |
|---|---|
| 0.97.4 | Apr 7, 2026 |
| 0.96.9 | Mar 31, 2026 |
| 0.55.1 | Dec 29, 2025 |
| 0.47.6 | Nov 30, 2025 |
#2026 in Encoding
24 downloads per month
Used in 3 crates
(via vtcode-core)
26KB
504 lines
vtcode-markdown-store
Markdown-backed storage utilities extracted from VT Code.
This crate provides lightweight persistence helpers that serialize
structured data into Markdown files with embedded JSON and YAML blocks.
Human-readable state files replace the need for a database, and
file-level locking via fs2 ensures safe concurrent access.
Features
- Serialize any
serde::Serializetype into Markdown with embedded JSON + YAML sections - Deserialize back from either embedded format
- Exclusive/shared file locking (
fs2) for concurrent safety - Optional project management, key-value store, and cache modules
Public entrypoints
MarkdownStorage— core storage manager (new(),init(),store(),load(),list(),delete(),exists())SimpleKVStorage— simple key-value store backed by Markdown (featurekv)SimpleProjectManager/ProjectStorage/ProjectData— project metadata persistence (featureprojects)SimpleCache— file-system cache with Markdown-backed locking (featurecache)
Usage
use vtcode_markdown_store::MarkdownStorage;
use serde::{Serialize, Deserialize};
#[derive(Serialize, Deserialize)]
struct Note { title: String, body: String }
let storage = MarkdownStorage::new("/tmp/notes".into());
storage.init()?;
let note = Note { title: "Hello".into(), body: "World".into() };
storage.store("greeting", ¬e, "Greeting Note")?;
let loaded: Note = storage.load("greeting")?;
Feature flags
| Flag | Description |
|---|---|
projects (default) |
Project metadata management |
kv (default) |
Simple key-value storage |
cache (default) |
File-system cache utilities |
API reference
Dependencies
~2.3–4MB
~74K SLoC