mudra-cli 0.1.0

A robust, high-performance currency converter with caching and CLI interface
Documentation
[package]
name = "mudra-cli"
version = "0.1.0"
edition = "2024"
authors = ["Ashish Bagdane <ashishbagdaneofficial@gmail.com>"]
description = "A robust, high-performance currency converter with caching and CLI interface"
readme = "README.md"
homepage = "https://github.com/AshishBagdane/mudra"
repository = "https://github.com/AshishBagdane/mudra"
license = "MIT"
keywords = ["currency", "exchange-rates", "cli", "converter", "finance"]
categories = ["command-line-utilities", "api-bindings"]
exclude = ["tests/*", ".github/*", "*.log", "target/*"]

[dependencies]
# HTTP client with JSON support
reqwest = { version = "0.11", features = ["json"] }
# Async runtime - required for reqwest
tokio = { version = "1.0", features = ["full"] }
# Async utilities for parallel operations
futures = "0.3"
# Serialization/deserialization framework
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
# Procedural macro for easy error handling
thiserror = "1.0"
# Flexible error handling and context
anyhow = "1.0"
# Command line argument parsing
clap = { version = "4.0", features = ["derive"] }
# Colored terminal output
colored = "2.0"
# Progress indicators
indicatif = "0.17"
# Date and time handling
chrono = { version = "0.4", features = ["serde"] }
# In-memory caching
moka = { version = "0.12", features = ["future"] }
# Async locks and utilities
dashmap = "5.5"
# URL parsing for historical endpoints
url = "2.4"

[dev-dependencies]
# HTTP mocking for tests
wiremock = "0.5"
# Async testing utilities
tokio-test = "0.4"
# Property-based testing
proptest = "1.0"
# Test assertions
assert_matches = "1.5"
# Temporary directories for tests
tempfile = "3.0"

[[bin]]
name = "mudra"
path = "src/main.rs"

[profile.release]
lto = true
codegen-units = 1
panic = "abort"
strip = true      # Remove debug symbols for smaller binary

[profile.dev]
debug = true

[workspace]
members = ["."]