Open-source C projects categorized as IoT

Top 23 C IoT Projects

  • Netdata

    Real-time performance monitoring, done right!

    Project mention: How to claim nods/ connect to cloud Netdata with agent in Docker on Synology NAS? | reddit.com/r/netdata | 2022-11-17

    What can change between installs is under /var/lib/netdata (see https://github.com/netdata/netdata/issues/2516). This is why we want this directory mounted from the host. /var/cache/netdata is even more important, as it holds the db with the metrics. Still, worst case scenario is that you'll have in cloud a dead node along with the live node, so yhere's no need for a fresh install.

  • TDengine

    TDengine is an open source, high-performance, cloud native time-series database optimized for Internet of Things (IoT), Connected Cars, Industrial IoT and DevOps.

    Project mention: TDengine: NEW Data - star count:19895.0 | reddit.com/r/algoprojects | 2022-11-28
  • SonarLint

    Clean code begins in your IDE with SonarLint. Up your coding game and discover issues early. SonarLint is a free plugin that helps you find & fix bugs and security issues from the moment you start writing code. Install from your favorite IDE marketplace today.

  • Tasmota

    Alternative firmware for ESP8266 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: How do you all monitor ambient temps for your drives? Cooking drives is no fun... I think I found a decent solution with these $12 Govee bluetooth thermometers and Home Assistant. | reddit.com/r/DataHoarder | 2022-11-28

    My fridge and other homelab gear is plugged into Sonoff S31 smart plugs (flashed with Tasmota) + Prometheus endpoint exposed), so I can monitor the current and graph that.

  • TimescaleDB

    An open-source time-series SQL database optimized for fast ingest and complex queries. Packaged as a PostgreSQL extension.

    Project mention: Storing often-changing and rarely-accessed data on server? | reddit.com/r/AskProgramming | 2022-11-27
  • raylib

    A simple and easy-to-use library to enjoy videogames programming

    Project mention: 2d graphics library for arcade games | reddit.com/r/learnjava | 2022-11-29

    Raylib is nice as well, but I haven't tried out the Java bindings: https://www.raylib.com/ https://github.com/raysan5/raylib/blob/master/BINDINGS.md

  • Mongoose

    Embedded Web Server (by cesanta)

    Project mention: Embedded Web Server for electronic devices | news.ycombinator.com | 2022-11-14
  • rt-thread

    RT-Thread is an open source IoT operating system.

    Project mention: The Most Popular Open Source IoT Operating System from China | news.ycombinator.com | 2022-11-14

    There's a bunch of documentation (in english) at https://github.com/RT-Thread/rt-thread/blob/master/documenta...

    One thing that stands out is that one of the selling points would be the inclusion of middleware etc.

      Internet of Things related software packages:

  • Zigi

    Close all those tabs. Zigi will handle your updates.. Zigi monitors Jira and GitHub updates, pings you when PRs need approval and lets you take fast actions - all directly from Slack! Plus it reduces cycle time by up to 75%.

  • zephyr

    Primary Git Repository for the Zephyr Project. Zephyr is a new generation, scalable, optimized, secure RTOS for multiple hardware architectures.

    Project mention: Looking to setup GitHub actions pipeline with google test, memory checker, documentation generator, etc. | reddit.com/r/cpp_questions | 2022-11-10

    The Zephyr RTOS has a large range of workflows that you can check out and you check how they run in the actions tab.

  • jerryscript

    Ultra-lightweight JavaScript engine for the Internet of Things.

    Project mention: Arduino Announces MicroPython Support | reddit.com/r/programming | 2022-11-12
  • wasm3

    🚀 The fastest WebAssembly interpreter, and the most universal runtime

    Project mention: The Pine Formula | news.ycombinator.com | 2022-08-03

    > This product family will never run Linux, as developers will need to develop a new firmware from scratch. This is obviously not a problem for the earbuds, but a big limitation for the player

    Perhaps not Linux, but I suspect there would be a place here for a Unix-like platform that feels familiar. If for example we could get wide-adoption of something like the JVM or wasm3 [0] on these platforms, code could become quite portable, despite wildly different architectures.

    For example, Apache's NuttX [1] (that I first learned from Lupyuen, a guy making great progress working with Pine64 products).

    > Processing wise, this chip is well sufficient for TWS headphones, but very inadequate for an audio player. It will not drive a good screen, it nor run high-resolution flacs or (probably?) support a high-quality, high-bandwidth codec. In fact, a first generation iPod Nano (retailing for $149 in 2006) had 16MB RAM, so over 16 times what the PinePod would offer. In fact, even the features of any custom firmware are limited from so little memory

    I wouldn't call it time just yet. Displays can be interacted with intelligently (to reduce pixel bandwidth) and ultra high quality audio codecs offer diminishing returns, especially when you don't have a DAC or headphones to make the most of them.

    My advice to Pine64 would be this:

    1. Consolidate your product lines. The Pinebook is just a slower Pinebook Pro, just go with the Pinebook Pro. The PineTab is just a Pinebook without the keyboard, again I would consolidate this with the Pinebook Pro and just make the keyboard detachable.

    2. The SBCs should just go straight into the device, thus creating a clear upgrade path for future products. If you want a PineBook Pro running Quartz, just swap the boards (of course with daughter boards for USB expansion, display driver, power, etc).

    3. Don't be afraid to kill off products. The Pinebook and PineTab have never seen a new release. The PinePhone appears to be taking a back seat to the PinePhone Pro. The PineCube is basically DoA due to the processing power struggling to process the camera image.

    More generally, try to do fewer things, but do them well.

    [0] https://github.com/wasm3/wasm3

    [1] https://nuttx.apache.org/docs/latest/

    [2] https://lupyuen.github.io/articles/sensor

  • RIOT

    RIOT - The friendly OS for IoT (by RIOT-OS)

    Project mention: Programming arduino in actual C | reddit.com/r/embedded | 2022-10-20

    Alternatively, you can also write your code in an RTOS. They often have scripts that make flashing and debugging easy. One that I personally like, and also supports Arduino, is RIOT-OS.

  • wasm-micro-runtime

    WebAssembly Micro Runtime (WAMR)

    Project mention: Learning Embedded rust | reddit.com/r/rust | 2022-11-18

    A very interesting solution for high level interface access by less professional developers could be seen in pikascript, which works even on very small devices. WAMR is another project with similar capabilities. Both of them can be very well combined with core infrastructure realized as embedded rust code.

  • 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.

    Project mention: Toit – A Language Designed for Microcontrollers | news.ycombinator.com | 2022-06-08

    As long as Toit is licensed under the GNU Lesser General Public License v2.1, I am unlikely to consider using it. By contrast, MicroPython is licensed under the MIT License (MIT).

    As others have noted, Toit seems like a bad name. I suppose non-French speakers will tend to inadvertently mispronounce Toit.

    Getting traction is hard. In my opinion, having a restrictive license and a bad name make it less likely Toit will gain traction. Finally, Toit licensing reminds me of Mongoose OS https://github.com/cesanta/mongoose-os#mongoose-os---an-iot-....

  • 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.

    Project mention: Virtual line to offer audiobooks by phone? | reddit.com/r/VOIP | 2022-08-17

    Hopefully an update to allow speed changes will land... https://github.com/signalwire/freeswitch/pull/244

  • dustcloud

    Xiaomi Smart Home Device Reverse Engineering and Hacking

    Project mention: Rooting the Roborock 5S Max for Valetudo | reddit.com/r/Roborock | 2022-08-27

    but here's instructions on how to root: https://github.com/dgiese/dustcloud/wiki/VacuumRobots-manual-update-root-Howto

  • crun

    A fast and lightweight fully featured OCI runtime and C library for running containers

    Project mention: Is this an incompatibility with docker or an I doing something else wrong? | reddit.com/r/podman | 2022-11-22

    Looks like https://github.com/containers/crun/issues/255 - start there.

  • printf

    Tiny, fast, non-dependent and fully loaded printf implementation for embedded systems. Extensive test suite passing.

  • 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!

    Project mention: “Purchasing an arm” | reddit.com/r/Firearms | 2022-11-27

    Or something a bit more lightweight - https://github.com/wolfSSL/wolfssl

  • Kamailio

    Kamailio - The Open Source SIP Server for large VoIP and real-time communication platforms -

  • sod

    An Embedded Computer Vision & Machine Learning Library (CPU Optimized & IoT Capable)

    Project mention: Sod – An Embedded OpenCV Alternative (C Library) | news.ycombinator.com | 2022-01-31
  • Watchy

    Watchy - An Open Source E-Ink Smartwatch

    Project mention: Quest for My Perfect Watch | news.ycombinator.com | 2022-11-21
  • FlashDB

    An ultra-lightweight database that supports key-value and time series data | 一款支持 KV 数据和时序数据的超轻量级数据库

    Project mention: FlashDB: NEW Data - star count:1064.0 | reddit.com/r/algoprojects | 2022-11-19
  • Lua-RTOS-ESP32

    Lua RTOS for ESP32

    Project mention: Controlling ESP32 with Json from a phone | reddit.com/r/esp32 | 2022-10-31
  • Scout APM

    Truly a developer’s best friend. Scout APM is great for developers who want to find and fix performance issues in their applications. With Scout, we'll take care of the bugs so you can focus on building great things 🚀.

NOTE: The open source projects on this list are ordered by number of github stars. The number of mentions indicates repo mentiontions in the last 12 Months or since we started tracking (Dec 2020). The latest post mention was on 2022-11-29.

C IoT related posts


What are some of the best open-source IoT projects in C? This list will help you:

Project Stars
1 Netdata 61,254
2 TDengine 19,795
3 Tasmota 18,704
4 TimescaleDB 14,076
5 raylib 11,122
6 Mongoose 8,941
7 rt-thread 7,602
8 zephyr 6,944
9 jerryscript 6,427
10 wasm3 5,534
11 RIOT 4,315
12 wasm-micro-runtime 3,256
13 mongoose-os 2,329
14 freeswitch 2,083
15 dustcloud 2,050
16 crun 1,910
17 printf 1,906
18 wolfssl 1,775
19 Kamailio 1,761
20 sod 1,504
21 Watchy 1,380
22 FlashDB 1,092
23 Lua-RTOS-ESP32 1,015
Build time-series-based applications quickly and at scale.
InfluxDB is the Time Series Data Platform where developers build real-time applications for analytics, IoT and cloud-native services in less time with less code.