maqet 0.0.1.4__tar.gz → 0.0.5__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (121) hide show
  1. maqet-0.0.5/LICENSE +21 -0
  2. maqet-0.0.5/MANIFEST.in +16 -0
  3. maqet-0.0.5/PKG-INFO +237 -0
  4. maqet-0.0.5/README.md +195 -0
  5. maqet-0.0.5/docs/README.md +81 -0
  6. maqet-0.0.5/docs/api/cli-reference.md +1026 -0
  7. maqet-0.0.5/docs/api/examples.md +990 -0
  8. maqet-0.0.5/docs/api/python-api.md +1254 -0
  9. maqet-0.0.5/docs/architecture/ARCHITECTURAL_DECISIONS.md +795 -0
  10. maqet-0.0.5/docs/architecture/ARCHITECTURAL_REVIEW.md +1269 -0
  11. maqet-0.0.5/docs/architecture/ARCHITECTURE_AUDIT_REPORT.md +1934 -0
  12. maqet-0.0.5/docs/architecture/PER_VM_PROCESS_ARCHITECTURE.md +1626 -0
  13. maqet-0.0.5/docs/architecture/QEMU_INTERNAL_ARCHITECTURE.md +580 -0
  14. maqet-0.0.5/docs/architecture/RELEASE_READINESS_AUDIT_0.1.0.md +1432 -0
  15. maqet-0.0.5/docs/architecture/UNIX_PHILOSOPHY_CHANGE.md +170 -0
  16. maqet-0.0.5/docs/archive/DAEMON_ARCHITECTURE_RESEARCH.md +612 -0
  17. maqet-0.0.5/docs/archive/DAEMON_REMOVED.md +82 -0
  18. maqet-0.0.5/docs/archive/PARALLEL_EXECUTION_SUMMARY.md +554 -0
  19. maqet-0.0.5/docs/archive/PARALLEL_FIX_PLAN.md +306 -0
  20. maqet-0.0.5/docs/archive/PERSISTENT_QEMUMACHINE_ARCHITECTURE.md +1421 -0
  21. maqet-0.0.5/docs/archive/README.md +57 -0
  22. maqet-0.0.5/docs/deployment/production.md +814 -0
  23. maqet-0.0.5/docs/user-guide/configuration.md +1176 -0
  24. maqet-0.0.5/docs/user-guide/installation.md +617 -0
  25. maqet-0.0.5/docs/user-guide/qmp-commands.md +1007 -0
  26. maqet-0.0.5/docs/user-guide/quickstart.md +690 -0
  27. maqet-0.0.5/docs/user-guide/storage.md +934 -0
  28. maqet-0.0.5/docs/user-guide/troubleshooting.md +1267 -0
  29. maqet-0.0.5/maqet/__init__.py +51 -0
  30. maqet-0.0.5/maqet/__main__.py +96 -0
  31. maqet-0.0.5/maqet/__version__.py +3 -0
  32. maqet-0.0.5/maqet/api/__init__.py +35 -0
  33. maqet-0.0.5/maqet/api/decorators.py +184 -0
  34. maqet-0.0.5/maqet/api/metadata.py +147 -0
  35. maqet-0.0.5/maqet/api/registry.py +182 -0
  36. maqet-0.0.5/maqet/cli.py +71 -0
  37. maqet-0.0.5/maqet/config/__init__.py +26 -0
  38. maqet-0.0.5/maqet/config/merger.py +237 -0
  39. maqet-0.0.5/maqet/config/parser.py +198 -0
  40. maqet-0.0.5/maqet/config/validators.py +519 -0
  41. maqet-0.0.5/maqet/config_handlers.py +684 -0
  42. maqet-0.0.5/maqet/constants.py +200 -0
  43. maqet-0.0.5/maqet/exceptions.py +226 -0
  44. maqet-0.0.5/maqet/formatters.py +294 -0
  45. maqet-0.0.5/maqet/generators/__init__.py +12 -0
  46. maqet-0.0.5/maqet/generators/base_generator.py +101 -0
  47. maqet-0.0.5/maqet/generators/cli_generator.py +635 -0
  48. maqet-0.0.5/maqet/generators/python_generator.py +247 -0
  49. maqet-0.0.5/maqet/generators/rest_generator.py +58 -0
  50. maqet-0.0.5/maqet/handlers/__init__.py +12 -0
  51. maqet-0.0.5/maqet/handlers/base.py +108 -0
  52. maqet-0.0.5/maqet/handlers/init.py +147 -0
  53. maqet-0.0.5/maqet/handlers/stage.py +196 -0
  54. maqet-0.0.5/maqet/ipc/__init__.py +29 -0
  55. maqet-0.0.5/maqet/ipc/retry.py +265 -0
  56. maqet-0.0.5/maqet/ipc/runner_client.py +285 -0
  57. maqet-0.0.5/maqet/ipc/unix_socket_server.py +239 -0
  58. maqet-0.0.5/maqet/logger.py +174 -0
  59. maqet-0.0.5/maqet/machine.py +884 -0
  60. maqet-0.0.5/maqet/managers/__init__.py +7 -0
  61. maqet-0.0.5/maqet/managers/qmp_manager.py +333 -0
  62. maqet-0.0.5/maqet/managers/snapshot_coordinator.py +327 -0
  63. maqet-0.0.5/maqet/managers/vm_manager.py +683 -0
  64. maqet-0.0.5/maqet/maqet.py +1120 -0
  65. maqet-0.0.5/maqet/os_interactions.py +46 -0
  66. maqet-0.0.5/maqet/process_spawner.py +395 -0
  67. maqet-0.0.5/maqet/qemu_args.py +76 -0
  68. maqet-0.0.5/maqet/qmp/__init__.py +10 -0
  69. maqet-0.0.5/maqet/qmp/commands.py +92 -0
  70. maqet-0.0.5/maqet/qmp/keyboard.py +311 -0
  71. maqet-0.0.5/maqet/qmp/qmp.py +17 -0
  72. maqet-0.0.5/maqet/snapshot.py +473 -0
  73. maqet-0.0.5/maqet/state.py +958 -0
  74. maqet-0.0.5/maqet/storage.py +736 -0
  75. maqet-0.0.5/maqet/validation/__init__.py +9 -0
  76. maqet-0.0.5/maqet/validation/config_validator.py +170 -0
  77. maqet-0.0.5/maqet/vm_runner.py +523 -0
  78. maqet-0.0.5/maqet.egg-info/PKG-INFO +237 -0
  79. maqet-0.0.5/maqet.egg-info/SOURCES.txt +84 -0
  80. maqet-0.0.5/maqet.egg-info/entry_points.txt +2 -0
  81. maqet-0.0.5/maqet.egg-info/requires.txt +19 -0
  82. {maqet-0.0.1.4/src → maqet-0.0.5}/maqet.egg-info/top_level.txt +0 -1
  83. maqet-0.0.5/pyproject.toml +175 -0
  84. maqet-0.0.5/requirements.txt +6 -0
  85. maqet-0.0.1.4/PKG-INFO +0 -5
  86. maqet-0.0.1.4/README.md +0 -93
  87. maqet-0.0.1.4/pyproject.toml +0 -16
  88. maqet-0.0.1.4/src/maqet/__init__.py +0 -7
  89. maqet-0.0.1.4/src/maqet/core.py +0 -411
  90. maqet-0.0.1.4/src/maqet/functions.py +0 -104
  91. maqet-0.0.1.4/src/maqet/logger.py +0 -69
  92. maqet-0.0.1.4/src/maqet/storage.py +0 -196
  93. maqet-0.0.1.4/src/maqet.egg-info/PKG-INFO +0 -5
  94. maqet-0.0.1.4/src/maqet.egg-info/SOURCES.txt +0 -36
  95. maqet-0.0.1.4/src/maqet.egg-info/requires.txt +0 -1
  96. maqet-0.0.1.4/src/qemu/machine/__init__.py +0 -36
  97. maqet-0.0.1.4/src/qemu/machine/console_socket.py +0 -142
  98. maqet-0.0.1.4/src/qemu/machine/machine.py +0 -954
  99. maqet-0.0.1.4/src/qemu/machine/py.typed +0 -0
  100. maqet-0.0.1.4/src/qemu/machine/qtest.py +0 -191
  101. maqet-0.0.1.4/src/qemu/qmp/__init__.py +0 -59
  102. maqet-0.0.1.4/src/qemu/qmp/error.py +0 -50
  103. maqet-0.0.1.4/src/qemu/qmp/events.py +0 -717
  104. maqet-0.0.1.4/src/qemu/qmp/legacy.py +0 -319
  105. maqet-0.0.1.4/src/qemu/qmp/message.py +0 -209
  106. maqet-0.0.1.4/src/qemu/qmp/models.py +0 -146
  107. maqet-0.0.1.4/src/qemu/qmp/protocol.py +0 -1057
  108. maqet-0.0.1.4/src/qemu/qmp/py.typed +0 -0
  109. maqet-0.0.1.4/src/qemu/qmp/qmp_client.py +0 -655
  110. maqet-0.0.1.4/src/qemu/qmp/qmp_shell.py +0 -618
  111. maqet-0.0.1.4/src/qemu/qmp/qmp_tui.py +0 -655
  112. maqet-0.0.1.4/src/qemu/qmp/util.py +0 -219
  113. maqet-0.0.1.4/src/qemu/utils/__init__.py +0 -162
  114. maqet-0.0.1.4/src/qemu/utils/accel.py +0 -84
  115. maqet-0.0.1.4/src/qemu/utils/py.typed +0 -0
  116. maqet-0.0.1.4/src/qemu/utils/qemu_ga_client.py +0 -323
  117. maqet-0.0.1.4/src/qemu/utils/qom.py +0 -273
  118. maqet-0.0.1.4/src/qemu/utils/qom_common.py +0 -175
  119. maqet-0.0.1.4/src/qemu/utils/qom_fuse.py +0 -207
  120. {maqet-0.0.1.4/src → maqet-0.0.5}/maqet.egg-info/dependency_links.txt +0 -0
  121. {maqet-0.0.1.4 → maqet-0.0.5}/setup.cfg +0 -0
maqet-0.0.5/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 Max Rogol
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,16 @@
1
+ include README.md
2
+ include LICENSE
3
+ include requirements.txt
4
+ recursive-include docs *.md
5
+ recursive-include maqet *.yaml *.yml
6
+ recursive-exclude docs/development *
7
+ recursive-exclude qemu *
8
+ recursive-exclude tests *
9
+ recursive-exclude . __pycache__
10
+ recursive-exclude . *.pyc
11
+ recursive-exclude . *.pyo
12
+ recursive-exclude . *.log
13
+ exclude CLAUDE.md
14
+ exclude test_config.yaml
15
+ exclude main.py
16
+ exclude test.py
maqet-0.0.5/PKG-INFO ADDED
@@ -0,0 +1,237 @@
1
+ Metadata-Version: 2.4
2
+ Name: maqet
3
+ Version: 0.0.5
4
+ Summary: M4x0n's QEMU Tool - A Python-based QEMU automation framework for VM running
5
+ Author: Max Rogol
6
+ Maintainer: Max Rogol
7
+ License-Expression: MIT
8
+ Project-URL: Repository, https://github.com/m4x0n/maqet
9
+ Project-URL: Documentation, https://github.com/m4x0n/maqet/blob/main/README.md
10
+ Project-URL: Issues, https://github.com/m4x0n/maqet/issues
11
+ Keywords: qemu,virtualization,vm
12
+ Classifier: Development Status :: 4 - Beta
13
+ Classifier: Intended Audience :: Developers
14
+ Classifier: Intended Audience :: System Administrators
15
+ Classifier: Operating System :: POSIX :: Linux
16
+ Classifier: Programming Language :: Python :: 3
17
+ Classifier: Programming Language :: Python :: 3.12
18
+ Classifier: Programming Language :: Python :: 3.13
19
+ Classifier: Topic :: Software Development :: Testing
20
+ Classifier: Topic :: System :: Systems Administration
21
+ Classifier: Topic :: Utilities
22
+ Requires-Python: >=3.12
23
+ Description-Content-Type: text/markdown
24
+ License-File: LICENSE
25
+ Requires-Dist: python-benedict>=0.33.2
26
+ Requires-Dist: PyYAML>=6.0.2
27
+ Provides-Extra: qemu
28
+ Requires-Dist: qemu.qmp>=3.0.0; extra == "qemu"
29
+ Provides-Extra: tables
30
+ Requires-Dist: tabulate>=0.9.0; extra == "tables"
31
+ Provides-Extra: dev
32
+ Requires-Dist: pytest>=6.0; extra == "dev"
33
+ Requires-Dist: pytest-cov; extra == "dev"
34
+ Requires-Dist: pytest-testmon; extra == "dev"
35
+ Requires-Dist: black; extra == "dev"
36
+ Requires-Dist: flake8; extra == "dev"
37
+ Requires-Dist: mypy; extra == "dev"
38
+ Requires-Dist: isort; extra == "dev"
39
+ Requires-Dist: pre-commit; extra == "dev"
40
+ Requires-Dist: tabulate>=0.9.0; extra == "dev"
41
+ Dynamic: license-file
42
+
43
+ # MAQET
44
+
45
+ **MAQET** (M4x0n's QEMU Tool) is a VM management system that implements unified API generation. Methods decorated with `@api_method` automatically become CLI commands, Python API methods, and configuration-driven calls.
46
+
47
+ ## Quick Start
48
+
49
+ ### Installation
50
+
51
+ ```bash
52
+ pip install maqet
53
+ ```
54
+
55
+ **Optional Dependencies:**
56
+
57
+ - `psutil` - Enhanced process management and validation (recommended)
58
+
59
+ ```bash
60
+ pip install psutil
61
+ ```
62
+
63
+ Without psutil, basic PID tracking still works but ownership validation is skipped.
64
+
65
+ ### Core Concept
66
+
67
+ Write once, use everywhere. A single method becomes a CLI command, Python API, and configuration option:
68
+
69
+ ```python
70
+ @api_method(cli_name="start", description="Start a virtual machine", category="vm")
71
+ def start(self, vm_id: str, detach: bool = False):
72
+ """Start a virtual machine."""
73
+ # Single implementation
74
+ ```
75
+
76
+ This automatically creates:
77
+
78
+ - **CLI**: `maqet start myvm --detach`
79
+ - **Python API**: `maqet.start("myvm", detach=True)`
80
+ - **Config**: VM settings only (no commands in YAML)
81
+
82
+ ## Usage
83
+
84
+ ### Command Line Interface
85
+
86
+ ```bash
87
+ # Create a VM
88
+ maqet add --config config.yaml --name myvm
89
+
90
+ # Start VM
91
+ maqet start myvm
92
+
93
+ # List all VMs
94
+ maqet ls
95
+
96
+ # Check VM status
97
+ maqet status myvm
98
+
99
+ # Execute QMP command
100
+ maqet qmp myvm system_powerdown
101
+
102
+ # Remove VM
103
+ maqet rm myvm --force
104
+ ```
105
+
106
+ ### Python API
107
+
108
+ ```python
109
+ from maqet import Maqet
110
+
111
+ maqet = Maqet()
112
+
113
+ # Create and start VM
114
+ vm_id = maqet.add(name='myvm', memory='4G', cpu=2)
115
+ maqet.start(vm_id)
116
+
117
+ # Manage VM
118
+ status = maqet.status(vm_id)
119
+ maqet.qmp(vm_id, 'system_powerdown')
120
+ maqet.rm(vm_id, force=True)
121
+ ```
122
+
123
+ ### Configuration Files
124
+
125
+ ```yaml
126
+ # config.yaml - VM configuration only
127
+ name: myvm
128
+ binary: /usr/bin/qemu-system-x86_64
129
+ memory: 4G
130
+ cpu: 2
131
+ storage:
132
+ - name: hdd
133
+ size: 20G
134
+ type: qcow2
135
+ interface: virtio
136
+ ```
137
+
138
+ ```bash
139
+ # Use configuration file
140
+ maqet add --config config.yaml
141
+ maqet start myvm --detach
142
+ ```
143
+
144
+ **Configuration Features:**
145
+
146
+ - Deep-merge multiple config files
147
+ - Lists are concatenated (storage, network)
148
+ - Command-line args override config values
149
+ - Full QEMU argument support
150
+
151
+ See [Configuration Guide](docs/user-guide/configuration.md) for details.
152
+
153
+ ## Core Commands
154
+
155
+ | Command | Description | Example |
156
+ |---------|-------------|---------|
157
+ | `add` | Create new VM | `maqet add --config config.yaml --name myvm` |
158
+ | `start` | Start VM | `maqet start myvm` |
159
+ | `stop` | Stop VM | `maqet stop myvm --force` |
160
+ | `rm` | Remove VM | `maqet rm myvm --force` |
161
+ | `ls` | List VMs | `maqet ls --status running` |
162
+ | `status` | Show VM status | `maqet status myvm` |
163
+ | `apply` | Apply configuration | `maqet apply myvm --memory 8G` |
164
+ | `snapshot` | Manage snapshots | `maqet snapshot myvm create hdd snap1` |
165
+
166
+ ### QMP Commands
167
+
168
+ | Command | Description | Example |
169
+ |---------|-------------|---------|
170
+ | `qmp keys` | Send key combination | `maqet qmp keys myvm ctrl alt f2` |
171
+ | `qmp type` | Type text to VM | `maqet qmp type myvm "hello world"` |
172
+ | `qmp screendump` | Take screenshot | `maqet qmp screendump myvm screenshot.ppm` |
173
+ | `qmp pause` | Pause VM | `maqet qmp pause myvm` |
174
+ | `qmp resume` | Resume VM | `maqet qmp resume myvm` |
175
+ | `qmp device-add` | Hot-plug device | `maqet qmp device-add myvm usb-storage` |
176
+ | `qmp device-del` | Hot-unplug device | `maqet qmp device-del myvm usb1` |
177
+
178
+ ### Global Options
179
+
180
+ | Option | Description |
181
+ |--------|-------------|
182
+ | `-v, --verbose` | Increase verbosity (-v, -vv, -vvv) |
183
+ | `-q, --quiet` | Suppress non-error output |
184
+ | `--data-dir` | Override data directory |
185
+ | `--log-file` | Enable file logging |
186
+
187
+ ## Documentation
188
+
189
+ ### Full Documentation
190
+
191
+ - **[Documentation Index](docs/README.md)** - Complete documentation portal
192
+ - **[Architecture](docs/architecture/)** - Internal architecture and design
193
+ - **[Development](docs/development/)** - Contributing and development guides
194
+ - **[Deployment](docs/deployment/)** - Production deployment
195
+ - **[Reference](docs/reference/)** - Technical references
196
+
197
+ ### Architecture
198
+
199
+ - **Unified API System** - Single methods generate CLI, Python API, and config
200
+ - **State Management** - SQLite backend with XDG compliance
201
+ - **QEMU Integration** - Full QMP protocol support
202
+ - **Storage System** - QCOW2, Raw, VirtFS support with snapshots
203
+
204
+ See [QEMU Internal Architecture](docs/architecture/QEMU_INTERNAL_ARCHITECTURE.md) for details.
205
+
206
+ ### Development
207
+
208
+ ```bash
209
+ # Run tests
210
+ python tests/run_tests.py
211
+
212
+ # Run pre-commit checks
213
+ pre-commit run --all-files
214
+ ```
215
+
216
+ See [Testing Guide](docs/development/TESTING.md) for details on running tests and contributing.
217
+
218
+ ### Roadmap
219
+
220
+ See [Roadmap](docs/development/ROADMAP.md) and [Future Features](docs/development/FUTURE_FEATURES.md) for planned improvements.
221
+
222
+ ## Features
223
+
224
+ - **Write Once, Use Everywhere** - Single method for CLI, API, and config
225
+ - **XDG Compliant** - Follows Linux directory standards
226
+ - **Production Ready** - Security hardened, tested, robust error handling
227
+ - **Full QMP Support** - Complete QEMU Machine Protocol integration
228
+ - **Snapshot Management** - Create, load, list, and delete snapshots
229
+ - **Hot-plug Support** - Add/remove devices while VM is running
230
+
231
+ ## Contributing
232
+
233
+ Contributions welcome! See [Development Guide](docs/development/) for contributing guidelines.
234
+
235
+ ## License
236
+
237
+ MIT License - see [LICENSE](LICENSE) file for details.
maqet-0.0.5/README.md ADDED
@@ -0,0 +1,195 @@
1
+ # MAQET
2
+
3
+ **MAQET** (M4x0n's QEMU Tool) is a VM management system that implements unified API generation. Methods decorated with `@api_method` automatically become CLI commands, Python API methods, and configuration-driven calls.
4
+
5
+ ## Quick Start
6
+
7
+ ### Installation
8
+
9
+ ```bash
10
+ pip install maqet
11
+ ```
12
+
13
+ **Optional Dependencies:**
14
+
15
+ - `psutil` - Enhanced process management and validation (recommended)
16
+
17
+ ```bash
18
+ pip install psutil
19
+ ```
20
+
21
+ Without psutil, basic PID tracking still works but ownership validation is skipped.
22
+
23
+ ### Core Concept
24
+
25
+ Write once, use everywhere. A single method becomes a CLI command, Python API, and configuration option:
26
+
27
+ ```python
28
+ @api_method(cli_name="start", description="Start a virtual machine", category="vm")
29
+ def start(self, vm_id: str, detach: bool = False):
30
+ """Start a virtual machine."""
31
+ # Single implementation
32
+ ```
33
+
34
+ This automatically creates:
35
+
36
+ - **CLI**: `maqet start myvm --detach`
37
+ - **Python API**: `maqet.start("myvm", detach=True)`
38
+ - **Config**: VM settings only (no commands in YAML)
39
+
40
+ ## Usage
41
+
42
+ ### Command Line Interface
43
+
44
+ ```bash
45
+ # Create a VM
46
+ maqet add --config config.yaml --name myvm
47
+
48
+ # Start VM
49
+ maqet start myvm
50
+
51
+ # List all VMs
52
+ maqet ls
53
+
54
+ # Check VM status
55
+ maqet status myvm
56
+
57
+ # Execute QMP command
58
+ maqet qmp myvm system_powerdown
59
+
60
+ # Remove VM
61
+ maqet rm myvm --force
62
+ ```
63
+
64
+ ### Python API
65
+
66
+ ```python
67
+ from maqet import Maqet
68
+
69
+ maqet = Maqet()
70
+
71
+ # Create and start VM
72
+ vm_id = maqet.add(name='myvm', memory='4G', cpu=2)
73
+ maqet.start(vm_id)
74
+
75
+ # Manage VM
76
+ status = maqet.status(vm_id)
77
+ maqet.qmp(vm_id, 'system_powerdown')
78
+ maqet.rm(vm_id, force=True)
79
+ ```
80
+
81
+ ### Configuration Files
82
+
83
+ ```yaml
84
+ # config.yaml - VM configuration only
85
+ name: myvm
86
+ binary: /usr/bin/qemu-system-x86_64
87
+ memory: 4G
88
+ cpu: 2
89
+ storage:
90
+ - name: hdd
91
+ size: 20G
92
+ type: qcow2
93
+ interface: virtio
94
+ ```
95
+
96
+ ```bash
97
+ # Use configuration file
98
+ maqet add --config config.yaml
99
+ maqet start myvm --detach
100
+ ```
101
+
102
+ **Configuration Features:**
103
+
104
+ - Deep-merge multiple config files
105
+ - Lists are concatenated (storage, network)
106
+ - Command-line args override config values
107
+ - Full QEMU argument support
108
+
109
+ See [Configuration Guide](docs/user-guide/configuration.md) for details.
110
+
111
+ ## Core Commands
112
+
113
+ | Command | Description | Example |
114
+ |---------|-------------|---------|
115
+ | `add` | Create new VM | `maqet add --config config.yaml --name myvm` |
116
+ | `start` | Start VM | `maqet start myvm` |
117
+ | `stop` | Stop VM | `maqet stop myvm --force` |
118
+ | `rm` | Remove VM | `maqet rm myvm --force` |
119
+ | `ls` | List VMs | `maqet ls --status running` |
120
+ | `status` | Show VM status | `maqet status myvm` |
121
+ | `apply` | Apply configuration | `maqet apply myvm --memory 8G` |
122
+ | `snapshot` | Manage snapshots | `maqet snapshot myvm create hdd snap1` |
123
+
124
+ ### QMP Commands
125
+
126
+ | Command | Description | Example |
127
+ |---------|-------------|---------|
128
+ | `qmp keys` | Send key combination | `maqet qmp keys myvm ctrl alt f2` |
129
+ | `qmp type` | Type text to VM | `maqet qmp type myvm "hello world"` |
130
+ | `qmp screendump` | Take screenshot | `maqet qmp screendump myvm screenshot.ppm` |
131
+ | `qmp pause` | Pause VM | `maqet qmp pause myvm` |
132
+ | `qmp resume` | Resume VM | `maqet qmp resume myvm` |
133
+ | `qmp device-add` | Hot-plug device | `maqet qmp device-add myvm usb-storage` |
134
+ | `qmp device-del` | Hot-unplug device | `maqet qmp device-del myvm usb1` |
135
+
136
+ ### Global Options
137
+
138
+ | Option | Description |
139
+ |--------|-------------|
140
+ | `-v, --verbose` | Increase verbosity (-v, -vv, -vvv) |
141
+ | `-q, --quiet` | Suppress non-error output |
142
+ | `--data-dir` | Override data directory |
143
+ | `--log-file` | Enable file logging |
144
+
145
+ ## Documentation
146
+
147
+ ### Full Documentation
148
+
149
+ - **[Documentation Index](docs/README.md)** - Complete documentation portal
150
+ - **[Architecture](docs/architecture/)** - Internal architecture and design
151
+ - **[Development](docs/development/)** - Contributing and development guides
152
+ - **[Deployment](docs/deployment/)** - Production deployment
153
+ - **[Reference](docs/reference/)** - Technical references
154
+
155
+ ### Architecture
156
+
157
+ - **Unified API System** - Single methods generate CLI, Python API, and config
158
+ - **State Management** - SQLite backend with XDG compliance
159
+ - **QEMU Integration** - Full QMP protocol support
160
+ - **Storage System** - QCOW2, Raw, VirtFS support with snapshots
161
+
162
+ See [QEMU Internal Architecture](docs/architecture/QEMU_INTERNAL_ARCHITECTURE.md) for details.
163
+
164
+ ### Development
165
+
166
+ ```bash
167
+ # Run tests
168
+ python tests/run_tests.py
169
+
170
+ # Run pre-commit checks
171
+ pre-commit run --all-files
172
+ ```
173
+
174
+ See [Testing Guide](docs/development/TESTING.md) for details on running tests and contributing.
175
+
176
+ ### Roadmap
177
+
178
+ See [Roadmap](docs/development/ROADMAP.md) and [Future Features](docs/development/FUTURE_FEATURES.md) for planned improvements.
179
+
180
+ ## Features
181
+
182
+ - **Write Once, Use Everywhere** - Single method for CLI, API, and config
183
+ - **XDG Compliant** - Follows Linux directory standards
184
+ - **Production Ready** - Security hardened, tested, robust error handling
185
+ - **Full QMP Support** - Complete QEMU Machine Protocol integration
186
+ - **Snapshot Management** - Create, load, list, and delete snapshots
187
+ - **Hot-plug Support** - Add/remove devices while VM is running
188
+
189
+ ## Contributing
190
+
191
+ Contributions welcome! See [Development Guide](docs/development/) for contributing guidelines.
192
+
193
+ ## License
194
+
195
+ MIT License - see [LICENSE](LICENSE) file for details.
@@ -0,0 +1,81 @@
1
+ # MAQET Documentation
2
+
3
+ This directory contains comprehensive documentation for the MAQET project, organized by topic and purpose.
4
+
5
+ ## Quick Navigation
6
+
7
+ ### For Users
8
+
9
+ - [User Guide](user-guide/) - Installation, configuration, and usage instructions
10
+ - [API Reference](api/) - Python API documentation
11
+
12
+ ### For Developers
13
+
14
+ - [Development Guide](../CLAUDE.md) - Claude Code instructions, coding standards
15
+ - [Testing Guide](development/TESTING.md) - How to run and write tests
16
+ - [Architecture Documentation](architecture/) - System design and decisions
17
+
18
+ ### For Architecture Review
19
+
20
+ - [Architecture Audit Report](architecture/ARCHITECTURE_AUDIT_REPORT.md) - Comprehensive Phase 5 review
21
+ - [Architectural Decisions](architecture/ARCHITECTURAL_DECISIONS.md) - 23 key design decisions
22
+ - [Per-VM Process Architecture](architecture/PER_VM_PROCESS_ARCHITECTURE.md) - Core architecture specification
23
+
24
+ ## Directory Structure
25
+
26
+ ```
27
+ docs/
28
+ ├── README.md (this file)
29
+ ├── architecture/ Architecture specifications and design docs
30
+ │ ├── ARCHITECTURAL_DECISIONS.md
31
+ │ ├── ARCHITECTURAL_REVIEW.md
32
+ │ ├── ARCHITECTURE_AUDIT_REPORT.md
33
+ │ ├── DAEMON_ARCHITECTURE_RESEARCH.md
34
+ │ ├── PERSISTENT_QEMUMACHINE_ARCHITECTURE.md
35
+ │ └── PER_VM_PROCESS_ARCHITECTURE.md
36
+ ├── development/ Development process and implementation docs
37
+ │ ├── phases/ Phase implementation summaries
38
+ │ └── reports/ Technical reports and fixes
39
+ ├── deployment/ Deployment guides
40
+ ├── user-guide/ End-user documentation
41
+ ├── reference/ API and CLI reference
42
+ └── api/ Generated API documentation
43
+
44
+ ../ (Repository root)
45
+ ├── README.md Project overview and quick start
46
+ └── CLAUDE.md Development guide for Claude Code
47
+ ```
48
+
49
+ ## Document Categories
50
+
51
+ ### Architecture (architecture/)
52
+
53
+ Core system design documents - specification, decisions, audit results
54
+
55
+ ### Development Phases (development/phases/)
56
+
57
+ Phase-by-phase implementation summaries
58
+
59
+ ### Technical Reports (development/reports/)
60
+
61
+ Specific fixes, cleanups, and technical investigations
62
+
63
+ ## Key Documents by Purpose
64
+
65
+ ### Understanding the Architecture
66
+
67
+ 1. Start with [PER_VM_PROCESS_ARCHITECTURE.md](architecture/PER_VM_PROCESS_ARCHITECTURE.md)
68
+ 2. Review [ARCHITECTURAL_DECISIONS.md](architecture/ARCHITECTURAL_DECISIONS.md)
69
+ 3. Check [ARCHITECTURE_AUDIT_REPORT.md](architecture/ARCHITECTURE_AUDIT_REPORT.md) for implementation status
70
+
71
+ ### Contributing to Development
72
+
73
+ 1. Read [CLAUDE.md](../CLAUDE.md) for development guidelines
74
+ 2. Check [TESTING.md](development/TESTING.md) for testing procedures
75
+ 3. Review relevant phase documents for context
76
+
77
+ ### Debugging Issues
78
+
79
+ 1. Check [CODE_ISSUES_REPORT.md](development/reports/CODE_ISSUES_REPORT.md)
80
+ 2. Review specific fix reports
81
+ 3. Consult [CLAUDE.md](../CLAUDE.md) troubleshooting section