Eclipse Kanto is a modular IoT edge software stack for devices that enables them for AIoT with all the essentials - cloud connectivity and digital twins, local messaging, container management and software updates - all configurable and remotely manageable by an IoT cloud ecosystem of choice.
Eclipse Kanto makes it possible to deploy intelligence on the device so companies can get more value from diverse edge assets, process and act on IoT data right on the device and manage devices from the cloud. Device manufacturers can add new revenue streams with connected products and ensure agile development for hardware and software. Using Eclipse Kanto, technology teams take advantage of configurable and reusable building blocks to connect the unconnected or build the edge applications for the next generation connected products and services. Eclipse Kanto is specifically optimized for complex IoT devices facing limited hardware resources, (near) real-time requirements, diverse device software, heterogeneous data sources and the ability to operate without connection. This makes it a perfect technology for emerging paradigms such as software-defined vehicles, connected machines and connected manufacturing, smart appliances, smart buildings and more!
Eclipse Kanto is based on lightweight native components, open protocols and standard containers that ensure availability on hardware, minimum integration work, reduced complexity and scalable applications
- Lightweight – deployable on various constrained edge devices with ranging hardware capabilities to scale hardware and connect diverse edge devices and data sources
- Containerized – develop edge applications using most fit-for-purpose languages and frameworks, manage diverse device software with cloud-native technology in uniform way
- Connected – connect to most-fit-for-purpose public IoT platforms, manage devices and device data from the cloud with minimum customization, and prototype quickly
- Flexible – choose and combine reusable configurable and interoperable building blocks to bring the right IoT edge capabilities depending on the hardware and use case
Eclipse Kanto empowers digital transformers to build connected products and digital services and benefit from
- Accelerated value creation via reducing the sheer complexity of edge software and promoting focus on differentiating device features and rapid innovation
- Accelerated development with quick prototyping, fast migration of cloud-native applications to edge devices
- Advanced interoperability by open standards and common APIs bundled in configurable and reusable building blocks
- Mature and robust technology incorporating knowledge and insights from edge experts with 20+ years in the field of edge and IoT
Eclipse Kanto's features at a glance
- Cloud connectivity via MQTT to the Bosch IoT Suite (powered by Eclipse Hono, Eclipse Ditto and Eclipse hawkBit)
- Automatically and securely connect devices to the Bosch IoT Suite cloud services using MQTT
- Auto-registration of edge devices using certificates
- Use of digital twins in the cloud for connected edge devices and their capabilities
- Send telemetry data and receive commands from the cloud
- Self-reliant and autonomous operation during connectivity loss via buffering messages
- Cloud connectivity via MQTT to Microsoft Azure IoT
- Device provisioning via Azure Device Provisioning Service
- Connection to Azure IoT Hub using connection string and authentication with SAS token
- Support of device-to-cloud (telemetry) and cloud-to-device (command&control) messages
- Comprehensive semantic representation and modelling of edge functions and state
- Represent edge devices and their capabilities using Eclipse Vorto models and function blocks
- Command and control devices in uniform way based on Eclipse Vorto models - locally and from the cloud
- Local communication and messaging via MQTT and Eclipse Ditto
- Develop loosely coupled event-driven applications that exchange messages over a local Mosquito MQTT broker
- MQTT broker configurations and message forwarding between applications and to the cloud
- Access and manage connected IoT devices, IoT device data and services in cloud and at the edge via Eclipse Ditto protocol
- Lightweight and pluggable OCI-compliant container management
- Package edge applications into OCI containers to ensure better isolation, availability, reliability and dependency management
- Use most fit-for-purpose technology and programming frameworks for IoT applications
- Containers lifecycle and state management, incl. restart policy support, host resources access management, networking support, secured download and installation via secured access to container registries
- Configure, monitor and manage OCI containers and containerized applications deployed at the edge using containers digital twin representation based on Vorto models, possibility to use the models in management operations
- Flexible integration with most fit-for-purpose container management runtimes like containerd, podman, kata containers, LXC, LXD and more
- Advanced container management using container manifests to define container engine state
- Ensure a configuration interface that abstracts the complexity of the underlying executable components
- Ensure initial system state, for example initial tooling/applications provisioning
- Perform configurations and management at a higher level (e.g. the configuration unit is a set of containers, not a single instance)
- Lightweight Kubernates control plane to enable distributed edge applications and seamless management of diverse software running on complex edge devices
- Flexible software management
- Deploy and manage software artifacts at the edge using the standard software management model of Bosch IoT Suite
- Out-of-the box support for deployment and updates of OCI containers and containerized applications at the edge, incl. enablement to use mass management operations
- Possibility to easily add support for new types of software artifact using ready SoftwareUpdatable Go library and SoftwareUpdatable features providing extensible and configurable software download and installation flow
- Script-based software updates
- Software update on the device using a script that enables updates of any kind of software, predefined in your script - via the standard software management of the Bosch IoT Suite Device Management using SoftwareUpdatable
- Monitor the install and download process and resume it on start up.
- File upload
- Upload files such as logs, configurations, backups to the cloud using flexible cloud storage integrations with Azure Cloud Storage and AWS S3 buckets
- Configure the edge from the backend to send files periodically, or for the backend to explicitly trigger file upload from the device
- Advanced edge performance monitoring, logging and tracing via OpenTelemetry integration
- Configure and collect CPU usage, memory, IO, disk access and more metrics for the system and per edge application
- Configure logging and tracing levels for the whole system and per edge application in real time to remotely debug and monitor the edge
- Integrate into an ecosystem of systems and tools for visualization, analysis and application performance insights
- Flexible deployment and availability on hardware
- Deployable on wide range of platforms with varying hardware capabilities - Linux ARM, Linux ARM64, Linux x86_64, including ready packages and life cycle management scripts
- Specifically optimized for constrained devices to offer compact footprint, optimal resource utilization and excellent performance
- Integrated with Linux ecosystems like Yocto Project, Debian and Apertis Pro
- Integrated with open hardware platforms like Raspberry Pi
- Robust device-side client SDKs and libraries (southbound) for different languages to accelerate development of edge applications
- Eclipse Ditto libraries for device-side applications (southbound) for integration with the local MQTT messaging using Eclipse Ditto for Go, Python and more
- SoftwareUpdatable library for implementing software update agents in Go
Eclipse Kanto is implemented in Go to naturally integrate with existing cloud-native technologies, frameworks and ecosystems, meet footprint and (near) real-time constraints, leverage modern development toolchains and ensure optimal learning curve for IoT and open source developers! As Eclipse Kanto is modular by nature, new components can also be implemented in other languages like Rust, C/C++ depending on the use cases and problems they solve. Whatever the language, everyone is more than welcome onboard to learn, collaborate and contribute on each and every step on the way forward!
The content of this open source project is received and distributed under the license(s) listed above. Some source code and binaries may be distributed under different terms. Specific license information is provided in file headers and in NOTICE files distributed with the project's binaries.
Member companies supporting this project over the last three months.