[package]
name = "rvpm"
version = "3.3.0"
edition = "2024"
description = "Fast Neovim plugin manager with pre-compiled loader and merge optimization"
license = "MIT"
repository = "https://github.com/yukimemi/rvpm"
homepage = "https://github.com/yukimemi/rvpm"
readme = "README.md"
keywords = ["neovim", "plugin-manager", "vim", "lazy-loading"]
categories = ["command-line-utilities", "development-tools"]

[dependencies]
# CLI & UI
clap = { version = "4.6", features = ["derive"] }
ratatui = "0.30"
crossterm = { version = "0.29", features = ["events"] }
indicatif = "0.18"
dialoguer = { version = "0.12", features = ["fuzzy-select"] }
anyhow = "1.0"

# Async & Process
tokio = { version = "1.51", features = ["full"] }

# Template & Config
tera = "1.20"
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
toml = "1.1"
toml_edit = "0.25"

# HTTP client (for store)
# default-features = false to pin TLS backend to `rustls` (avoid native-tls /
# OpenSSL transitively). Re-add the non-TLS pieces of reqwest's default feature
# set (`http2`, `charset`, `system-proxy`) so behavior matches 0.12 defaults.
reqwest = { version = "0.13", default-features = false, features = [
    "blocking",
    "json",
    "query",
    "rustls",
    "http2",
    "charset",
    "system-proxy",
] }
open = "5"

# File System & Path
dirs = "6.0"
junction = "1.4"
walkdir = "2.5"

# Git (in-process, no fork)
gix = { version = "0.81", default-features = false, features = [
    "sha1",
    "blocking-network-client",
    "blocking-http-transport-reqwest-rust-tls",
    "worktree-mutation",
    "status",
    "dirwalk",
    "revision",
] }

[dev-dependencies]
tempfile = "3.27"
