A high-performance QDMI (Quantum Device Management Interface) device implementation for the Maestro quantum simulator. This project provides a standards-compliant interface for quantum circuit execution, enabling seamless integration with QDMI-compatible quantum development tools.
- QDMI Compliance: Fully implements the QDMI specification for quantum device interfaces
- Cross-Platform: Supports Linux and Windows platforms
- High Performance: Optimized C++ implementation for efficient quantum circuit simulation
- Dynamic Loading: Runtime library loading for flexible device management
- Comprehensive Testing: Extensive test suite using Google Test framework
- CMake: Version 3.19 or higher
- C++ Compiler:
- GCC 9.0+ or Clang 10.0+ (Linux)
- MSVC 2019+ (Windows)
- C Compiler: For the C interface
- Git: For cloning dependencies
The following dependencies are automatically fetched during the build process:
- QDMI: Quantum Device Management Interface specification
- Google Test: Testing framework (required only for tests)
# Clone the repository
git clone https://github.com/QoroQuantum/maestro-qdmi-device.git
cd maestro-qdmi-device
# Create build directory
mkdir build && cd build
# Configure and build
cmake ..
cmake --build .CXX_DEVICE: Build the C++ device implementation (default:ON)BUILD_MAESTRO_DEVICE_TESTS: Build test suite (default:ONwhen building as the main project)
cmake .. -DBUILD_MAESTRO_DEVICE_TESTS=OFF
cmake --build .cmake .. -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_C_COMPILER=clang
cmake --build .Ensure you have the necessary development tools installed:
# Ubuntu/Debian
sudo apt-get install build-essential cmake git
# Fedora/RHEL
sudo dnf install gcc gcc-c++ cmake gitUse Visual Studio with CMake support or install CMake separately. Build from Developer Command Prompt:
cmake .. -G "Visual Studio 16 2019"
cmake --build . --config ReleaseAfter building with tests enabled:
cd build
ctest --output-on-failureOr run the test executable directly:
./test/maestro_device_testsThe Maestro QDMI device is designed to be loaded dynamically by QDMI-compatible quantum development environments. The device implements the standard QDMI interface functions for:
- Device initialization and configuration
- Quantum circuit submission and execution
- Result retrieval and processing
- Device capability querying
For integration examples and API documentation, please refer to the QDMI specification.
maestro-qdmi-device/
├── src/ # Source files
│ ├── Library.h # Dynamic library loading utilities
│ ├── MaestroLib.hpp # Core Maestro library interface
│ ├── Simulator.hpp # Quantum simulator implementation
│ └── maestro_device.cpp # QDMI device implementation
├── test/ # Test suite
│ ├── maestro_test_defs.cpp
│ └── test_maestro_device.cpp
├── cmake/ # CMake modules
├── CMakeLists.txt # Main CMake configuration
├── LICENSE # GPLv3 License
└── README.md # This file
We welcome contributions! Please see CONTRIBUTING.md for guidelines on:
- Setting up your development environment
- Code formatting standards
- Running tests
- Submitting pull requests
This project is licensed under the GNU General Public License v3.0 - see the LICENSE file for details.
Copyright 2025 Qoro Quantum Ltd.
- Maestro Quantum Simulator - High-performance quantum circuit simulator
- QDMI Specification - Quantum Device Management Interface standard
- Munich Quantum Software Stack - Comprehensive quantum software development ecosystem
This project is part of the Munich Quantum Software Stack initiative, contributing to the development of open standards for quantum computing interfaces.
For questions, issues, or feature requests, please:
- Open an issue on GitHub Issues
- Check existing discussions in GitHub Discussions
Note: This is a QDMI device implementation. For general quantum programming, you'll need a QDMI-compatible development environment or framework.