Skip to content

Portable C/C++ libraries for state machines, callbacks, threading, memory allocation, communication, and testing.

Notifications You must be signed in to change notification settings

endurodave/portable-c-cpp-libs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 

Repository files navigation

Portable C/C++ Source Code Libraries

A collection of C/C++ source code libraries for cross-platform embedded and PC-based software development.

GitHub Repositories

GitHub source code repositories categorized by library type.

State Machines

Repository Language Description
C_StateMachine C C-language state machine.
StateMachine C++ Object-oriented state machine.

State Machines with Threads

Repository Language Description
C_StateMachineWithThreads C C-language state machine with threads.
StateMachineWithThreads C++ C++ state machine with std::thread.
StateMachineWithModernDelegates C++ C++ state machine with C++ delegates.
AsyncStateMachine C++ Asynchronous C++ state machine implemented using C++ delegates.

Threads

Repository Language Description
StdWorkerThread C++ C++ std::thread event loop with message queue and timer.
ThreadWin C++ Win32 CreateThread() C++ wrapper with synchronized thread startup.

Fixed-Block Memory Allocators

Repository Language Description
C_Allocator C C-language fixed-block memory allocator.
Allocator C++ C++ fixed-block memory allocator.
xallocator C++ A fixed-block allocator malloc/free replacement.
stl_allocator C++ A std::allocator compatible fixed-block memory allocator for the C++ Standard Library.
pmr_allocator C++ A C++ Polymorphic Memory Resource (PMR) fixed-block memory allocator.

Callbacks

Repository Language Description
MulticastCallback C Type-safe multicast callbacks in C.
C_AsyncCallback C Asynchronous callbacks in C.
AsyncCallback C++ Asynchronous callbacks in C++.
DelegateMQ C++ Invoke any callable synchronously or asynchronously using C++ delegates.

Communications

Repository Language Description
SimpleSocketProtocol C A C-language socket-based communication transport protocol for Windows, Linux, Arduino and embedded systems.
DelegateMQ C++ Invoke any remote function located in a separate process or processor using C++ delegates.

Serialization

Repository Language Description
MessageSerialize C++ C++ object binary serialize and deserialize.

Fault Handling

Repository Language Description
CoreDump C Universal embedded systems core dump framework.

Testing

Repository Language Description
IntegrationTestFramework C++ Integration test framework using Google Test and C++ delegates.
IntegrationTestFrameworkCppUTest C++ Integration test framework using CppUTest and C++ delegates.

Miscellaneous

Repository Language Description
OBDII-Adapter-Software C OBDII adapter source code and schematic for automotive diagnostic vehicle communication.
Async-SQLite C++ Asynchronous SQLite API using C++ delegates.

Deprecated

The current C++ delegate implementation is DelegateMQ. The following delegate-related repositories offer prior implementations.

Repository Language Description
AsyncMulticastDelegateCpp17 C++ C++ delegates using C++17.
AsyncMulticastDelegateCpp11 C++ C++ delegates using C++11.
AsyncMulticastDelegate C++ C++ delegates using C++03.

License

All libraries are licensed under the MIT License.

About

Portable C/C++ libraries for state machines, callbacks, threading, memory allocation, communication, and testing.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published