arc4random

arc4random is a ChaCha20-based random number generation library. arc4random is ideal for embedded systems: it only needs to hit the hardware random number generator every few million bytes! This library is likely not a straight import into your embedded project: you will need to set it up to use your locks and talk to your …

nanopb

If your system communicates with other devices (or even an app), I highly recommend using an RPC library, such as Google's Protocol Buffers or Apache's Thrift. These libraries allow you to define your interfaces using an interface design language (IDL) and can generate source stubs for a large number of languages. These RPC libraries also …

musl libc

musl libc is a free, lightweight libc implementation intended for use on embedded systems. musl weighs in at 462kB for a full .a library (compared to glibc's 2MB), making musl an attractive option. (See the libc comparison data here) If you need a complete libc implementation for your system, this is an excellent place to …

compiler-rt

As we're exploring bringing up a C/C++ runtime on our system, I'd like to share a very helpful resource for those using clang/llvm: compiler-rt. Compiler-rt is an LLVM project that provides implementations of various builtin functions for a variety of architectures. This saves us a lot of heavy lifting when bringing up a new platform, …