Distributed real-time scheduling system with time-triggered execution capabilities. TIMPANI provides both C and Rust implementations of node executors and schedulers for deterministic real-time applications.
This repository contains both original C implementations and modern Rust ports with enhanced type safety and memory safety.
- TIMPANI-N (Node Executor): Executes time-triggered tasks on individual nodes
- TIMPANI-O (Node Scheduler): Orchestrates and schedules tasks across distributed nodes
- Sample Applications: Real-time test applications for system validation
git clone --recurse-submodules https://github.com/MCO-PICCOLO/TIMPANI.git
cd TIMPANINote: Use
--recurse-submodulesto automatically clone the required submodules (libbpf, etc.).
Refer to the individual component READMEs below for specific build and setup instructions.
Real-time sample applications for real-time system analysis. Provides periodic execution, deadline monitoring, and runtime statistics collection capabilities.
Quick Build:
cd sample-apps
mkdir build && cd build
cmake ..
makeFor detailed setup and usage → Full Documentation
C implementation of the time-triggered node executor component.
Quick Build:
cd timpani-n
mkdir build && cd build
cmake ..
makeFor detailed setup, dependencies, and usage → Full Documentation
C implementation of the orchestrator component with gRPC & protobuf support for distributed scheduling.
Quick Build:
cd timpani-o
mkdir build && cd build
cmake ..
makeFor detailed setup, protobuf configuration, and usage → Full Documentation
Rust ports of TIMPANI components with enhanced type safety and memory safety.
Rust implementation of the node executor with comprehensive CLI interface, configuration validation, and structured logging. Status: Configuration parsing complete, runtime features in development.
Quick Build:
cd timpani_rust/timpani-n
cargo build --release
cargo test # Run testsFor detailed setup, usage examples, and current status → Full Documentation
Rust implementation of the global scheduler component. Status: In development.
Quick Build:
cd timpani_rust/timpani-o
cargo build --release
cargo test # Run testsFor detailed setup and current development status → Full Documentation
This project is licensed under the MIT License - see the LICENSE file for details.
TIMPANI/
├── README.md # This file - main project overview
├── sample-apps/
│ ├── README.md # Sample applications documentation
├── timpani-n/
│ ├── README.md # C implementation: Node executor
│ ├── README.CentOS.md # CentOS setup guide
│ └── README.Ubuntu20.md # Ubuntu setup guide
├── timpani-o/
│ └── README.md # C implementation: Node scheduler
└── timpani_rust/
├── README.md # Rust components overview
├── timpani-n/
│ └── README.md # Rust node executor (config parsing complete)
└── timpani-o/
└── README.md # Rust node scheduler (in development)
Navigation: Sample Apps | TIMPANI-N (C) | TIMPANI-O (C) | Rust Components | Rust TIMPANI-N