Libraries
Use this catalog to choose the smallest useful library for your project.
Libraries Map
Most libraries are self-contained and independent.
A few higher level libraries like Async, Plugin, Await or Http depend on others to expose more advanced features.
Types, memory, containers, strings, time, hashing, and tests.
Primitive types, asserts, compiler macros, Function, Span, Result
No library dependencyHeap Allocation, Custom allocators, Virtual Memory, Buffer
No library dependencyGeneric containers (SC::Vector, SC::SmallVector, SC::Array etc.)
Depends on MemoryUTF String formatting / conversion / manipulation
No library dependencyTime handling (relative, absolute, high resolution)
No library dependencyCompute MD5, SHA1 or SHA256 hashes for a stream of bytes
No library dependencySimple testing framework used by all of the other libraries
No library dependencyFiles, sockets, processes, async, streams, and platform notifications.
Async I/O (files, sockets, timers, processes, fs events, threads, signals)
Depends on File, FileSystem, Socket, ThreadingConcurrently read, write and transform byte streams
No library dependencyC++20 coroutine layer over Async
Depends on AsyncSynchronous Disk File I/O
No library dependencyFile System ops { exists, copy, delete } for { files, directories }
No library dependencyEnumerates files and directories inside a given path
No library dependencyNotifications {add, remove, rename, modify} for files / directories
No library dependencySynchronous socket networking and DNS lookup
No library dependencyLaunch processes and chain them (also usable with Async library)
Depends on FileSynchronous serial port descriptor and configuration
Depends on FileAtomic, thread, pool, mutex, semaphore, barrier and more
No library dependencyReflection, serialization, HTTP, plugins, and integration points for real examples.
Describe C++ types at compile time for serialization
No library dependencyContainers specializations for Reflection and Serialization.
Depends on Containers, ReflectionSerialize to / from text formats (JSON) using Reflection
Depends on ReflectionSerialize to and from a binary format using Reflection
Depends on ReflectionHTTP parser, server and client
Depends on Async, AsyncStreamsStreaming-first HTTP client with native OS backends
No library dependencyMinimal dependency based plugin system with hot-reload
Depends on Process