PMDaemon v0.1.0 - Initial Release
We're thrilled to announce the initial release of PMDaemon, a high-performance process manager built in Rust that takes inspiration from PM2 while adding innovative features that exceed the original.
π― Why PMDaemon?β
PMDaemon was created to address the limitations of existing process managers while providing a familiar interface for PM2 users. Built with Rust, it offers memory safety, blazing performance, and advanced features not available in other process managers.
π Core Featuresβ
Complete Process Managementβ
- Lifecycle management: Full control over process start, stop, restart, reload, and delete operations
- Process clustering: Automatic load balancing across multiple instances
- Auto-restart on crash: Configurable limits and intelligent restart logic
- Graceful shutdown: Proper signal handling (SIGTERM/SIGINT) for clean process termination
- Configuration persistence: Multi-session support with persistent process configurations
Advanced Port Management (Beyond PM2)β
One of PMDaemon's standout features is its sophisticated port management system:
- Port range distribution: Automatically distribute ports across cluster instances (
--port 3000-3003
) - Auto-assignment from ranges: Smart port allocation (
--port auto:5000-5100
) - Built-in conflict detection: Prevents port conflicts before they happen
- Runtime port overrides: Change ports without modifying configuration files
- Port visibility: See assigned ports in process listings
# Start a cluster with automatic port distribution
pmdaemon start app.js --instances 4 --port 3000-3003
# Auto-assign ports from a range
pmdaemon start api.js --port auto:8000-8100
Real-time Monitoringβ
- System metrics: CPU, memory, uptime tracking with system-wide statistics
- Load average monitoring: Track system load across 1, 5, and 15-minute intervals
- Memory limit enforcement: Automatic restart when processes exceed memory limits
- Process health checks: Built-in health monitoring with auto-restart capabilities
Professional CLI Interfaceβ
PMDaemon provides a familiar yet enhanced command-line experience:
- PM2-compatible commands: All the commands you know and love
- Enhanced display: Color-coded statuses and professional table formatting
- Rich monitoring: Real-time process monitoring with system overview
# Familiar PM2-style commands
pmdaemon start app.js --name my-app --instances 2
pmdaemon list
pmdaemon monit
pmdaemon logs my-app --follow
Web API & WebSocket Supportβ
- REST API: Complete process management via HTTP endpoints
- PM2-compatible responses: Drop-in replacement for PM2 API consumers
- Real-time updates: WebSocket support for live process monitoring
- Security: CORS support and proper security headers
Robust Log Managementβ
- Separate streams: Individual stdout/stderr file handling
- PID file management: Proper process tracking and cleanup
- Log viewing: Built-in log viewing and following capabilities
- Graceful handling: Robust error handling for missing or corrupted log files
ποΈ Technical Excellenceβ
Built with Rustβ
- Memory safety: Zero-cost abstractions without garbage collection overhead
- Performance: Native performance with minimal resource usage
- Concurrency: Async/await architecture using Tokio for efficient I/O
Modern Architectureβ
- Web server: Powered by Axum for high-performance HTTP handling
- System monitoring: Leverages sysinfo for cross-platform system metrics
- Cross-platform: Full support for Linux, macOS, and Windows
Comprehensive Testingβ
- 158 comprehensive tests: Unit, integration, end-to-end, and documentation tests
- Complete documentation: Full Rust documentation with examples
- Usage guides: Comprehensive examples and migration guides
π Getting Startedβ
Installationβ
# Install from crates.io
cargo install pmdaemon
# Or build from source
git clone https://github.com/entrepeneur4lyf/pmdaemon.git
cd pmdaemon
cargo build --release
Quick Startβ
# Start a simple application
pmdaemon start app.js --name my-app
# Start a cluster with port management
pmdaemon start server.js --instances 4 --port 3000-3003
# Monitor processes in real-time
pmdaemon monit
# View and follow logs
pmdaemon logs my-app --follow
Migration from PM2β
PMDaemon is designed to be a drop-in replacement for most PM2 use cases. Check out our migration guide for detailed instructions.
πΊοΈ What's Nextβ
This initial release establishes PMDaemon as a robust, production-ready process manager. Future releases will continue to expand capabilities while maintaining the familiar interface that makes PMDaemon easy to adopt.
π Communityβ
We're excited to see what the community builds with PMDaemon. Join us:
- GitHub: entrepeneur4lyf/pmdaemon
- Issues: Report bugs and request features
- Discussions: Share your use cases and get help
Release: v0.1.0