Much like boost.io this library is a replacement of the standard C/C++ libraries. It provides most features needed when designing applications in a cross-platform manner. The goal for this project is for it to be compiled and run on anything which means embedded hardware support.
This project does not fully follow the C++ standard.
Features
- Audio IO/Processing/Manipulation
- Image Processing/Manipulation
- Databases
- 3D Model & Mesh Processing/Manipulation
- File IO
- Basic File Monitoring
- Console IO
- 2/3/4D Vectors
- 2x2/3x3/4x4 Matrices
- Hardware/Software Level Math Functions
- Smart Pointers
- Threads
- Mutexes
- Semaphores
- CPU information and features at runtime
- HTTP(S) Socket Layer
- ICMP & ICMPv6 Socket
- TCP Socket
- UDP Socket
- COM (Serial) IO
- UTF_8/16/32 Character Encoding
- Spotify Integration
- Twitch Integration
- Json Parsing/Writing
- User Friendly HID Input
- Heap Garbage Collector
- Linked List
- Array
- Vector
- Asynchronous Task System
- URI Parsing
- USB (WIP)
Supported Architectures
Supported Operating Systems
Compiling/Building/Installing
Linux
Prerequisites
- Arch Linux:
sudo pacman -S gcc nasm cmake alsa-lib libxcb xcb-util-cursor
- Debian Linux:
sudo apt install gcc nasm cmake libasound2-dev libxcb1-dev libxcb-xinput-dev libxcb-cursor-dev
For building on the Raspberry Pi instead of the Netwide Assembler (NASM), GCC's Assembler is used.
Building
cmake -DCMAKE_BUILD_TYPE=Release -DLINUX_WINDOW_SYSTEM:STRING=XCB /path/to/source
The LINUX_WINDOW_SYSTEM
variable in the first step can be either XCB
for the X Window System or Wayland
for the Wayland Window System. Wayland support is currently not fully supported yet, use only XCB
.
Compiling
cmake --build /path/to/build --config Release
Installing
sudo cmake --install /path/to/build --prefix /usr/local
Windows
Prerequisites
vcpkg install
- Use this command in the directory where vcpkg.json
is located to download/install dependencies.
Building
cmake -A x64 -DCMAKE_BUILD_TYPE=Release /path/to/source
Compiling
cmake --build /path/to/build --config Release
Installing
cmake --install /path/to/build --prefix "C:/Program Files/EHS"
This will require the terminal to be running in administrator mode.
Simple Example
{
{
}
return 0;
}
int main()
Definition StrToHash.cpp:5
static void Write_8(const Str_8 &str, const bool newLine=true)
Definition Console.cpp:224
static Str_8 Read_8(const UInt_64 bufferSize=1024)
Definition Console.cpp:460
static void Clear()
Clears the console.
Definition Console.cpp:549
static Str< Char_8, UInt_64 > FromNum(const SInt_64 num)
Definition Str.h:1399
bool IsNum() const
Definition Str.h:1166
I ToDecimal() const
Definition Str.h:1293
unsigned char UInt_8
Definition Types.h:43
EHS_LIB_IO void Initialize(Str_8 appName, Str_8 appVerId, const Version &appVer)
Definition EHS.cpp:34
EHS_LIB_IO void Uninitialize()
Definition EHS.cpp:85
Str< Char_8, UInt_64 > Str_8
Definition Str.h:1953