{"id":13395659,"url":"https://github.com/eclipse-kura/kura","last_synced_at":"2025-03-13T22:30:49.792Z","repository":{"id":12566806,"uuid":"15237269","full_name":"eclipse-kura/kura","owner":"eclipse-kura","description":"Eclipse Kura™ is a versatile framework to supercharge your edge devices, streamlining the process of configuring your gateway, connecting sensors, and IoT devices to seamlessly collect, process, and send data to the cloud.","archived":false,"fork":false,"pushed_at":"2024-10-17T13:22:04.000Z","size":384012,"stargazers_count":500,"open_issues_count":15,"forks_count":309,"subscribers_count":62,"default_branch":"develop","last_synced_at":"2024-10-17T22:14:28.599Z","etag":null,"topics":["eclipseiot","gateway","internet-of-things","iot","java"],"latest_commit_sha":null,"homepage":"https://eclipse.dev/kura/","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"epl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/eclipse-kura.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2013-12-16T21:07:20.000Z","updated_at":"2024-10-16T12:38:40.000Z","dependencies_parsed_at":"2023-10-11T16:06:35.743Z","dependency_job_id":"635248fb-603e-42c9-bfbf-0b588399712f","html_url":"https://github.com/eclipse-kura/kura","commit_stats":{"total_commits":4436,"total_committers":72,"mean_commits":"61.611111111111114","dds":0.7096483318304779,"last_synced_commit":"c56e64cde2443436475c9d31b3699740a36c174b"},"previous_names":["eclipse-kura/kura"],"tags_count":121,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eclipse-kura%2Fkura","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eclipse-kura%2Fkura/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eclipse-kura%2Fkura/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eclipse-kura%2Fkura/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/eclipse-kura","download_url":"https://codeload.github.com/eclipse-kura/kura/tar.gz/refs/heads/develop","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":221417181,"owners_count":16816826,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["eclipseiot","gateway","internet-of-things","iot","java"],"created_at":"2024-07-30T18:00:27.349Z","updated_at":"2025-03-13T22:30:49.785Z","avatar_url":"https://github.com/eclipse-kura.png","language":"Java","funding_links":[],"categories":["Framework"],"sub_categories":[],"readme":"Eclipse Kura™\n=============\n\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"https://eclipse.dev/kura/images/kura.png\" alt=\"Kura™ logo\" width=\"500\"/\u003e\n\u003c/p\u003e\n\n\u003cdiv align=\"center\"\u003e\n\n[![GitHub Tag](https://img.shields.io/github/v/tag/eclipse/kura?label=Latest%20Tag)](https://github.com/eclipse-kura/kura/tags)\n[![GitHub](https://img.shields.io/github/license/eclipse/kura?label=License)](https://github.com/eclipse-kura/kura/blob/develop/LICENSE)\n\n[![Jenkins](https://img.shields.io/jenkins/build?jobUrl=https:%2F%2Fci.eclipse.org%2Fkura%2Fjob%2Fmultibranch%2Fjob%2Fdevelop\u0026label=Jenkins%20Build\u0026logo=jenkins)](https://ci.eclipse.org/kura/job/multibranch/job/develop/)\n[![Jenkins](https://img.shields.io/jenkins/tests?compact_message\u0026failed_label=%E2%9D%8C\u0026jobUrl=https:%2F%2Fci.eclipse.org%2Fkura%2Fjob%2Fmultibranch%2Fjob%2Fdevelop%2F\u0026label=Jenkins%20CI\u0026passed_label=%E2%9C%85\u0026skipped_label=%E2%9D%95\u0026logo=jenkins)](https://ci.eclipse.org/kura/job/multibranch/) \u003cbr/\u003e\n  \n\u003c/div\u003e\n\n## What is Eclipse Kura™?\nFrom [the maori word for tank/container](https://maoridictionary.co.nz/search/?keywords=kura), 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.\n \nEclipse 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.\n\n### What can Eclipse Kura™ do for me?\n* **Kura™ Services:** Provision and set up features to run on your gateway, such as an MQTT broker.\n* **Kura™ Networking:** Manage Network connectivity, including \n* **Kura™ Wires:** Design data flows and data processing streams effortlessly with a drag-and-drop visual editor.\n* **Kura™ Cloud Connectors:** Extendable cloud connector system. \n* **Kura™ Drivers:** Extendable service that handles reading data off of external devices.\n* **Kura™ Snapshots:** Securely store and re-apply gateway settings for convenience.\n* **Kura™ Security**: Easily and safely store your secrets.\n* **Kura™ Container Orchestrator**: Manage Docker or Podman containers on your gateway for ultimate flexibility.\n* **Kura™ AI Inference**: Run Nvidia Triton Models on the edge.\n* **Kura™ Plugins**: Add and Extend the framework by adding your own Services, and Drivers.\n* **Kura™ REST Service**: Embed the framework as a backend in your own edge applications.\n \n### I have used Eclipse Kura™ to make a small-scale Edge deployment, how do I scale now?\nIf you want to scale, and manage many instances of Eclipse Kura™, check out [**Eclipse Kapua™**](https://github.com/eclipse/kapua). [Eclipse Kapua™](https://github.com/eclipse/kapua) is a Eclipse Kura™ compatible cloud command and control service that allows you to aggregate data and configure many Eclipse Kura™ devices. \n\nDocumentation\n-------------------\n\n- [**User Documentation**](https://eclipse-kura.github.io/kura/latest/): 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.\n- [**Developer Documentation**](https://github.com/eclipse-kura/kura/wiki): 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 \u0026 tricks.\n- [**Docker Containers Documentation**](https://hub.docker.com/r/eclipse/kura/): 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.\n- [**Developer Quickstart Guide**](https://github.com/eclipse-kura/kura#build): a quick guide on how to setup the development environment and build the project is also provided in this README.\n\nAdditionally, we provide two channels for reporting any issue you find with the project\n- [**Github Issues**](https://github.com/eclipse-kura/kura/issues): for bug reporting.\n- [**Github Discussions**](https://github.com/eclipse-kura/kura/discussions): for receiving feedback, asking questions, making new proposals and generally talking about the project.\n\nInstall\n-------\n\nEclipse Kura™ is compatible with Java 17.\n\n### Target Gateways Installers\nEclipse Kura™ provides pre-built installers for common development boards. Check the following [link](https://www.eclipse.org/kura/downloads.php) to download the desired installers.\nTake a look at [our documentation](https://eclipse-kura.github.io/kura/latest/getting-started/install-kura/) for further information on supported platforms and installer types.\n\n### Docker Image\nEclipse Kura™ is also available as a [Docker container](https://hub.docker.com/r/eclipse/kura/).\n\nBuild\n-----\n\n### Prerequisites\n\nIn order to be able to build Eclipse Kura™ on your development machine, you need to have the following programs installed in your system:\n* JDK 17\n* Maven 3.9.x\n\n\u003cdetails\u003e\n\u003csummary\u003e\n\n#### Installing Prerequisites in Mac OS \n\n\u003c/summary\u003e\n\nTo install Java 17, download the JDK tar archive from the [Adoptium Project Repository](https://adoptium.net/en-GB/temurin/releases/?variant=openjdk8\u0026jvmVariant=hotspot\u0026version=17).\n\nOnce downloaded, copy the tar archive in `/Library/Java/JavaVirtualMachines/` and cd into it. Unpack the archive with the following command:\n\n```bash\nsudo tar -xzf \u003carchive-name\u003e.tar.gz\n```\n\nThe tar archive can be deleted afterwards.\n\nDepending on which terminal you are using, edit the profiles (.zshrc, .profile, .bash_profile) to contain:\n\n```bash\nexport JAVA_HOME=/Library/Java/JavaVirtualMachines/\u003carchive-name\u003e/Contents/Home\n```\n\nReload the terminal and run `java -version` to make sure it is installed correctly.\n\nUsing [Brew](https://brew.sh/) you can easily install Maven from the command line:\n\n```bash\nbrew install maven@3.9\n```\nRun `mvn -version` to ensure that Maven has been added to the PATH. If Maven cannot be found, try running `brew link maven@3.9 --force` or manually add it to your path with:\n\n```bash\nexport PATH=\"/usr/local/opt/maven@3.9/bin:$PATH\"\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\n\n#### Installing Prerequisites in Linux\n\n\u003c/summary\u003e\n\nFor Java\n```bash\nsudo apt install openjdk-17-jdk\n```\nFor Maven   \n\nYou can follow the tutorial from the official [Maven](http://maven.apache.org/install.html) site. Remember that you need to install the 3.9.x version.\n\n\u003c/details\u003e\n\n### Build Eclipse Kura™\n\nChange to the new directory and clone the Eclipse Kura™ repo:\n\n```bash\ngit clone -b develop https://github.com/eclipse/kura.git\n```\n\nMove inside the newly created directory and build the target platform:\n\n```bash\nmvn -f target-platform/pom.xml clean install\n```\n\nBuild the core components:\n\n```bash\nmvn -f kura/pom.xml clean install\n```\n\nBuild the examples (optional):\n\n```bash\nmvn -f kura/examples/pom.xml clean install\n```\n\nBuild the target profiles:\n\n```bash\nmvn -f kura/distrib/pom.xml clean install -DbuildAll\n```\n\n\u003e [!TIP]\nYou 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. `-Paarch64`).\n\nTo list the available installer profiles, run:\n\n```bash\nmvn -f kura/distrib/pom.xml help:all-profiles\n```\n\n#### Build scripts\n\nAlternatively, you can use the build scripts available in the root directory.\n\n```bash\n./build-all.sh\n```\n\n### Building Eclipse Kura™ Containers\n\nThe 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`.\n\nBuild Eclipse Kura™ as per [our instructions](#build-kura). To build the containers you'll need to change the target of the \"Build the target profiles\" step like the following:\n\n```bash\nmvn -f kura/distrib/pom.xml clean install -DbuildAllContainers\n```\n\n\u003e [!NOTE]\nThis 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](https://podman-desktop.io/docs/migrating-from-docker/emulating-docker-cli-with-podman) before running the command above.\n\nAfter this command completes, images can be found in your preferred container engine image list.\n\nIDE Setups\n----------\n\nWe currently support two setups for Eclipse Kura™ development:\n\n- [**Eclipse Kura™ Development Environment Setup**](https://eclipse-kura.github.io/kura/latest/java-application-development/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.\n- [**Add-on Development Environment Setup**](https://eclipse-kura.github.io/kura/latest/java-application-development/kura-workspace-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.\n\nContributing\n------------\n\nContributing to Eclipse Kura™ is fun and easy! To start contributing you can follow our guide [here](CONTRIBUTING.md).\n\n### Acknowledgments\n\n![YourKit Logo](https://www.yourkit.com/images/yklogo.png)\n\nThanks to YourKit for providing us an open source license of YourKit Java Profiler!\n\nYourKit supports open source projects with innovative and intelligent tools\nfor monitoring and profiling Java and .NET applications.\nYourKit is the creator of [YourKit Java Profiler](https://www.yourkit.com/java/profiler/),\n[YourKit .NET Profiler](https://www.yourkit.com/.net/profiler/),\nand [YourKit YouMonitor](https://www.yourkit.com/youmonitor/).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feclipse-kura%2Fkura","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Feclipse-kura%2Fkura","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feclipse-kura%2Fkura/lists"}