Wayward Support API
Wayward Support is a collection of classes and functions designed to work in addition to the C++ Standard Library.
Some classes in Wayward Support are simpler implementations of equivalents in Boost without as much template cruft, while implement concepts that are unique to Wayward.
Classes
- Any — Hold any value.
 - CommandLineOptions — Simple command line option parser.
 - Either — Hold one of a predefined set of value types (tagged union).
 - Error — Base class for all exceptions that captures a stack trace.
 - Fiber — Coroutine implementation for cooperative multitasking.
 - Logger — Logging interface.
 - Maybe — Option type, equivalent to 
boost::optionalwith some monadic extensions. - Result — Either a value or an Error.
 - URI — Structured representation of a Uniform Resource Identifier.
 
Libraries
- Data Franca library — Data observation library. Provides unified access to any data type that implements an adapter, allowing users to query arbitrary data structures. The main use is to provide a way for templating languages to access structured data at runtime.
 - DateTime library — The DateTime library provides an intuitive interface to POSIX date/time functions.
 - Format library — String formatting and interpolation library.
 - HTTP library — Evented HTTP Server and Client classes.
 - JSON library — Convert arbitrary data structures (via reflection or Data Franca) to and from JSON.
 - Monads — Common "monadic" idioms that can make some code patterns safer and easier to use.
 - Reflection library — Runtime type reflection library.
 - Static Metaprogramming library — Compile-time type reflection library (various extensions to the standard 
<type_traits>). - String utilities — Commonly used string functions missing from the C++ Standard Library.