[workspace]
members = [
"opys-backend-markdown-local",
"opys-tui",
"opys",
]
resolver = "2"
[workspace.package]
version = "0.12.0"
[package]
name = "opys-engine"
version.workspace = true
edition = "2021"
rust-version = "1.88"
description = "Core library for opys — a file-based inventory of typed markdown documents with a verify gate and SQL query layer"
license = "Apache-2.0"
repository = "https://github.com/BohdanTkachenko/opys"
readme = "README.md"
keywords = ["feature-inventory", "traceability", "markdown", "sql", "ci"]
categories = ["development-tools"]
exclude = [
".github/",
".claude-plugin/",
".codex-plugin/",
"pi-extension/",
"package.json",
"gemini-extension.json",
"opencode.json",
]
[features]
default = []
history = ["dep:gix"]
tui = []
[lib]
name = "opys_engine"
path = "src/lib.rs"
[dependencies]
clap = { version = "4", features = ["derive", "env"] }
serde = { version = "1", features = ["derive"] }
serde_norway = "0.9"
serde_json = "1"
toml = "0.8"
regex = "1"
walkdir = "2"
anyhow = "1"
thiserror = "1"
time = { version = "0.3", features = ["formatting", "parsing", "local-offset", "macros"] }
comrak = "0.52"
gluesql = { version = "0.19.0", default-features = false, features = [
"gluesql_memory_storage",
] }
futures = "0.3"
termimad = "0.34"
gix = { version = "0.84", default-features = false, features = [
"sha1",
], optional = true }
[dev-dependencies]
tempfile = "3"