Skip to content

πŸ”₯ Furnace v0.2.0 - Enhanced CLI & Structured Logging

Choose a tag to compare

@github-actions github-actions released this 17 Jul 05:19
· 331 commits to main since this release
471afab

πŸš€ Furnace v0.2.0 - Enhanced CLI Validation & Structured Logging

✨ Major New Features

πŸ”§ Enhanced CLI Argument Validation

  • Multi-format model support: Both .burn and .mpk (MessagePack) formats
  • Comprehensive input validation for model path, host, and port
  • Robust host validation: IP addresses, hostnames, and format checks
  • File permission and size validation: Prevents loading invalid models (10GB limit)
  • Detailed error messages with specific reasons and actionable suggestions
  • Improved help text with usage examples and detailed descriptions

πŸ“Š Production-Ready Structured Logging

  • Environment-aware logging: Automatic detection of development vs production modes
  • JSON structured logging for production environments (machine-readable)
  • Human-readable logging for development (with colors and file locations)
  • Session tracking: Unique session IDs for request correlation and debugging
  • Comprehensive log coverage: Model loading, server startup, configuration, and errors
  • Smart timestamps: UTC for production, local time for development

πŸ›‘οΈ Enhanced Error Handling

  • Structured error responses with consistent JSON format
  • Detailed validation errors with context and suggestions
  • Graceful error handling for all CLI arguments and edge cases
  • Security-conscious: No sensitive information leaked in error messages

πŸ”„ Breaking Changes

  • CLI now accepts both .burn and .mpk model files (backward compatible)
  • Enhanced logging format with structured fields (may affect log parsing)
  • Stricter input validation (may reject previously accepted invalid inputs)

πŸ“‹ Technical Improvements

  • Better argument parsing with clap value parsers and validation
  • Host validation: Proper IP address parsing and hostname format validation
  • Port range validation: 1024-65535 with clear privilege warnings
  • Concurrency limits: 1-10000 requests with proper validation
  • Environment-based configuration: FURNACE_ENV support for deployment flexibility

πŸ§ͺ Quality Assurance

  • βœ… All CLI validation scenarios tested and verified
  • βœ… Both development and production logging thoroughly tested
  • βœ… Model loading with .mpk files confirmed working
  • βœ… Error handling and edge cases extensively validated
  • βœ… All CI checks passing across multiple platforms (Ubuntu, macOS, Windows)
  • βœ… Security audits and code quality checks passed

πŸ“š Documentation & UX

  • Enhanced help text with practical usage examples
  • Detailed argument descriptions for all CLI options
  • Clear error messages with actionable guidance
  • Improved developer experience with better feedback and validation

πŸš€ Performance & Reliability

  • Optimized logging performance with environment-specific configurations
  • Efficient validation with minimal overhead
  • Robust error recovery and graceful degradation
  • Production-ready with comprehensive monitoring and debugging support

οΏ½οΏ½ Installation & Usage

Quick Start

# Download and run with sample model
curl -L https://github.com/Gilfeather/furnace/releases/download/v0.2.0/furnace-x86_64-unknown-linux-gnu -o furnace
chmod +x furnace
./furnace --model-path ./model.mpk

From Source

git clone https://github.com/Gilfeather/furnace.git
cd furnace
cargo build --release

Usage Examples

# Basic usage with .mpk model
./furnace --model-path ./model.mpk

# Production deployment with JSON logging
FURNACE_ENV=production ./furnace --model-path ./model.mpk --host 0.0.0.0 --port 8080

# Development with debug logging and optimizations
./furnace --model-path ./model.burn --log-level debug --enable-kernel-fusion --enable-autotuning

# Get comprehensive help
./furnace --help

πŸ“Š Performance Metrics

  • Binary Size: 2.3MB (single executable)
  • Inference Time: ~0.5ms (simple MLP model)
  • Memory Usage: <50MB runtime
  • Startup Time: <100ms
  • Concurrent Requests: Up to 10,000 configurable

What's Changed

  • πŸ”§ Enhanced CLI validation and structured logging by @Gilfeather in #19
  • πŸš€ Comprehensive benchmark suite for performance analysis by @Gilfeather in #17
  • ⚑ Advanced Burn model loading with backend support by @Gilfeather in #16
  • πŸ“š Documentation and roadmap updates by @Gilfeather in #15
  • πŸ—οΈ Nix build support by @Joaqim in #14
  • πŸ”§ Release workflow improvements by @Gilfeather in #13

New Contributors


Full Changelog: v0.1.0...v0.2.0