morpharch 2.2.3

Monorepo architecture drift visualizer with animated TUI
Documentation
[package]
name = "morpharch"
version = "2.2.3"
edition = "2024"
rust-version = "1.88"
authors = ["Onur <onur@morpharch.dev>"]
description = "Monorepo architecture drift visualizer with animated TUI"
license = "MIT OR Apache-2.0"
repository = "https://github.com/onplt/morpharch"
homepage = "https://github.com/onplt/morpharch"
documentation = "https://docs.rs/morpharch"
readme = "README.md"
keywords = ["monorepo", "architecture", "drift", "tui", "dependency-graph"]
categories = ["command-line-utilities", "development-tools", "visualization"]
exclude = [
    ".github/",
    ".claude/",
    "demo-monorepo/",
    "morpharch-demo/",
    "test-repos/",
    "screenshots/",
    "*.gif",
    "*.mp4",
    "npm/",
    "dist/",
    "Dockerfile",
    "install.sh",
    "install.ps1",
    "web/src/",
    "web/node_modules/",
    "web/package.json",
    "web/package-lock.json",
    "web/vite.config.ts",
    "web/tsconfig.json",
    "web/tsconfig.node.json",
    "web/tailwind.css",
    "web/index.html",
]

[dependencies]
# CLI framework
clap = { version = "4.5", features = ["derive"] }

# Git operations — gitoxide pure-Rust library
gix = "0.80"

# SQLite — bundled feature removes system SQLite dependency
rusqlite = { version = "0.38", features = ["bundled"] }

# Structured logging
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["env-filter"] }

# Error handling
anyhow = "1.0"

# Serialization
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
bincode = { version = "2.0", features = ["serde"] }

# Date/time operations
chrono = { version = "0.4", features = ["serde"] }

# Platform-independent directory paths
dirs = "6.0"

# Directed graph data structure
petgraph = { version = "0.8", features = ["serde-1", "graphmap", "stable_graph"] }

# Tree-sitter — incremental parsing framework
tree-sitter = "0.24"

# Language grammars
tree-sitter-rust = "0.23"
tree-sitter-typescript = "0.23"
tree-sitter-python = "0.23"
tree-sitter-go = "0.23"

# File system traversal
walkdir = "2.5"

# Terminal UI framework
ratatui = { version = "0.29", features = ["all-widgets", "unstable"] }
tui-markdown = "=0.3.1"

# Terminal backend
crossterm = { version = "0.29", features = ["event-stream"] }

# Async runtime
tokio = { version = "1.50", features = ["full"] }

# Async stream combinators
futures = "0.3"

# Random number generation
rand = "0.9"

# Data-parallel iteration
rayon = "1.10"

# Concurrent HashMap for parallel scanning
dashmap = "6.1"

# Bounded LRU cache
lru = "0.16"

# Image rendering and GIF encoding for movie export
image = { version = "0.25", default-features = false, features = ["gif"] }

# TOML config file parsing
toml = "0.8"

# Fast multi-pattern glob matching (used for ignore rules)
globset = "0.4"
reqwest = { version = "0.13.2", features = ["json", "stream"] }

# Web dashboard (morpharch serve)
axum = "0.8"
tower-http = { version = "0.6", features = ["cors", "set-header"] }
rust-embed = { version = "8", features = ["compression"] }
open = "5"
mime_guess = "2"
async-stream = "0.3"

[profile.release]
lto = true
codegen-units = 1
strip = true

# ── Distribution metadata ──

[package.metadata.binstall]
pkg-url = "{ repo }/releases/download/v{ version }/morpharch-{ target }{ archive-suffix }"
bin-dir = "morpharch{ binary-ext }"
pkg-fmt = "tgz"

[package.metadata.binstall.overrides.x86_64-unknown-linux-gnu]
pkg-url = "{ repo }/releases/download/v{ version }/morpharch-linux-x86_64.tar.gz"

[package.metadata.binstall.overrides.aarch64-unknown-linux-gnu]
pkg-url = "{ repo }/releases/download/v{ version }/morpharch-linux-aarch64.tar.gz"

[package.metadata.binstall.overrides.x86_64-apple-darwin]
pkg-url = "{ repo }/releases/download/v{ version }/morpharch-macos-x86_64.tar.gz"

[package.metadata.binstall.overrides.aarch64-apple-darwin]
pkg-url = "{ repo }/releases/download/v{ version }/morpharch-macos-aarch64.tar.gz"

[package.metadata.binstall.overrides.x86_64-pc-windows-msvc]
pkg-url = "{ repo }/releases/download/v{ version }/morpharch-windows-x86_64.zip"
pkg-fmt = "zip"

[package.metadata.deb]
maintainer = "Onur <onur@morpharch.dev>"
copyright = "2026 Onur"
license-file = ["LICENSE-MIT", "0"]
extended-description = """\
MorphArch scans monorepo Git history, builds per-commit dependency \
graphs using tree-sitter AST parsing, calculates architectural health \
scores, and renders the results as an animated force-directed graph \
in your terminal."""
section = "devel"
priority = "optional"
assets = [
    ["target/release/morpharch", "usr/bin/", "755"],
    ["README.md", "usr/share/doc/morpharch/README.md", "644"],
    ["LICENSE-MIT", "usr/share/doc/morpharch/LICENSE-MIT", "644"],
    ["LICENSE-APACHE", "usr/share/doc/morpharch/LICENSE-APACHE", "644"],
]

[package.metadata.generate-rpm]
assets = [
    { source = "target/release/morpharch", dest = "/usr/bin/morpharch", mode = "0755" },
    { source = "README.md", dest = "/usr/share/doc/morpharch/README.md", mode = "0644", doc = true },
    { source = "LICENSE-MIT", dest = "/usr/share/licenses/morpharch/LICENSE-MIT", mode = "0644" },
    { source = "LICENSE-APACHE", dest = "/usr/share/licenses/morpharch/LICENSE-APACHE", mode = "0644" },
]