$ cmake --build storm

StormByte Suite

Focused C++26 libraries and the tools that keep them buildable on Linux, Windows and macOS.

C++26 CMake 3.28+ Linux · Windows · macOS LGPL v3+ / Commercial

Explore modules GitHub organization

What it is

The public surface is intentionally small. Each module does one job. Third-party types stay private, and text or binary data that crosses a DLL / .so boundary travels as suite types, never as a std::string by value.

The suite is split on purpose: link only what you use. Base does not implement Buffer, Crypto or Network — every module lives in its own repository with its own releases, documentation and pinned dependencies.

Suite map

Every library builds on the layer below it. Click a node to jump to its module.

L3 · domains
L2 · data flow
L1 · services
L0 · foundation

Libraries

StormByte Base

The foundation every other module links: platform and visibility macros, exceptions, Expected, Error/Fault, little-endian serialization, DLL-safe text and BinaryData, Size/ByteSize, UUID v4, bitmasks, safe pointers, clonable types, ThreadLock and type concepts.

Depends on: nothing

ExpectedSerializationSafe text

StormByte-System

Spawn processes with piped stdin/stdout/stderr and chain them shell-style (p1 >> p2). Classify the device behind a path, resolve process directories, inspect the host, name threads and expand environment strings. POSIX and Windows, one API.

Depends on: Base

ProcessPipesHost

StormByte-Logger

Streaming logger with ordered levels, configurable headers, hierarchical components and sticky Scope facades. ANSI colors, human-readable sizes, redaction, hex dumps and a ThreadedLog that takes one lock per logical line.

Depends on: Base

LevelsRedactionThreadedLog

StormByte-Config

Human-readable text and versioned binary configuration documents: values, comments, groups and lists. Save/Load on any stream, read hooks, collision policies and forward-safe binary layouts.

Depends on: Base

TextBinaryHooks

StormByte-Buffer

FIFO, thread-safe SharedFIFO, concurrent Ring, Producer/Consumer handles, typed Hopper/Sink, plus Pipeline, Bridge and Pumper to wire them together. Buffered file I/O with cache, prefetch and backpressure.

Depends on: System, Logger

RingPipelinesBuffered I/O

StormByte-Database

One API over SQLite, PostgreSQL and MariaDB. Backends are base classes: inherit one and build your schema on top. Prepared statements, type-erased values, RAII transactions returned as Expected, TLS and telemetry.

Depends on: Logger

SQLitePostgreSQLMariaDB

StormByte-Crypto

Hash, compress, encrypt, sign and key agreement: SHA-2/SHA-3/BLAKE2, Zlib/Gzip/BZip2, AES-GCM, ChaCha20-Poly1305, RSA/ECIES, Ed25519, X25519 and more. Wiped secret buffers, PEM/DER key pairs and streaming via Buffer. Crypto++ stays private.

Depends on: Base, Buffer, System

AEADSignaturesECDH

StormByte-Network

Inherit Client or Server, define framed packets and attach Buffer pipelines to compress or encrypt payloads. IPv4/IPv6, request/response and fire-and-forget, bounded workers and backpressure. POSIX and Winsock stay private.

Depends on: Base, Buffer, Logger, System

TCPPacketsIPv6

StormByte-Multimedia

A C++26 pipeline for demuxing, decoding, filtering, encoding and muxing on top of FFmpeg — without raw AVFrame/AVPacket in public headers. Use the Transcoder facade or wire the tube by hand; codecs are enabled only if present.

Depends on: Base, Buffer, Logger

FFmpegTranscoderFilters

Tools

StormByte BuildMaster

A short, declarative CMake DSL for vendoring CMake and Meson projects without the usual third-party spaghetti. Declare components and edges in any order; BuildMaster materializes stages, IMPORTED targets and one shared install prefix at the end of configure — static archives, plugin packs, whole-archive linking and per-component toolchains included.

buildmaster_component(mylib "My Library"
	"${CMAKE_SOURCE_DIR}/thirdparty/mylib/src"
	"ENABLE_FOO=ON;WITH_TESTS=OFF" shared mylib "ALIAS=My::Lib")
buildmaster_component(mytool "My Tool"
	"${CMAKE_SOURCE_DIR}/thirdparty/mytool/src" "" executable mytool)
buildmaster_link(mytool mylib)

target_link_libraries(MyApp PRIVATE My::Lib)

CMakeMesonMIT

Design principles

Get started

Needs a C++26 compiler and CMake 3.28 or newer. Each module's README lists its exact dependencies and pins.

git clone https://github.com/StormByte-Suite/StormByte.git
cd StormByte
cmake -S . -B build
cmake --build build

Headers live under StormByte/…; the namespace root is StormByte. Shared vs static follows BUILD_SHARED_LIBS. Issues and pull requests go to the module they belong to.