Skip to content

endurodave/portable-c-cpp-libs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 

Repository files navigation

Portable C/C++ Source Code Libraries

A collection of C/C++ source code libraries written by David Lafreniere 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 A C-language implementation of the Active Object pattern, featuring a thread-safe state machine with an integrated message queue.
StateMachineWithThreads C++ A thread-safe C++ state machine utilizing std::thread to execute state transitions on a dedicated worker thread.
active-fsm C++ A compact active-object C++ finite state machine providing RAII-safe asynchronous dispatch and pub/sub signals.

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.
IntegrationTestFrameworkDoctest C++ Integration test framework using doctest and C++ delegates.

Database

Repository Language Description
Async-SQLite C++ An asynchronous SQLite thread-safe wrapper implemented using an asynchronous delegate library.
Async-DuckDB C++ An asynchronous DuckDB thread-safe wrapper implemented using an asynchronous delegate library.

Automotive

Repository Language Description
OBDII-Adapter-Software C OBDII adapter source code and schematic for automotive diagnostic vehicle communication.

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.
cpp-signal-slot-fsm C++ A thread-safe C++ state machine demonstrating Signal-Slot communication and RAII-managed asynchronous event marshaling via DelegateMQ.
AsyncStateMachine C++ A native asynchronous state machine implemented as an active object, where every transition is dispatched and executed within its own thread of control.

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

 
 
 

Contributors