The Open Component Portability Infrastructure (OpenCPI) is a real-time embedded (RTE) middleware solution that simplifies programming of heterogeneous processing applications requiring a mix of field-programmable gate arrays (FPGA), general-purpose processors (GPP), digital signal processors (DSP), and high-speed switch fabrics. The "mix" can be over a lifecycle (technology insertion) as well as within a single implementation (to meet SWAP constraints). CPI improves code portability, interoperability, and performance in FPGA and DSP-based environments by providing well-defined waveform component APIs with a set of infrastructure blocks that act as a hardware abstraction layer (HAL).
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.
The Crossplex package of make macros simplifies the creation of embedded systems, and is powerful enough for large organizations to use for developing elaborate product lines. It allows you to organize many different products under a logical structure, making systems of any complexity easy to specify. When you have many different target platforms, each with multiple different software configurations, Crossplex keeps those configurations from stepping on each other, without requiring redundancy in your source tree. Crossplex allows you to use a single dependency tree encompassing both in-house software and third-party packages, and it is particularly suited to build automation. Crossplex makes it easy to shield your build from the host environment, setting all shell variables explicitly, and giving you complete control over the path that is used at any point in the build. This is nice when you want to support building on a variety of development platforms. Crossplex scales to your needs. You can dabble in the unpacking and patching features as you need them, or you can base your entire system from the ground up on the Crossplex framework. Crossplex supports creation and use of glibc and uClibc toolchains.
STSdb is an embedded object database system. Its advanced techniques enable organizations to manage terabytes, even petabytes of disparate data within secure, transaction-intensive environments using data management solutions that span a spectrum of challenges: sustaining extreme transaction volumes and tempos and supporting mission-critical analytics and data warehousing.
The yaSSL Embedded Web Server is a fast, embeddable, and easy-to-configure Web server with a strong focus on portability and security. The Web server offers SSL/TLS (HTTPS) support built-in through the CyaSSL embedded SSL Library. With a footprint size of less than 100kB with SSL enabled (or 40kB without SSL) and a simple and clean API, the yaSSL Embedded Web Server was designed to fit perfectly into resource-constrained embedded environments. While maintaining a small size and fast speeds, the yaSSL Embedded Web Server offers a full feature set to give you the maximum amount of freedom and flexibility when developing your project.
sVimPy is a very small Python virtual machine intended for use in microcontroller projects. At the moment, it supports about 3/4 of all opcodes used in python3k. Most data types are supported. The intended goal is to use this VM in environments like Atmel's ATmega chips (2-8kb RAM). The microcontroller bootloader is still missing (no arduinos left for experimentation). Classes are not supported. Features include: function calling, a stack based VM, garbage collection, very low memory usage, an interactive debugging console, dictionaries and tuples, iterations, VM single stepping (game loop usage is possible), C function calling, a small memory footprint, fast performance, the ability to be used as a library in other projects, a simple API + code, possible usage as a small deployment executable for Python projects.
μnix is an open source DIY hardware and software project that endeavors to create a complete, usable, computer workstation using only discrete components, IC chips, and 8-bit microcontrollers. The electronic design, including the schematics and PCB layout, is open and usable by anyone. In addition, the necessary firmware for all of the ancillary microcontrollers is provided, including the advanced firmware acting as the Operating System on the main CPU units. The goal is not to try to create a competing product with any of the x86 computers out there, but instead to learn and teach the very low-level information and skills needed to create a complete workstation from scratch, starting from the circuit boards and ending with the multitasking OS. The project is open to anyone that wants to contribute or even just be involved in some way with a project of this scope and innovation.
NanoHttpd is a lightweight HTTP server designed for embedding in other applications. It's only one Java file, in two "flavors", one strictly Java 1.1 compatible, and one at "current" standards. It supports GET, POST, PUT, HEAD and DELETE requests, and supports file uploading with very small memory overhead. Temp file usage and the threading model are easily customized.