Skip to main content
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

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

PlatformStatusNotes
Linux✅ Full supportX11 (XCB) and Wayland support
macOS✅ Full supportRequires macOS 14.0+
Windows✅ Full supportWindows 10+ with modern SDK
FreeBSD✅ Full supportIncluding 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

1

Install Draconis++

Follow the installation guide to set up your build environment
2

Run your first example

Try the quick start guide to see Draconis++ in action
3

Explore the API

Check out the API reference to learn what’s possible

Build docs developers (and LLMs) love