• Stars
    star
    469
  • Rank 90,204 (Top 2 %)
  • Language
    Java
  • License
    Eclipse Public Li...
  • Created over 10 years ago
  • Updated 8 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Eclipse Kura™ project

Eclipse Kura™

Kura™ logo

GitHub Tag GitHub

Jenkins Jenkins

What is Eclipse Kura™?

From the maori word for tank/container, Eclipse Kura™ is a versatile software framework designed to supercharge your edge devices. With an intuitive web interface, Eclipse Kura™ streamlines the process of configuring your gateway, connecting sensors, and IoT devices to seamlessly collect, process, and send data to the cloud. Eclipse Kura™ provides an extensible Java API for developing custom plugins within the framework. Additionally, it offers a REST API, enabling the use of Eclipse Kura™ as a backend service in your application.

Eclipse Kura™ runs on an edge gateway, which can be anything from a small SBC(single-board computer) like a Raspberry Pi, or a powerful high-performance computer.

What can Eclipse Kura™ do for me?

  • Kura™ Services: Provision and set up features to run on your gateway, such as an MQTT broker.
  • Kura™ Networking: Manage Network connectivity, including
  • Kura™ Wires: Design data flows and data processing streams effortlessly with a drag-and-drop visual editor.
  • Kura™ Cloud Connectors: Extendable cloud connector system.
  • Kura™ Drivers: Extendable service that handles reading data off of external devices.
  • Kura™ Snapshots: Securely store and re-apply gateway settings for convenience.
  • Kura™ Security: Easily and safely store your secrets.
  • Kura™ Container Orchestrator: Manage Docker or Podman containers on your gateway for ultimate flexibility.
  • Kura™ AI Inference: Run Nvidia Triton Models on the edge.
  • Kura™ Plugins: Add and Extend the framework by adding your own Services, and Drivers.
  • Kura™ REST Service: Embed the framework as a backend in your own edge applications.

I have used Eclipse Kura™ to make a small-scale Edge deployment, how do I scale now?

If you want to scale, and manage many instances of Eclipse Kura™, check out Eclipse Kapua™. Eclipse Kapua™ is a Eclipse Kura™ compatible cloud command and control service that allows you to aggregate data and configure many Eclipse Kura™ devices.

Documentation

  • User Documentation: here you'll find information on how to use Eclipse Kura™ i.e. installation instructions, informations on how to use the web UI and tutorials.
  • Developer Documentation: the Eclipse Kura™ Github Wiki serves as a reference for developers who want to contribute to the Eclipse Kura™ project and/or develop new add-ons. Here you'll find Eclipse Kura™ development/release model, guidelines on how to import internal packages, creating new bundles and development environment tips & tricks.
  • Docker Containers Documentation: the Eclipse Kura™ team also provides Docker containers for the project. Information on how to build and run them are available at the project's Docker Hub page.
  • Developer Quickstart Guide: a quick guide on how to setup the development environment and build the project is also provided in this README.

Additionally, we provide two channels for reporting any issue you find with the project

  • Github Issues: for bug reporting.
  • Github Discussions: for receiving feedback, asking questions, making new proposals and generally talking about the project.

Install

Eclipse Kura™ is compatible with Java 8 and Java 17.

Target Gateways Installers

Eclipse Kura™ provides pre-built installers for common development boards. Check the following link to download the desired installers. Take a look at our documentation for further information on supported platforms and installer types.

Docker Image

Eclipse Kura™ is also available as a Docker container.

Build

Prerequisites

In order to be able to build Eclipse Kura™ on your development machine, you need to have the following programs installed in your system:

  • JDK 1.8
  • Maven 3.5.x

Installing Prerequisites in Mac OS

To install Java 8, download the JDK tar archive from the Adoptium Project Repository.

Once downloaded, copy the tar archive in /Library/Java/JavaVirtualMachines/ and cd into it. Unpack the archive with the following command:

sudo tar -xzf <archive-name>.tar.gz

The tar archive can be deleted afterwards.

Depending on which terminal you are using, edit the profiles (.zshrc, .profile, .bash_profile) to contain:

# Adoptium JDK 8
export JAVA_8_HOME=/Library/Java/JavaVirtualMachines/<archive-name>/Contents/Home
alias java8='export JAVA_HOME=$JAVA_8_HOME'
java8 

Reload the terminal and run java -version to make sure it is installed correctly.

Using Brew you can easily install Maven from the command line:

brew install [email protected]

Run mvn -version to ensure that Maven has been added to the PATH. If Maven cannot be found, try running brew link [email protected] --force or manually add it to your path with:

export PATH="/usr/local/opt/[email protected]/bin:$PATH"

Installing Prerequisites in Linux

For Java

sudo apt install openjdk-8-jdk

For Maven

You can follow the tutorial from the official Maven site. Remember that you need to install the 3.5.x version.

Build Eclipse Kura™

Change to the new directory and clone the Eclipse Kura™ repo:

git clone -b develop https://github.com/eclipse/kura.git

Move inside the newly created directory and build the target platform:

mvn -f target-platform/pom.xml clean install

Build the core components:

mvn -f kura/pom.xml clean install

Build the examples (optional):

mvn -f kura/examples/pom.xml clean install

Build the target profiles:

mvn -f kura/distrib/pom.xml clean install -DbuildAll

Tip

You can skip tests by adding -Dmaven.test.skip=true in the commands above and you can compile a specific target by specifying the profile (e.g. -Praspberry-pi-armhf).

Build scripts

Alternatively, you can use the build scripts available in the root directory.

./build-all.sh

or

./build-menu.sh

and select the profiles you want to build.

Building Eclipse Kura™ Containers

The Eclipse Kura™ container build process currently only supports x86 containers. Following the instructions below will build two containers. One based on Alpine Linux kura-alpine-x86_64, and another on Ubi8 kura-ubi8-x86_64.

Build Eclipse Kura™ as per our instructions. To build the containers you'll need to change the target of the "Build the target profiles" step like the following:

mvn -f kura/distrib/pom.xml clean install -DbuildAllContainers

Note

This build step requires 'docker' to be a executable command on your system. For Instance, if you are using Podman please follow the Emulating Docker Cli Guide before running the command above.

After this command completes, images can be found in your preferred container engine image list.

IDE Setups

We currently support two setups for Eclipse Kura™ development:

  • Eclipse Kura™ Development Environment Setup: This is the full setup allowing you to contribute to the core Eclipse Kura™ project codebase. It will install all the IDE plugins and formatters to have a pleasant development experience and clone the Eclipse Kura™ source code on your workstation.
  • Add-on Development Environment Setup: This setup will allow you to develop applications or bundles running on Eclipse Kura™. It will install only the APIs and the examples and is best suited for developing Eclipse Kura™ add-ons.

Contributing

Contributing to Eclipse Kura™ is fun and easy! To start contributing you can follow our guide here.

More Repositories

1

mosquitto

Eclipse Mosquitto - An open source MQTT broker
C
7,649
star
2

che

Kubernetes based Cloud Development Environments for Enterprise Teams
TypeScript
6,868
star
3

jetty.project

Eclipse Jetty® - Web Container & Clients - supports HTTP/2, HTTP/1.1, HTTP/1.0, websocket, servlets, and more
Java
3,655
star
4

paho.mqtt.android

MQTT Android
Java
2,708
star
5

paho.mqtt.golang

Go
2,381
star
6

eclipse-collections

Eclipse Collections is a collections framework for Java with optimized data structures and a rich, functional and fluent API.
Java
2,283
star
7

paho.mqtt.java

Eclipse Paho Java MQTT client library. Paho is an Eclipse IoT project.
Java
2,000
star
8

paho.mqtt.python

paho.mqtt.python
Python
1,946
star
9

sumo

Eclipse SUMO is an open source, highly portable, microscopic and continuous traffic simulation package designed to handle large networks. It allows for intermodal simulation including pedestrians and comes with a large set of tools for scenario creation.
1,902
star
10

paho.mqtt.c

An Eclipse Paho C client library for MQTT for Windows, Linux and MacOS. API documentation: https://eclipse.github.io/paho.mqtt.c/
C
1,736
star
11

eclipse.jdt.ls

Java language server
Java
1,410
star
12

mraa

Linux Library for low speed IO Communication in C with bindings for C++, Python, Node.js & Java. Supports generic io platforms, as well as Intel Edison, Intel Joule, Raspberry Pi and many more.
C
1,349
star
13

paho.mqtt.embedded-c

Paho MQTT C client library for embedded systems. Paho is an Eclipse IoT project (https://iot.eclipse.org/)
C
1,271
star
14

paho.mqtt.javascript

paho.mqtt.javascript
JavaScript
1,115
star
15

openvsx

An open-source registry for VS Code extensions
Java
1,059
star
16

milo

Eclipse Milo™ - an open source implementation of OPC UA (IEC 62541).
Java
976
star
17

omr

Eclipse OMR™ Cross platform components for building reliable, high performance language runtimes
C++
917
star
18

paho.mqtt.cpp

C++
875
star
19

xtext

Eclipse Xtext™ is a language development framework
Java
715
star
20

upm

UPM is a high level repository that provides software drivers for a wide variety of commonly used sensors and actuators. These software drivers interact with the underlying hardware platform through calls to MRAA APIs.
C++
651
star
21

microprofile

Repository for important documentation - the index to the project / community
Java
635
star
22

californium

CoAP/DTLS Java Implementation
Java
620
star
23

leshan

Java Library for LWM2M
Java
614
star
24

paho.mqtt-spy

mqtt-spy is an open source desktop & command line utility intended to help you with monitoring activity on MQTT topics
Java
605
star
25

jkube

Build and Deploy java applications on Kubernetes
Java
593
star
26

steady

Analyses your Java applications for open-source dependencies with known vulnerabilities, using both static analysis and testing to determine code context and usage for greater accuracy. https://eclipse.github.io/steady/
Java
516
star
27

sprotty

A diagramming framework for the web
TypeScript
514
star
28

buildship

The Eclipse Plug-ins for Gradle project.
Java
507
star
29

paho.mqtt.m2mqtt

C#
495
star
30

lsp4j

A Java implementation of the language server protocol intended to be consumed by tools and language servers implemented in Java.
Java
473
star
31

wakaama

Eclipse Wakaama is a C implementation of the Open Mobile Alliance's LightWeight M2M protocol (LWM2M).
C
465
star
32

streamsheets

An open-source tool for processing stream data using a spreadsheet-like interface.
JavaScript
441
star
33

paho.mqtt.rust

paho.mqtt.rust
Rust
422
star
34

jifa

🔬 Online Heap Dump, GC Log & Thread Dump Analyzer. Make troubleshooting easy.
Java
421
star
35

hawkbit

Eclipse hawkBit™
Java
416
star
36

eclipse-collections-kata

Eclipse Collections Katas
Java
411
star
37

hono

Eclipse Hono™ Project
Java
378
star
38

repairnator

Software development bots for Github. Join the bot revolution! 🌟🤖🌟💞
Java
370
star
39

ponte

Ponte Project
JavaScript
360
star
40

birt

Eclipse BIRT™ The open source reporting and data visualization project.
Java
355
star
41

rdf4j

Eclipse RDF4J: scalable RDF for Java
Java
323
star
42

paho.mqtt-sn.embedded-c

Paho C MQTT-SN gateway and libraries for embedded systems. Paho is an Eclipse IoT project.
C++
305
star
43

paho.golang

Go libraries
Go
269
star
44

lemminx

XML Language Server
Java
242
star
45

vorto

Vorto Project
Java
221
star
46

kapua

Java
218
star
47

elk

Eclipse Layout Kernel - Automatic layout for Java applications.
Java
211
star
48

jnosql

Eclipse JNoSQL is a framework which has the goal to help Java developers to create Jakarta EE applications with NoSQL.
Java
210
star
49

corrosion

Eclipse Corrosion - Rust edition in Eclipse IDE
Java
199
star
50

capella

Open Source Solution for Model-Based Systems Engineering
Java
197
star
51

dirigible

Eclipse Dirigible™ Project
JavaScript
196
star
52

tahu

Eclipse Tahu addresses the existence of legacy SCADA/DCS/ICS protocols and infrastructures and provides a much-needed definition of how best to apply MQTT into these existing industrial operational environments.
Java
196
star
53

microprofile-config

MicroProfile Configuration Feature
Java
182
star
54

wildwebdeveloper

Simple and productive Web Development Tools in the Eclipse IDE
Java
181
star
55

pdt

PHP Development Tools project (PDT)
PHP
178
star
56

org.aspectj

Java
172
star
57

xacc

XACC - eXtreme-scale Accelerator programming framework
C++
137
star
58

thingweb.node-wot

thingweb.node-wot
TypeScript
130
star
59

microprofile-rest-client

MicroProfile Rest Client
Java
124
star
60

tycho

Tycho project repository (tycho)
Java
119
star
61

microprofile-conference

Microprofile.io Demo Code - Web Services Conference Application
Java
117
star
62

microprofile-fault-tolerance

microprofile fault tolerance
Java
115
star
63

microprofile-samples

Micro Profile Samples
Java
115
star
64

xtext-core

xtext-core
Java
114
star
65

microprofile-open-api

Microprofile open api
Java
112
star
66

gef

Eclipse GEF™
Java
111
star
67

jbom

Java
104
star
68

paho.mqtt.testing

An Eclipse Paho project - a Python broker for testing
Python
104
star
69

xtext-xtend

xtext-xtend
Java
100
star
70

transformer

Eclipse Transformer provides tools and runtime components that transform Java binaries, such as individual class files and complete JARs and WARs, mapping changes to Java packages, type names, and related resource names.
Java
97
star
71

microprofile-health

microprofile-health
Java
95
star
72

microprofile-metrics

microprofile-metrics
Java
94
star
73

microprofile-graphql

microprofile-graphql
Java
93
star
74

sw360

SW360 project
Java
92
star
75

microprofile-jwt-auth

Java
92
star
76

tinydtls

Eclipse tinydtls
C
92
star
77

microprofile-lra

microprofile-lra
Java
90
star
78

mosaic

Eclipse MOSAIC is a Multi-Domain and Multi-Scale Simulation Framework for Automated and Connected Mobility Scenarios.
Java
81
star
79

kuksa.val

kuksa.val
Rust
80
star
80

nebula

Nebula Project
Java
79
star
81

microprofile-reactive-streams-operators

Microprofile project
Java
75
star
82

mosquitto.rsmb

Mosquitto rsmb
C
75
star
83

microprofile-starter

MicroProfile project generator source code
Java
68
star
84

aCute

Eclipse aCute - C# edition in Eclipse IDE
Java
65
star
85

ditto-examples

Eclipse Ditto™: Digital Twin framework - Examples
Java
63
star
86

tm4e

TextMate support in Eclipse IDE
Java
60
star
87

californium.tools

Californium project
Java
59
star
88

microprofile-opentracing

microprofile-opentracing
Java
57
star
89

microprofile-reactive-messaging

Java
57
star
90

eclemma

🌘 Java Code Coverage for Eclipse IDE
Java
57
star
91

texlipse

Eclipse Texlipse
Java
56
star
92

dartboard

Dart Plugin for Eclipse
Java
55
star
93

jnosql-databases

This project contains Eclipse JNoSQL databases
Java
54
star
94

windowbuilder

Eclipse Windowbuilder
Java
54
star
95

lsp4e

Language Server Protocol support in Eclipse IDE
Java
53
star
96

mita

mita
Xtend
53
star
97

xtext-eclipse

xtext-eclipse
Java
49
star
98

che-che4z-lsp-for-cobol

COBOL Language Support provides autocomplete, highlighting and diagnostics for COBOL code and copybooks
COBOL
46
star
99

packages

IoT Packages project
Smarty
44
star
100

winery

Eclipse Winery project
Java
44
star