Draconis++ requires C++26 and Meson ≥1.1. For the best experience, use Clang 21 or later.
What is Draconis++?
Draconis++ is a cross-platform system information library written in modern C++26. It provides a clean, type-safe API for querying system details like OS version, hardware specs, memory usage, and more—with optional plugin support for extensibility. Key features:- Cross-platform: Windows, macOS, Linux, BSD, Haiku, and SerenityOS
- Modern C++26: Leverages the latest language features for safety and performance
- Plugin system: Extend functionality with static or dynamic plugins (e.g., weather integration)
- Multiple interfaces: Use as a library, CLI tool, HTTP server, or MCP server
- Zero-cost abstractions: Fast and efficient with minimal overhead
- Type-safe error handling: Uses
Result<T>types instead of exceptions
Architecture
The library is organized into several modules:- Core/System: Platform-specific system information queries (OS, CPU, GPU, memory, disk, network, displays)
- Services/Packages: Package manager integration for counting installed packages
- Utils: Helper utilities (caching, logging, error types, argument parsing)
- Config: Precompiled configuration support for static builds
- Plugins: Extensible plugin system (weather, media players, etc.)
Use cases
System information library
Query system details programmatically in your C++ applications
CLI tool
Display beautiful system information in your terminal
HTTP API
Expose system data via a REST API using the Glaze HTTP example
MCP server
Integrate with Model Context Protocol clients for AI-powered system queries
Quick links
Installation
Set up Draconis++ with Meson, vcpkg, or Nix
Quick start
Get up and running in minutes with a working example
Configuration
Customize build options, plugins, and precompiled settings
Plugin development
Extend Draconis++ with custom plugins
Dependencies
Draconis++ uses modern, high-performance libraries:- magic_enum: Compile-time enum reflection
- glaze: Fast JSON serialization/deserialization
- mimalloc: High-performance memory allocator (optional on macOS)
- SQLiteCpp: Package count database support (Linux/macOS)
- asio: Async I/O for HTTP/MCP server examples
Platform support
| Platform | Status | Notes |
|---|---|---|
| Linux | ✅ Full support | X11 (XCB) and Wayland support |
| macOS | ✅ Full support | Requires macOS 14.0+ |
| Windows | ✅ Full support | Windows 10+ with modern SDK |
| FreeBSD | ✅ Full support | Including DragonFly BSD |
| NetBSD | ✅ Full support | |
| Haiku | ✅ Full support | |
| SerenityOS | ✅ Full support |
Version
Current version: 0.1.0 Draconis++ is under active development. The API may change between releases.Next steps
Install Draconis++
Follow the installation guide to set up your build environment
Run your first example
Try the quick start guide to see Draconis++ in action
Explore the API
Check out the API reference to learn what’s possible