Files
bbs-md/.planning/codebase/STACK.md
T
2026-02-28 20:12:08 +01:00

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*