129 lines
3.6 KiB
Markdown
129 lines
3.6 KiB
Markdown
# Technology Stack
|
|
|
|
**Analysis Date:** 2026-02-28
|
|
|
|
## Languages
|
|
|
|
**Primary:**
|
|
- Rust - CLI/TUI application for markdown bulletin board system
|
|
|
|
## Runtime
|
|
|
|
**Environment:**
|
|
- Rust compiler and runtime
|
|
|
|
**Package Manager:**
|
|
- Cargo
|
|
- Lockfile: `Cargo.lock` present
|
|
|
|
## Frameworks
|
|
|
|
**Core:**
|
|
- ratatui 0.30.0 - Terminal user interface (TUI) framework for building rich CLI applications
|
|
|
|
**Build:**
|
|
- cargo - Rust package manager and build system
|
|
|
|
## Key Dependencies
|
|
|
|
**Critical:**
|
|
- ratatui 0.30.0 - Main TUI framework providing terminal rendering, event handling, and widgets
|
|
- ratatui-core - Core functionality for ratatui
|
|
- ratatui-crossterm - Crossterm backend integration for ratatui
|
|
- ratatui-macros - Proc macros for ratatui
|
|
- ratatui-termwiz - Termwiz backend support for ratatui
|
|
- ratatui-widgets - Widget library for ratatui
|
|
|
|
**Terminal & Input:**
|
|
- crossterm 0.29.0 - Cross-platform terminal manipulation library (Windows/Unix compatible)
|
|
- signal-hook - Unix signal handling for clean shutdowns
|
|
- signal-hook-mio - Integration between signal-hook and mio
|
|
- termwiz - Terminal operations library with wide character support
|
|
- terminfo - Terminal capability detection
|
|
- vtparse - VT100 escape sequence parser
|
|
- utf8parse - UTF-8 parsing utilities
|
|
|
|
**UI Rendering & Text:**
|
|
- unicode-width - Calculate display width of unicode characters
|
|
- unicode-truncate - Truncate unicode strings to display width
|
|
- unicode-segmentation - Segment unicode text
|
|
- wezterm-bidi - Bidirectional text support
|
|
- fancy-regex - Advanced regex support with lookahead/lookbehind
|
|
- regex 1.x - Regular expression library
|
|
|
|
**Graphics & Color:**
|
|
- csscolorparser 0.6.2 - Parse CSS color strings
|
|
- wezterm-color-types - Color type definitions
|
|
- euclid - 2D and 3D geometry primitives
|
|
- line-clipping - Line clipping algorithms
|
|
|
|
**Data Structures & Utilities:**
|
|
- indexmap - Hash map preserving insertion order
|
|
- hashbrown - Faster hashmap implementation
|
|
- smallvec - Vector that stores small amounts inline
|
|
- itertools - Iterator extensions
|
|
- nom - Parser combinators library
|
|
- pest - PEG parser generator
|
|
- strum/strum_macros - Enum utilities and macros
|
|
|
|
**Serialization:**
|
|
- serde/serde_json - Serialization framework
|
|
- base64 - Base64 encoding/decoding
|
|
|
|
**Error Handling:**
|
|
- anyhow 1.0.102 - Flexible error handling
|
|
- thiserror - Structured error types
|
|
|
|
**Platform Support:**
|
|
- libc - C library bindings (Unix)
|
|
- rustix - Wrapper around system calls
|
|
- nix - Unix-like API bindings
|
|
- winapi - Windows API bindings
|
|
- windows-sys - Windows system APIs
|
|
- parking_lot - Synchronization primitives
|
|
|
|
**Hashing & Crypto:**
|
|
- sha2 - SHA-2 digest algorithms
|
|
- xxhash-rust - xxHash algorithm
|
|
|
|
**UUID & ID Generation:**
|
|
- uuid - UUID generation and parsing
|
|
- mac_address - MAC address utilities
|
|
|
|
**Logging:**
|
|
- log - Logging facade
|
|
|
|
**Development & Macros:**
|
|
- syn - Rust syntax tree parsing
|
|
- quote - Quoting for proc macros
|
|
- proc-macro2 - Proc macro utilities
|
|
- darling - Attribute macro argument parsing
|
|
|
|
## Configuration
|
|
|
|
**Build Configuration:**
|
|
- Edition: 2024 (Rust edition)
|
|
- Target: Binary executable
|
|
- Manifest: `Cargo.toml`
|
|
|
|
**Dependencies Management:**
|
|
- Lock file: `Cargo.lock` ensures reproducible builds
|
|
- All dependencies from crates.io registry
|
|
- Transitive dependency management handled by Cargo
|
|
|
|
## Platform Requirements
|
|
|
|
**Development:**
|
|
- Rust toolchain (cargo)
|
|
- POSIX-compliant system (Linux, macOS) or Windows
|
|
- Terminal support for modern escape sequences
|
|
|
|
**Production:**
|
|
- Binary compiled for target platform (Linux, macOS, Windows)
|
|
- Terminal with VT100 escape sequence support
|
|
- UTF-8 capable terminal
|
|
|
|
---
|
|
|
|
*Stack analysis: 2026-02-28*
|