Browse free open source IoT software and projects for Mac and Linux below. Use the toggles on the left to filter open source IoT software by OS, license, language, programming language, and project status.

  • $300 Free Credits to Build on Google Cloud Icon
    $300 Free Credits to Build on Google Cloud

    New customers can spin up VMs, build with AI, and query data at no cost.

    Put your $300 in credit toward real workloads, then keep building with free monthly usage for 20+ products. No commitment and no charge until you upgrade.
    Start Free
  • One Monitoring Tool for IT, OT and Cloud | Free Trial Icon
    One Monitoring Tool for IT, OT and Cloud | Free Trial

    Vendor-agnostic monitoring across on-prem servers, cloud platforms and OT devices, all in one dashboard. No more tool sprawl.

    Modern infrastructure spans data centers, cloud platforms and factory floors, and every blind spot between them is a risk. PRTG supports SNMP, WMI, SSH and other standard protocols to monitor IT, OT and hybrid environments through one customizable dashboard. Build the views your team needs, from network health to application performance, without switching tools. Try PRTG free for 30 days now.
    Try PRTG Free
  • 1
    ThingsBoard

    ThingsBoard

    Device management, data collection, processing and visualization

    ThingsBoard is an open-source IoT platform for data collection, processing, visualization, and device management. It enables device connectivity via industry standard IoT protocols, MQTT, CoAP and HTTP and supports both cloud and on-premises deployments. ThingsBoard combines scalability, fault-tolerance and performance so you will never lose your data. Provision, monitor and control your IoT entities in a secure way using rich server-side APIs. Define relations between your devices, assets, customers or any other entities. Collect and store telemetry data in a scalable and fault-tolerant way. Visualize your data with built-in or custom widgets and flexible dashboards. Share dashboards with your customers. Define data processing rule chains. Transform and normalize your device data. Raise alarms on incoming telemetry events, attribute updates, device inactivity, and user actions.
    Downloads: 64 This Week
    Last Update:
    See Project
  • 2
    EMQX

    EMQX

    The Most Scalable MQTT Broker for IoT

    EMQX is the world's most scalable and reliable MQTT Broker designed by EMQ. It supports 100M concurrent IoT device connections per cluster while maintaining extremely high throughput and sub-millisecond latency. EMQX boasts more than 20,000 global users from over 50 countries, connecting more than 100M IoT devices worldwide, and is trusted by over 300 customers in mission-critical IoT scenarios, including well-known brands like HPE, VMware, Verifone, SAIC Volkswagen and Ericsson. Flex to meet the demands of various industries towards digital transformation, including Connected Vehicles, Industrial IoT, Oil & Gas, Carrier, Finance, Smart Energy, and Smart Cities.
    Leader badge
    Downloads: 995 This Week
    Last Update:
    See Project
  • 3
    ESPHome

    ESPHome

    ESPHome is a system to control your ESP8266/ESP32

    ESPHome is a system for defining and deploying custom firmware to ESP8266 and ESP32 microcontrollers for smart home automation. Using a simple YAML configuration, users can specify how sensors, switches, and devices should behave, and ESPHome compiles and flashes the firmware accordingly. Integrated seamlessly with Home Assistant, ESPHome is ideal for DIY home automation enthusiasts who want full control over their IoT devices.
    Downloads: 28 This Week
    Last Update:
    See Project
  • 4
    MQTT X

    MQTT X

    Powerful cross-platform MQTT 5.0 desktop, CLI, and WebSocket client

    MQTT X is a cross-platform MQTT 5.0 client tool open sourced by EMQ, which can run on macOS, Linux and Windows, and supports formatting MQTT payload. MQTT X simplifies test operation with the help of a familiar, chat-like interface. It’s easy and quick to create multiple, simultaneous online MQTT client connections, and can test the connection, publishing, and subscription functions of MQTT/TCP, MQTT/TLS, MQTT/WebSocket as well as other MQTT protocol features. MQTT stands for MQ Telemetry Transport. It is a publish/subscribe, extremely simple and lightweight messaging protocol, designed for constrained devices and low-bandwidth, high-latency or unreliable networks. To run MQTT Broker locally, EMQX is recommended: An Open-Source, Cloud-Native, Distributed MQTT Broker for IoT. After the MQTT is connected successfully, you can perform MQTT publish and subscription tests.
    Downloads: 27 This Week
    Last Update:
    See Project
  • Build Agents and Models on One Platform Icon
    Build Agents and Models on One Platform

    Everything you need to build production-ready agents and models. Access 200+ Google and third-party AI models and tools.

    Gemini Enterprise Agent Platform is Google Cloud's comprehensive platform for developers to build, scale, govern, and optimize agents and models. Choose from Google's most advanced models and third-party models like Anthropic's Claude Model Family.
    Start Free
  • 5
    Zigbee2MQTT

    Zigbee2MQTT

    Get rid of your proprietary Zigbee bridges

    Zigbee2MQTT is an open-source bridge that lets users operate Zigbee devices without relying on proprietary vendor gateways. It connects compatible Zigbee adapters to devices and translates their events and controls into MQTT messages. This makes Zigbee hardware usable with a wide range of home automation platforms rather than tying it to one ecosystem. The project maintains device state locally and provides web interfaces for monitoring and configuration. Its architecture combines zigbee-herdsman for radio communication with device converters that map individual hardware models to Zigbee capabilities. It supports an extensive device catalog and integrates with platforms such as Home Assistant, Homey, Domoticz, Gladys Assistant, and ioBroker.
    Downloads: 19 This Week
    Last Update:
    See Project
  • 6
    Eclipse Mosquitto

    Eclipse Mosquitto

    Eclipse Mosquitto - An open source MQTT broker

    Eclipse Mosquitto is an open-source MQTT message broker from the Eclipse ecosystem. It implements MQTT versions 5.0, 3.1.1, and 3.1 for lightweight publish-and-subscribe communication. The project is designed for IoT, machine-to-machine messaging, telemetry, home automation, embedded devices, and distributed systems that need efficient event delivery. It includes the broker itself, C and C++ client libraries, and command-line tools for publishing, subscribing, request-response testing, password management, broker control, and signaling. Mosquitto is portable and can run on small devices, servers, containers, and many operating systems. Its main value is providing a mature, lightweight, widely adopted MQTT implementation for reliable messaging in constrained and production environments.
    Downloads: 16 This Week
    Last Update:
    See Project
  • 7
    AWS IoT Device SDK for C++ v2

    AWS IoT Device SDK for C++ v2

    Next generation AWS IoT Client SDK for C++ using AWS Common Runtime

    Next-generation AWS IoT Client SDK for C++ using the AWS common runtime. This document provides information about the AWS IoT device SDK for C++ V2. If you have any issues or feature requests, please file an issue or pull request. This SDK is built on the AWS Common Runtime, a collection of libraries (AWS-c-common, aws-c-io, aws-c-mqtt, aws-c-http, aws-c-cal, aws-c-auth, s2n...) written in C to be cross-platform, high-performance, secure, and reliable. The libraries are bound to C++ by the AWS-crt-CPP package.
    Downloads: 15 This Week
    Last Update:
    See Project
  • 8
    AWS IoT Device SDK v2 for Python

    AWS IoT Device SDK v2 for Python

    Next generation AWS IoT Client SDK for Python

    Next-generation AWS IoT Client SDK for Python using the AWS Common Runtime. This document provides information about the AWS IoT Device SDK v2 for Python. This SDK is built on the AWS Common Runtime, a collection of libraries (aws-c-common, aws-c-io, aws-c-mqtt, aws-c-compression, aws-c-http, aws-c-cal, aws-c-auth, s2n ...) written in C to be cross-platform, high-performance, secure, and reliable. The libraries are bound to Python by the awscrt package (PyPI). AWS IoT provides the cloud services that connect your IoT devices to other devices and AWS cloud services. AWS IoT provides device software that can help you integrate your IoT devices into AWS IoT-based solutions. If your devices can connect to AWS IoT, AWS IoT can connect them to the cloud services that AWS provides. AWS IoT lets you select the most appropriate and up-to-date technologies for your solution.
    Downloads: 12 This Week
    Last Update:
    See Project
  • 9
    AWS IoT Fleet Provisioning Library

    AWS IoT Fleet Provisioning Library

    Client library for using AWS IoT Fleet Provisioning service

    The Fleet Provisioning library enables you to provision IoT devices without device certificates using the Fleet Provisioning feature of AWS IoT Core. For an overview of provisioning options available, see Device provisioning. This library has no dependencies on any additional libraries other than the standard C library, and therefore, can be used with any MQTT library. This library is distributed under the MIT Open Source License. This library has gone through code quality checks including verification that no function has a GNU Complexity score over 8, and checks against deviations from mandatory rules in the MISRA coding standard. Deviations from the MISRA C:2012 guidelines are documented under MISRA Deviations. This library has also undergone static code analysis using Coverity static analysis, and validation of memory safety through the CBMC automated reasoning tool.
    Downloads: 12 This Week
    Last Update:
    See Project
  • Veeam Data Platform v13.1 - Get Your Free Trial Icon
    Veeam Data Platform v13.1 - Get Your Free Trial

    Secure by design, portable by default. Recover clean, fast, anywhere. Start a free trial.

    Try Veeam Data Platform today. Experience the unified platform that's secure by design, portable by default, and proven to recover clean, fast, and anywhere.
    Try it Free
  • 10
    LavinMQ

    LavinMQ

    Ultra quick message queue and streaming server

    LavinMQ is a high-performance message queue and streaming server built for efficient message delivery. It implements AMQP 0-9-1 and MQTT 3.1.1, making it useful for applications that need reliable messaging, IoT communication, event processing, and backend service coordination. The server is written in Crystal, which helps it keep memory usage low while supporting high throughput. It is designed to handle very long queues, many client connections, and production workloads with minimal configuration. LavinMQ can be used as a lightweight alternative in RabbitMQ-compatible environments where AMQP-based clients are already common. Its main value is combining speed, low resource consumption, protocol compatibility, and operational simplicity in one open-source broker.
    Downloads: 9 This Week
    Last Update:
    See Project
  • 11
    Arm Mbed OS

    Arm Mbed OS

    Platform operating system designed for the Internet of Things

    Arm Mbed OS is an open source embedded operating system specifically designed for the Internet of Things. It’s packed with all the features you need to develop your next IoT product based on an Arm Cortex-M microcontroller efficiently, securely and rapidly. These include security foundations, cloud management services, and drivers for sensors and I/O devices.
    Downloads: 6 This Week
    Last Update:
    See Project
  • 12
    MQTTnet

    MQTTnet

    High performance .NET library for MQTT based communication

    MQTTnet is a high-performance .NET library for MQTT-based communication. It provides an MQTT client and an MQTT server (broker) and supports the MQTT protocol up to version 5. TLS support for client and server (but not UWP servers). Extensible communication channels (e.g. In-Memory, TCP, TCP+TLS, WS). Lightweight (only the low-level implementation of MQTT, no overhead). Performance optimized (processing ~150.000 messages/second). Uniform API across all supported versions of the MQTT protocol. Tested on the local machine (Intel i7 8700K) with MQTTnet client and server running in the same process using the TCP channel. The app for verification is part of this repository and stored in /Tests/MQTTnet.TestApp.NetCore. List of connected clients available. Supports connected clients with different protocol versions at the same time. Able to publish its own messages (no loopback client required). Able to receive every message (no loopback client required).
    Downloads: 6 This Week
    Last Update:
    See Project
  • 13
    Zephyr Project

    Zephyr Project

    Scalable, optimized, secure RTOS for multiple hardware architectures

    The Zephyr Project is a new generation real-time operating system (RTOS) that supports multiple hardware architectures. It is based on a small-footprint kernel specially designed for use on resource-constrained and embedded systems. The Zephyr OS can be used for a wide range of applications: from simple embedded environmental sensors and LED wearables to sophisticated embedded controllers, smart watches, and IoT wireless applications.
    Downloads: 6 This Week
    Last Update:
    See Project
  • 14
    MQTT Protocol Chinese Version

    MQTT Protocol Chinese Version

    MQTT Protocol 3.1.1 Chinese Translation, IoT, Internet of Things

    MQTT is a Chinese translation of the OASIS MQTT 3.1.1 protocol specification for developers working with messaging, machine-to-machine systems, and the Internet of Things. It explains MQTT as a lightweight client-server publish-and-subscribe transport designed for constrained devices and networks. The documentation covers protocol concepts, control packet formatting, operational behavior, security, WebSocket transport, and conformance requirements. Individual chapters describe connection, publication, subscription, acknowledgment, heartbeat, and disconnection packets in detail. The material can be read through GitBook, the repository wiki, HTML, PDF, or ebook editions. Its structured table of contents makes specific packet definitions and normative rules easy to locate. The project is documentation rather than an MQTT broker or client implementation.
    Downloads: 4 This Week
    Last Update:
    See Project
  • 15
    SerialTest

    SerialTest

    A cross platform debugger for serial port/Bluetooth/TCP/UDP

    A versatile test tool running on Windows/Linux/macOS/Android. Works as data transceiver/realtime plotter/shortcut/file transceiver. Supports serial port, Bluetooth SPP client/server, Bluetooth LE client, TCP client/server, UDP. Homepage: https://github.com/wh201906/SerialTest
    Leader badge
    Downloads: 42 This Week
    Last Update:
    See Project
  • 16
    IoTDB

    IoTDB

    Apache IoTDB

    Apache IoTDB (Database for Internet of Things) is an IoT native database with high performance for data management and analysis, deployable on the edge and the cloud. Due to its light-weight architecture, high performance and rich feature set together with its deep integration with Apache Hadoop, Spark and Flink, Apache IoTDB can meet the requirements of massive data storage, high-speed data ingestion and complex data analysis in the IoT industrial fields. In the scene of factories, there are tens of devices under LAN network. IoTDB can be installed on a local controller server in the factory to receive data from those devices. The local controller server (normal PC or workstation) with IoTDB can provide the ability to persist data and query data with SQL-like interface. In addition, with TsFile-Sync tool, TsFiles on the local controller can be transmitted to the data center equipped with IoTDB instance in the cloud.
    Downloads: 2 This Week
    Last Update:
    See Project
  • 17
    Mongoose OS

    Mongoose OS

    IoT firmware development framework

    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. Mongoose OS is integrated and powers many types of devices and appliances globally. Microsoft Azure IoT recommends Mongoose OS for OTA, automatic device management and deploying firmware updates at scale. Built-in flash encryption, crypto chip support, ARM mbedTLS optimized for small memory footprint. Device management dashboard service. Supported microcontrollers are CC3220, CC3200, ESP32, ESP8266, STM32F4, STM32L4, STM32F7. Recommended dev kits are ESP32-DevKitC for AWS IoT, ESP32 Kit for Google IoT Core.
    Downloads: 2 This Week
    Last Update:
    See Project
  • 18
    SCADA-LTS

    SCADA-LTS

    A comprehensive Supervisory Control, Data Acquisition, and Execution

    SCADA-LTS is an advanced FOSS, web-based, multi-platform environment designed to build your own Supervisory Control, Data Acquisition, and Management Execution Software - SCADA/MES. Its architecture provides a robust foundation for complex industrial automation and monitoring. Optimized for Smart Infrastructure, it is highly capable of managing industrial PV/BESS, Smart buildings, municipal Water networks or Wastewater treatment, ANPR telemetry, City-wide lighting, and other diverse data administration workflows. Beyond standard use, SCADA-LTS serves as a secure "independent source of truth" in sandboxed or zero-trust environments. It enhances critical infrastructure with cyber-alarm functionality, emergency operation scenarios, and vital operational visibility. Developed since 2015 on behalf of Abil'I.T. and supported by a global community, the project focuses on stability, security, and modernizing the codebase to meet the demands of industry, defense, and wide-area distributed
    Leader badge
    Downloads: 16 This Week
    Last Update:
    See Project
  • 19
    AWS IoT Device Shadow library

    AWS IoT Device Shadow library

    Client library for using AWS IoT Shadow service on embedded devices

    The AWS IoT Device Shadow library enables you to store and retrieve the current state (the “shadow”) of every registered device. The device’s shadow is a persistent, virtual representation of your device that you can interact with from AWS IoT Core even if the device is offline. The device state is captured as its “shadow” within a JSON document. The device can send commands over MQTT to get, update and delete its latest state as well as receive notifications over MQTT about changes in its state. Each device’s shadow is uniquely identified by the name of the corresponding “thing”, a representation of a specific device or logical entity on the AWS Cloud. See Managing Devices with AWS IoT for more information on IoT "thing". More details about AWS IoT Device Shadow can be found in AWS IoT documentation. This library is distributed under the MIT Open Source License.
    Downloads: 1 This Week
    Last Update:
    See Project
  • 20
    Gobot

    Gobot

    Golang framework for robotics, drones, and the Internet of Things

    Gobot makes controlling robots and devices incredibly simple and fun. This program connects to an Arduino, and toggles an LED, every one second. Support for devices that use Analog Input/Output (AIO) communication have a shared set of drivers provided using the "gobot/drivers/aio" package. Support for devices that use General Purpose Input/Output (GPIO) communication have a shared set of drivers provided using the "gobot/drivers/gpio" package. Gobot has a extensible system for connecting to hardware devices. Gobot includes a RESTful API to query the status of any connection, device or robot running in your swarm. It additionally has the ability to issue commands directly to your devices and robots. It also comes with the robeaux React.JS interface baked right into its API server for quick and easy configuration.
    Downloads: 1 This Week
    Last Update:
    See Project
  • 21
    DEVS-Suite Simulator

    DEVS-Suite Simulator

    Component, CA, and CCA models; superdense time, ETL DB, testing, etc.

    Integrated component-based and cellular automata (CA) Parallel DEVS simulator. Version: 8.0 [Aug `26], 7.0 [Jan `23], 6.1 [Apr. `21], 6 [Sep. `20] , 5 [Jul. `19], 4 [Mar. `18], 3 [Apr. `15], 2.1 [Feb. `09], 2 [`03] See PVM: Visual Persistent Hierarchical Component-based Modeler (https://acims.asu.edu/persistent-visual-modeler/ ) and CoSMoSim: hierarchical visual modeling, database model repository, families of models, statecharts, partial-code generation for XML/DEVS-Suite models (https://acims.asu.edu/software/cosmos/).
    Leader badge
    Downloads: 12 This Week
    Last Update:
    See Project
  • 22

    json-scada

    A portable SCADA/IoT platform centered on the MongoDB database server.

    Standard IT tools applied to SCADA/IoT (MongoDB, PostgreSQL/TimescaleDB,Node.js, C#, Golang, Grafana, etc.). MongoDB as the real-time core database, persistence layer, config store, SOE historian. Portability and interoperability over Linux, Windows, x86/64, ARM. Horizontal scalability, from a single computer to big clusters (MongoDB-sharding), Bare Metal, Docker containers, VM, cloud, or hybrid deployments. Unlimited tags, servers, and users. HTML5 Web interface. UTF-8/I18N. Protocols: IEC61850 Client, IEC60870-5-101/104 Client and Server, DNP3 Client, OPC-UA Client/Server, MQTT/Sparkplug-B, Telegraf (various data sources for monitoring like Modbus, SNMP, etc.) Github. project https://github.com/riclolsen/json-scada Requirements for Windows Installer: Windows 10/11 64 bits or Server 2016, Windows PowerShell.
    Downloads: 9 This Week
    Last Update:
    See Project
  • 23
    CoSMoSim

    CoSMoSim

    Visual & persistent families of models for CA, DEVS, and Statecharts

    CoSMoSim offers an integrated framework for model development, simulation, & experimentation. Its unified logical, visual, and persistence framework supports specifying families of parallel CA, DEVS, Statecharts, and XML-Schema models (see DEVS-Suite simulator).
    Downloads: 4 This Week
    Last Update:
    See Project
  • 24

    ESP Easy

    Arduino IDE sketch for ESP8266 modules

    Firmware for ESP8266 modules. http://www.esp8266.nu/index.php/Tutorial_ESPEasy_Firmware_Upload Use an ESP8266 module as a wireless sensor for temperature, humidity, barometric pressure, LUX, etc. Or use it as an actuator to control Relays. Supports the following Home Automation platform protocols: * Domoticz HTTP * Domoticz MQTT * OpenHAB MQTT * PiDome MQTT * Nodo Telnet * ThingSpeak webservice * EmonCMS * FHEM HTTP * Generic HTTP using templates Supported devices: * DS18B20 * DHT11 * DHT22 * BH1750 * BMP085 * Wiegand RFID * PN532 * SI7021 * TSL2516 * HCSR04 * TSOP4838 IR * MCP23017 * PCF8591 * PCA9685 * LCD and OLED displays * BME280 * INA219 * MLX90614 * ADS1115 * MSP5611 * BMP280 * SHT1x The ESP is web configurable for both Wifi setup and device configuration. For support: - have a look at the wiki on www.esp8266.nu - join our forum on www.esp8266.nu/forum
    Downloads: 3 This Week
    Last Update:
    See Project
  • 25
    WriteGuard

    WriteGuard

    WriteGuard is a powerful and user-friendly batch script interface

    WriteGuard is a powerful and user-friendly batch script interface designed to manage the Unified Write Filter (UWF) on Windows 10/11 systems. It simplifies enabling, disabling, and configuring UWF features including volume protection, file and registry exclusions, overlay settings, and servicing mode — all through an intuitive menu-driven interface. WriteGuard is ideal for administrators and users who want to protect system volumes from unwanted changes, streamline system lockdown, and maintain system integrity with ease.
    Downloads: 1 This Week
    Last Update:
    See Project
  • Previous
  • You're on page 1
  • 2
  • 3
  • Next