A lightweight, high-performance UTC (Universal Time Coordinate) daemon written in C++.
- High Performance: Optimized for low-latency time synchronization
- Cross-Platform: Supports macOS, Linux, and Windows
- Configurable: Flexible configuration options
- Secure: Built with security best practices
- Containerized: Full Docker support for development and deployment
The fastest way to get started is with Docker:
# Quick deployment cd deployment/examples/docker docker-compose up -d # Development environment docker-compose --profile dev up dev # Build for all platforms ./scripts/build-docker.sh -d all # Deploy with custom settings ./scripts/deploy-docker.sh -p runtime -c ./config -l ./logsFor more Docker options, see the Docker Deployment Guide.
# Install dependencies make deps # Build the project make build # Run tests make test # Install make installThe project includes a comprehensive modular help system:
# Quick reference make help # Complete reference make help-all # Category-specific help make help-build # Build and development targets make help-package # Package creation targets make help-deps # Dependency management targets make help-service # Service management targets make help-docker # Docker targets make help-config # Configuration management targets make help-platform # Platform-specific targetsThe Docker setup supports multiple Linux distributions and architectures:
- Distributions: Ubuntu, CentOS, Alpine Linux
- Architectures: x86_64, arm64, armv7
- Multi-stage builds for optimized production images
- Health checks and monitoring capabilities
- Volume mounts for configuration and logs
# Development environment docker-compose --profile dev up dev # Runtime container docker-compose --profile runtime up simple-utcd # Build for specific distribution docker-compose --profile build build build-ubuntu docker-compose --profile build build build-centos docker-compose --profile build build build-alpineUse the build script for automated cross-platform building:
# Build for all distributions ./scripts/build-docker.sh -d all # Build for specific distribution ./scripts/build-docker.sh -d ubuntu # Clean build cache ./scripts/build-docker.sh --clean# Deploy runtime environment ./scripts/deploy-docker.sh -p runtime # Deploy development environment ./scripts/deploy-docker.sh -p dev # Force rebuild and deploy ./scripts/deploy-docker.sh --clean --forceFor comprehensive Docker documentation, see Docker Deployment Guide.
- CMake 3.15+
- C++17 compatible compiler
- OpenSSL
- JsonCPP
# Install development tools (macOS) make dev-deps # Install development tools (Homebrew alternative) make dev-deps-brew # Run code quality checks make format make lint make security-scan# Run tests make test # Run tests with verbose output make test-verbose # Run tests in debug mode make dev-test# Standard build make build # Debug build make debug # Release build make release # Development build make dev-build# Create platform-specific packages make package # Create source package make package-source # Create all package formats make package-all# Install system service make service-install # Check service status make service-status # Start service make service-start # Stop service make service-stop- macOS: launchd service
- Linux: systemd service
- Windows: Windows Service
# Install configuration files make config-install # Backup configuration make config-backup # Install log rotation make log-rotateThe project includes comprehensive security scanning:
# Run security scan make security-scan # Run static analysis make analyze # Check code style make check-style- Fork the repository
- Create a feature branch
- Make your changes
- Run tests and quality checks
- Submit a pull request
# Format code make format # Run linting make lint # Run security scan make security-scan[Add your license information here]
See CHANGELOG.md for a detailed history of changes.