Coder Social home page Coder Social logo

java-embedded-framework / jef Goto Github PK

View Code? Open in Web Editor NEW
22.0 2.0 3.0 333 KB

Java Embedded Framework - provides access from java for hardware and one board computers like Raspberry Pi, Orange Pi, Banana Pi and etc. to control SPI / I2C / GPIO or Serial ports

License: Apache License 2.0

Java 100.00%
java embedded-systems spi i2c i2c-bus gpio native-image serial-communication raspberry-pi orange-pi

jef's Introduction

Java Embedded Framework (JEF)

Build Maven Central License

JEF provides Java programs easy high level access directly from code to hardware interfaces like SPI, I2C, Serial, GPIO or One Wire interfaces without writing anything except Java code - no JNI or native additional code is required. This functionality is comparable to Linux like platforms.

JEF allows you to create pure java based system only in Java or compile you applications to small(10+ megabytes) pure native binaries(C++ like ) for 64-bits platforms without any code modification.

Important Note

Project moved (temporary or maybe permanently to Quarkus repository and can be used as part of Quarkus platform

Integration examples available here

If you want to use library only on API level without Quarkus, you can include API libraries directly from maven central:

<dependency>
    <groupId>io.quarkiverse.jef</groupId>
    <artifactId>linux-core</artifactId>
    <version>${JEF_VERSION}</version>
</dependency>
<dependency>
    <groupId>io.quarkiverse.jef</groupId>
    <artifactId>linux-native-core</artifactId>
    <version>${JEF_VERSION}</version>
</dependency>
<dependency>
    <groupId>io.quarkiverse.jef</groupId>
    <artifactId>mcu-core</artifactId>
    <version>${JEF_VERSION}</version>
</dependency>
<dependency>
    <groupId>io.quarkiverse.jef</groupId>
    <artifactId>device-library</artifactId>
    <version>${JEF_VERSION}</version>
</dependency>

Supported Platforms

JEF will build on most linux-like platforms with a reasonable set of GNU tools and a JDK.

If your platform is supported by libffi, then chances are you can build JEF for it.

If your platform is supported by GraalVM Native Image Compiler, then chances are you can build JEF binaries images for these platforms...

Supported boards

Please see details here

System requirements

  • Linux kernel 4.8+ for core level (or Raspberry Pi OS/Armbian for mcu level)
  • Java 11+
  • Maven 3+

Project Modules

  • linux-core - API for access to POSIX functions and protocols via Java
  • mcu-core - Hi level wrapper for linux-core for Raspberry Pi boards
  • device-library - Some 'drivers' implementation for devices
  • examples - usage examples

Using the Library

Projects Using JEF

JEF is very young library. If you're using JEF, feel free to tell us about it.
Include some details about your company, project name, purpose and size and tell us how you use the library.

There are also a number of examples and projects within the examples directory of the JEF project itself.

Features

  • Ability to access devices over SPI interface
  • Ability to access devices over I2C interface
  • Ability to access devices over Serial interface
  • Ability to access GPIO over Linux GPIO interface
  • Ability to compile you code to JVM packages and Native binaries without any code modification

Community and Support

All questions should be posted to the StackOverflow. Issues can be submitted here on Github.

Contributing

Please see details here

License

From 21.05.2022 licence changed to Apache2.0 Please see details here

For vendors

If you want to add your board support to framework or add support of your devices to device library please contact

What is planned in future releases?

  • Refactoring and improvements based on community feedbacks
  • Migration to Project Panama from Java Native Access for Java 16+
  • Add additional devices support in device library
  • Add support for other chipsets/boards (Orange Pi/Banana Pi/Olimex) in mcu-core module.

jef's People

Contributors

alexeysharandin avatar iot-hub-ru avatar java-embedded-framework avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

jef's Issues

MVN publish problem

@gastaldi,
regarding discussed here: quarkusio/quarkus#25700
Need your help:

OSSRH - done - https://issues.sonatype.org/browse/OSSRH-81058
GPG config - done.

Now try to understand why I got error in mvn:release: https://github.com/java-embedded-framework/jef/runs/6549699271?check_suite_focus=true

Failed to execute goal org.apache.maven.plugins:maven-release-plugin:2.5.3:prepare (default-cli) on project JEF: Unable to commit files
Error:  Provider message:
Error:  The git-push command failed.
Error:  Command output:
Error:  Warning: Permanently added the ECDSA host key for IP address '192.30.255.113' to the list of known hosts.
Error:  [email protected]: Permission denied (publickey).
Error:  fatal: Could not read from remote repository.

If you able to help - will be very appreciated

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.