devpage 0.2.2

Live documents from a repository: sites, docs and slides from Markdown, and UI designs drawn from code — with comments, link checking and PDF
[package]
name = "devpage"
version = "0.2.2"
edition = "2024"
default-run = "devpage"
rust-version = "1.97"
description = "Live documents from a repository: sites, docs and slides from Markdown, and UI designs drawn from code — with comments, link checking and PDF"
license = "MIT"
repository = "https://github.com/andrei512/devpage"
readme = "docs/README.md"
keywords = ["markdown", "documentation", "slides", "mermaid", "live-reload"]
categories = ["command-line-utilities", "development-tools"]
exclude = ["deploy/", ".github/", ".claude/", ".agents/", "docs/plan/", "AGENTS.md", "CLAUDE.md"]

[dependencies]
anyhow = "1.0.104"
async-tungstenite = { version = "0.32.1", features = ["tokio-runtime", "tokio-rustls-native-certs"] }
base64 = "0.22.1"
axum = "0.8.9"
chromiumoxide = { version = "0.9.1", features = ["fetcher", "rustls", "zip8"] }
clap = { version = "4.6.7", features = ["derive"] }
comrak = "0.57.0"
oxc = { version = "=0.153.0", features = ["transformer", "codegen", "semantic"] }
futures = "0.3.34"
globset = "0.4.20"
ignore = "0.4.33"
mime_guess = "2.0.5"
notify = "8.2.1"
reqwest = "0.13"
serde = { version = "1.0.229", features = ["derive"] }
serde_json = "1.0.154"
serde_yaml = "0.9.34"
syntect = "5.3.0"
tokio = { version = "1.54.1", features = ["full"] }
tokio-stream = { version = "0.1.19", features = ["sync"] }
two-face = "0.5.2"
devpage-design = { path = "design", version = "0.2.2", features = ["server"] }
tonic = { version = "0.14.6", default-features = false, features = ["codegen"] }
tonic-web = "0.14.6"
tower = "0.5"
sha2 = "0.10.9"
tantivy = { version = "0.27", default-features = false, features = ["stemmer"] }
# The diagram engine (`src/diagrams.rs`): QuickJS, built from its C source
# by the crate, running the vendored pele bundle.
rquickjs = "0.14.0"

# The macOS watcher (`src/watch/macos.rs`): FSEvents streams on a dispatch
# queue, and kqueue.
[target.'cfg(target_os = "macos")'.dependencies]
objc2-core-services = { version = "0.3.2", default-features = false, features = ["std", "FSEvents", "dispatch2"] }
objc2-core-foundation = { version = "0.3.2", default-features = false, features = ["std", "CFArray", "CFString"] }
dispatch2 = { version = "0.3.1", default-features = false, features = ["std"] }
libc = "0.2.191"

[dev-dependencies]
prost = "0.14.4"
brotli = "9.1.0"
flate2 = "1.1.10"

# The design engine's WebAssembly module, which `cargo run -p
# devpage-design-module` builds into `assets/vendor/`: the page downloads it,
# so it is optimised for size.
[profile.wasm]
inherits = "release"
opt-level = "s"
lto = true
codegen-units = 1
strip = true

[workspace]
members = [".", "design", "design/wasm", "design/module"]
default-members = [".", "design", "design/wasm", "design/module"]

[build-dependencies]
brotli = "9.1.0"
flate2 = "1.1.10"
sha2 = "0.10.9"

# build.rs compresses the built-in assets with brotli at its best, which is
# slow unoptimised; optimise it in development builds too.
[profile.dev.package.brotli]
opt-level = 3

# QuickJS draws every diagram a page has; unoptimised it is many times slower.
[profile.dev.package.rquickjs-sys]
opt-level = 3