IoTGateway  by PeterWaher

C# IoT Gateway for robust device integration and data processing

Created 10 years ago
252 stars

Top 99.6% on SourcePulse

GitHubView on GitHub
Project Summary

Summary

This C# project, IoTGateway, provides a self-contained and highly modular implementation of an IoT gateway. It is designed for developers and power users involved in IoT development, offering a robust framework for device communication, data handling, and service integration. The primary benefit is a comprehensive, extensible platform that facilitates the creation of sophisticated IoT solutions with a focus on real-time processing and diverse communication protocols.

How It Works

IoTGateway employs a modular architecture, broken down into numerous .NET Standard and .NET Core libraries (NuGet packages). These modules cover a wide range of functionalities, including networking (XMPP, MQTT, HTTP, CoAP), content processing (Markdown to HTML conversion), data persistence (encrypted local storage, MongoDB), security (including Post-Quantum Cryptography), scripting, and device abstraction. This allows developers to select and integrate only the necessary components for their specific IoT applications. The gateway can host web content, administer devices via XMPP, and supports real-time Markdown-to-HTML conversion.

Quick Start & Requirements

  • Primary install/run command: Building the C# solution using Visual Studio 2022+ (Windows) or VS Code (macOS) is required. Specific command-line execution details are not provided as a single command.
  • Prerequisites: .NET 8 and .NET Standard 2.0/2.1 frameworks. Specific directory structures (C:\ProgramData\IoT Gateway Dev or /usr/share/IoT Gateway Dev) and environment variables (e.g., FILES_DB_SALT on macOS for database encryption) are necessary for compilation and runtime.
  • Links: No direct links to quick-start guides or demos are provided within the README.

Highlighted Details

  • Extensive Modularity: Features a vast array of NuGet packages covering networking, content handling, persistence, security, scripting, and more.
  • Cross-Platform Support: Utilizes .NET Standard and .NET Core, with many UWP (Universal Windows Platform) variants, enabling deployment on Windows 10 IoT devices and other platforms.
  • Advanced Security Features: Includes implementations for Post-Quantum Cryptography (ML-KEM, ML-DSA), ACME v2, JWS, JWT, and a Web Application Firewall (WAF).
  • Real-time Content Processing: Capable of converting Markdown to HTML dynamically and supports various content formats.
  • Extensible Scripting Engine: Offers a powerful scripting environment with extensions for data access, networking, persistence, and system operations.
  • Book Integration: Libraries are detailed in the book "Mastering Internet of Things" by Peter Waher.

Maintenance & Community

The project is authored by Peter Waher, with significant contributions noted for cybersecurity aspects. All rights are reserved by Waher Data AB, and contributions become their intellectual property. No community links (Discord, Slack) or roadmap details are provided in the README. Contact for commercial licenses is via LinkedIn.

Licensing & Compatibility

The project operates under a restrictive, custom license. While personal evaluation, academic use (with attribution and notification), and security analysis (with notification) are permitted, commercial use, modification, and redistribution in any form require a specific "Commercial License" from the author. This license is not a standard open-source license and significantly limits commercial adoption without explicit licensing.

Limitations & Caveats

The primary limitation is the highly restrictive licensing model, which prohibits most commercial applications and redistribution without a paid license. The setup process requires specific directory structures and environment variable configurations, potentially adding complexity for new users. The README describes it as a "New project," which may indicate ongoing development or potential for future breaking changes, despite copyright dating back to 2016.

Health Check
Last Commit

6 days ago

Responsiveness

Inactive

Pull Requests (30d)
0
Issues (30d)
0
Star History
0 stars in the last 30 days

Explore Similar Projects

Feedback? Help us improve.