MatrixSSL is an embedded SSL and TLS implementation designed for small footprint devices and applications requiring low overhead per connection. The library is less than 50Kb on disk with cipher suites. It includes client and server support through TLS 1.2, mutual authentication, session resumption, and implementations of RSA, ECC, AES, 3DES, ARC4, SHA2, SHA1, and MD5. The source is well documented and contains portability layers for additional operating systems, cipher suites, and cryptography providers.
PolarSSL is a light-weight cryptographic and SSL/TLS library written in C. PolarSSL makes it easy for developers to include cryptographic and SSL/TLS capabilities in their (embedded) applications with as little hassle as possible. Loose coupling of the components inside the library means that it is easy to separate the parts that are needed, without needing to include the total library. PolarSSL is written with embedded systems in mind and has been ported on a number of architectures, including ARM, PowerPC, MIPS, and Motorola 68000. The source is written to have very loose coupling, enabling easy integration of parts in other software projects. Very loosely coupled cryptographic algorithms for MD2, MD4, MD5, SHA1, SHA-256, SHA-512, AES, Camellia, DES, Triple DES, ARC3, and RSA are included.
SuperWaba is a VM for PDAs. Because of the way it was written, you can use Java to develop programs for it. It supports exceptions, threads, many user interface controls, double and long 64-bit types, grayscale, color, 3D controls, and JNI and Java libraries, among other features. The project has been superseded and replaced with TotalCross.
QP is a family of lightweight software frameworks for building responsive and modular real-time embedded applications as systems of cooperating, event-driven active objects (actors). The QP family consists of QP/C, QP/C++, and QP-nano frameworks, which are all strictly quality controlled, superbly documented, and commercially licensable. The behavior of active objects is specified in QP by means of hierarchical state machines (UML statecharts). The frameworks support manual coding of UML state machines in C or C++ as well as automatic code generation by means of the free QM modeling tool. All QP frameworks can run on bare-metal MCUs, completely replacing a traditional RTOS. Ports and ready-to-use examples are provided for all major CPUs, such as ARM Cortex-M, ARM7/9, MSP430, C28x, C55x, RX, R8C, AVR32, AVRMega, PIC24/dsPIC, as well as Arduino and mbed. QP/C and QP/C++ can also work with a traditional OS/RTOS, such as: POSIX (Linux, QNX), Windows, VxWorks, ThreadX, and uC/OS.
Protothreads are a type of extremely lightweight, stackless threads written in 100% portable C. While protothreads were originally designed for severely memory-constrained systems such as deeply embedded systems, they have found a number of uses as a general purpose portable library as well.
CUT is a unit-testing framework for C, C++, and Objective-C. Unlike other unit testing tools, CUT doesn't strive to be an SUnit clone. It automates a lot of the drudge work often encountered when using other unit testing packages for the C family of programming languages. CUT may also be used to unit-test assembly language software in some circumstances.
uVNC is a very small VNC server that can be run even on tiny 8-bit microcontrollers commonly found in small embedded devices. With uVNC, such devices can have a networked display without the need for any graphics hardware or a computer screen. A demo server running on a Commodore 64 is available.