SaaSHub helps you find the best software and product alternatives Learn more →
Top 23 C IoT Projects
-
Project mention: CPU & Memory Monitoring 101: How to Check, Analyze, and Optimize System Performance | dev.to | 2025-05-14
Netdata: Provides beautiful, real-time dashboards for visualizing system metrics ( https://www.netdata.cloud ).
-
InfluxDB
InfluxDB – Built for High-Performance Time Series Workloads. InfluxDB 3 OSS is now GA. Transform, enrich, and act on time series data directly in the database. Automate critical tasks and eliminate the need to move data externally. Download now.
-
Project mention: Show HN: A backend agnostic Ruby framework for building reactive desktop apps | news.ycombinator.com | 2025-05-09
Very cool project, and well thought with the choice of Raylib or SDL2. But since Raylib can compile to Android (https://github.com/raysan5/raylib/blob/master/examples/Makef...), do you think it could be difficult to add Android as a target platform ?
-
TDengine
High-performance, scalable time-series database designed for Industrial IoT (IIoT) scenarios
Project mention: Why SSDLC needs static analysis: a case study of 190 bugs in TDengine | dev.to | 2025-05-12We'll continue examining the TDengine project, which we've covered in three small notes on code refactoring:
-
Tasmota
Alternative firmware for ESP8266 and ESP32 based devices with easy configuration using webUI, OTA updates, automation using timers or rules, expandability and entirely local control over MQTT, HTTP, Serial or KNX. Full documentation at
Project mention: Xiaomi has provided official support for Home Assistant | news.ycombinator.com | 2024-12-16 -
TimescaleDB
A time-series database for high-performance real-time analytics packaged as a Postgres extension
timescaledb A solution by Timescale. Provides a lot more functions to handle time series than pg_timeseries. Low latency makes it adequate for real-time analytics. Supports incremental views through continuous aggregates. Has some overlap with pg_mooncake, but can't write to Iceberg or Delta Lake, using them directly as the storage layer. Supports tiered storage
-
zephyr
Primary Git Repository for the Zephyr Project. Zephyr is a new generation, scalable, optimized, secure RTOS for multiple hardware architectures.
Project mention: What Makes Code Hard to Read: Visual Patterns of Complexity (2023) | news.ycombinator.com | 2025-03-11> I meant the goal of your function needs to be grasped within a reasonable amount of time. This works for every codebase.
It really doesn't though. Here's a function of mine. It's maybe 40 lines of logic, so medium-scale. It's part of an intrusive red/black tree implementation for Zephyr. I'm fairly proud of how it turned out, and think that this code is awfully readable given its constraints.
No human being is going to understand fix_extra_red() without having already read and understood the rest of the file, and coming to it with an understanding of the underlying algorithm. Certainly I can't. I can't even get started on maintaining this code that I originally wrote within a five minute time frame, it's an hour at least every time, just to remind myself how it works:
https://github.com/zephyrproject-rtos/zephyr/blob/main/lib/u...
Now maybe this is "bad code", and "good code" could exist for this problem that still meets your requirements. But... if so that's an awfully celestial definition if it's so hard to find.
-
Project mention: 13 Github Projects that Will Supercharge Your Development Journey in 2025 🚀 | dev.to | 2025-03-02
Stars: 11435 Author: cesanta Star the mongoose repository⭐
-
SaaSHub
SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives
-
rt-thread
RT-Thread is an open source IoT Real-Time Operating System (RTOS). https://rt-thread.github.io/rt-thread/
-
Ah, I see! Yeah that's significantly trickier.
re: "dynamically replace parts of the implementation as source code evolves" — there is a technique for this, I have a short write-up on it here: https://github.com/pdubroy/til/blob/main/wasm/2024-02-22-Run...
About the debugging and inspecting —
Inspecting Wasm memory is easy from JS, but to be able to do the debugging, you'd probably either need to rewrite the bytecode (e.g., inserting a call out to JS between every "real" instruction) or a self-hosted interpreter like wasm3 (https://github.com/wasm3/wasm3).
(Or maybe there are better solutions that I'm not thinking of.)
-
Project mention: State of JavaScript 2024 Results, GitHub Copilot Now Free, EPIC Developer Tools, and more | dev.to | 2024-12-22
The State of JavaScript 2024 survey results GitHub Copilot is now Free Tailwind CSS 4 JerryScript 3.0 Transformers.js v3.2 Bun 1.1.39 & 1.1.40 pnpm Update ESLint v9.17.0
-
RIOT would be another alternative
https://github.com/RIOT-OS/RIOT
-
Here is a runtime with estimated sizes: https://github.com/bytecodealliance/wasm-micro-runtime
-
freeswitch
FreeSWITCH is a Software Defined Telecom Stack enabling the digital transformation from proprietary telecom switches to a versatile software implementation that runs on any commodity hardware. From a Raspberry PI to a multi-core server, FreeSWITCH can unlock the telecommunications potential of any device.
Oh, and if Asterisk isn't your thing, check out FreeSwitch - another rock-solid open source option that's been powering VoIP systems since 2006. It was actually created by former Asterisk developers who wanted to build something more modern. Go figure. ¯_(ツ)_/¯
-
Project mention: Crun – A fast and lightweight featured OCI runtime | news.ycombinator.com | 2025-01-05
-
threadx
Eclipse ThreadX is an advanced real-time operating system (RTOS) designed specifically for deeply embedded applications.
ThreadX has pool allocators: https://github.com/eclipse-threadx/threadx/blob/master/commo...
-
esp-homekit-devices
Advanced firmware to add native Apple HomeKit and custom configurations, compatible with any SoC based on ESP32, ESP32-S, ESP32-C and ESP8266 series. (Shelly, Sonoff, Electrodragon, Tuya...)
-
printf
Tiny, fast, non-dependent and fully loaded printf implementation for embedded systems. Extensive test suite passing.
-
mongoose-os
Mongoose OS - an IoT Firmware Development Framework. Supported microcontrollers: ESP32, ESP8266, CC3220, CC3200, STM32F4, STM32L4, STM32F7. Amazon AWS IoT, Microsoft Azure, Google IoT Core integrated. Code in C or JavaScript.
-
wolfssl
The wolfSSL library is a small, fast, portable implementation of TLS/SSL for embedded devices to the cloud. wolfSSL supports up to TLS 1.3 and DTLS 1.3!
You may be talking about that, but I'm not. I was talking about the task-specific memory footprint. I didn't say anything at all about the rest of the computer.
And even that wasn't meant to be taken literally. I kind of thought that was obvious[1].
But in the end, OK, you're right. You probably could fit the banking app logic in 64K, but you'd have to rely on the OS to provide things like crypto, the network stack, and the I/O. So the machine as a whole would need more than that to get the job done. And the UI would be pretty bad if you stuffed even the app part into 64k.
No problem fitting it all into megabytes, though. Definitely no need for it to be gigabytes. I challenge you to explain what needs to be there that would make the entire system, OS, app, and all, need even one gigabyte of RAM to run even a very pretty, featureful banking app. Or even a quarter of a gigabyte.
By the way, you can put TLS itself in less than 64k (see for example https://github.com/wolfSSL/wolfssl). But you have to profile it way down, maybe to the point of leaving out X.509, so you don't really have "full on" TLS. On the other hand, a lot of the footprint is because the TLS protocol itself is bloated and overcomplicated, and no, that bloat doesn't improve the security.
[1]: ... and I mean, if we're going to get pedantic like that, nobody can write an SSL implementation with modern ciphers for any computer, because modern ciphers weren't introduced into the protocol until after it was renamed TLS. Actual SSL isn't something anybody should be using now. Even TLS 1.1 isn't.
-
Kamailio
Kamailio - The Open Source SIP Server for large VoIP and real-time communication platforms -
-
Project mention: Crashing rockets and recovering data from damaged flash chips | news.ycombinator.com | 2024-12-18
Dennis is also one of the (if not THE) leading vacuum robot hacker and makes https://github.com/dgiese/dustcloud. Amazing work.
-
-
FlashDB
An ultra-lightweight database that supports key-value and time series data | 一款支持 KV 数据和时序数据的超轻量级数据库
-
SaaSHub
SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives
C IoT discussion
C IoT related posts
-
Edit is now open source
-
Why SSDLC needs static analysis: a case study of 190 bugs in TDengine
-
Show HN: Open-Source Cellular IoT Prototyping Kit
-
A Web based Broadcast Assistant
-
Breaking down bugs in TDengine to master refactoring, part 1: sausage code
-
A simple Broadcast Audio Source
-
Crashing rockets and recovering data from damaged flash chips
-
A note from our sponsor - SaaSHub
www.saashub.com | 14 Jun 2025
Index
What are some of the best open-source IoT projects in C? This list will help you:
# | Project | Stars |
---|---|---|
1 | Netdata | 74,782 |
2 | raylib | 26,817 |
3 | TDengine | 23,983 |
4 | Tasmota | 23,325 |
5 | TimescaleDB | 19,267 |
6 | zephyr | 12,244 |
7 | Mongoose | 11,785 |
8 | rt-thread | 11,186 |
9 | wasm3 | 7,580 |
10 | jerryscript | 7,217 |
11 | RIOT | 5,530 |
12 | wasm-micro-runtime | 5,381 |
13 | freeswitch | 4,122 |
14 | crun | 3,384 |
15 | threadx | 3,187 |
16 | esp-homekit-devices | 2,871 |
17 | printf | 2,689 |
18 | mongoose-os | 2,574 |
19 | wolfssl | 2,521 |
20 | Kamailio | 2,482 |
21 | dustcloud | 2,235 |
22 | Watchy | 2,192 |
23 | FlashDB | 2,122 |