Giter Site home page Giter Site logo

soulbladermd / aws-iot-device-sdk-java-v2 Goto Github PK

View Code? Open in Web Editor NEW

This project forked from aws/aws-iot-device-sdk-java-v2

0.0 0.0 0.0 3.09 MB

Next generation AWS IoT Client SDK for Java using the AWS Common Runtime

License: Apache License 2.0

Shell 1.30% Python 3.31% Java 94.77% Kotlin 0.62%

aws-iot-device-sdk-java-v2's Introduction

AWS IoT Device SDK for Java v2

This document provides information about the AWS IoT device SDK for Java V2.

If you have any issues or feature requests, please file an issue or pull request.

API documentation: https://aws.github.io/aws-iot-device-sdk-java-v2/

This SDK is built on the AWS Common Runtime, a collection of libraries (aws-c-common, aws-c-io, aws-c-mqtt, aws-c-http, aws-c-cal, aws-c-auth, s2n...) written in C to be cross-platform, high-performance, secure, and reliable. The libraries are bound to Java by the aws-crt-java package.

Jump To:

What's New

The SDK now supports MQTT5. See the MQTT5 User Guide or the API Documentation for more information. There is also a MQTT5 sample here.

Installation

Minimum Requirements

Step-by-step instructions

Requirements to build the AWS CRT locally

  • C++ 11 or higher
    • Clang 3.9+ or GCC 4.4+ or MSVC 2015+
  • CMake 3.1+

Step-by-step instructions

Consuming IoT Device SDK from Maven in your application

Consuming this SDK via Maven is the preferred method of consuming it and using it within your application. To consume the Java V2 SDK in your application, add the following to your pom.xml dependencies:

<dependency>
  <groupId>software.amazon.awssdk.iotdevicesdk</groupId>
  <artifactId>aws-iot-device-sdk</artifactId>
  <version>1.13.0</version>
</dependency>

Replace 1.13.0 in <version>1.13.0</version> with the latest release version for the SDK. Look up the latest SDK version here: https://github.com/aws/aws-iot-device-sdk-java-v2/releases

Build IoT Device SDK from source

Install Maven and Set PATH

# Create a workspace directory to hold all the SDK files
mkdir sdk-workspace
cd sdk-workspace
# Clone the repository
git clone https://github.com/awslabs/aws-iot-device-sdk-java-v2.git
cd aws-iot-device-sdk-java-v2
# Compile and install
mvn clean install

If you wish to use the latest CRT release, rather than the latest tested with the IoT SDK, you can run the following before running mvn clean install:

# Update the version of the CRT being used
mvn versions:use-latest-versions -Dincludes="software.amazon.awssdk.crt*"

Build IoT Device SDK and CRT from source

# Create a workspace directory to hold all the SDK files
mkdir sdk-workspace
cd sdk-workspace
# Clone the CRT repository
#     (Use the latest version of the CRT here instead of "v0.21.14")
git clone --branch v0.21.14 --recurse-submodules https://github.com/awslabs/aws-crt-java.git
cd aws-crt-java
# Compile and install the CRT
mvn install -Dmaven.test.skip=true
# Clone the SDK repository
git clone https://github.com/awslabs/aws-iot-device-sdk-java-v2.git
cd ../aws-iot-device-sdk-java-v2
# Compile and install
mvn clean install

Android

Supports API 26 or newer. NOTE: The shadow sample does not currently complete on android due to its dependence on stdin keyboard input.

# Create a workspace directory to hold all the SDK files
mkdir sdk-workspace
cd sdk-workspace
# Clone the CRT repository
#     (Use the latest version of the CRT here instead of "v0.21.14")
git clone --branch v0.21.14 --recurse-submodules https://github.com/awslabs/aws-crt-java.git
# Compile and install the CRT for Android
cd aws-crt-java/android
./gradlew connectedCheck # optional, will run the unit tests on any connected devices/emulators
./gradlew publishToMavenLocal
# Clone the SDK repository
cd ../..
git clone https://github.com/awslabs/aws-iot-device-sdk-java-v2.git
# Compile and install
cd aws-iot-device-sdk-java-v2/android
./gradlew publishToMavenLocal
./gradlew installDebug # optional, will install the IoTSamples app to any connected devices/emulators

Add the following to your project's build.gradle:

repositories {
    mavenCentral()
    maven {
        url System.getenv('HOME') + "/.m2/repository"
    }
}

dependencies {
    implementation 'software.amazon.awssdk.crt:android:0.21.14'
}

Replace 0.21.14 in software.amazon.awssdk.crt:android:0.21.14 with the latest version of the CRT. Look up the latest CRT version here: https://github.com/awslabs/aws-crt-java/releases

Caution

You will need to override and provide a ROOT_CERTIFICATE manually from one of the following certificates. For overriding default trust store you can use following method. It's a known problem.

Samples

Samples README

Getting Help

The best way to interact with our team is through GitHub. You can open an issue and choose from one of our templates for guidance, bug reports, or feature requests. You may also find help on community resources such as StackOverFlow with the tag #aws-iot or If you have a support plan with AWS Support, you can also create a new support case.

Please make sure to check out our resources too before opening an issue:

Giving Feedback and Contributions

We need your help in making this SDK great. Please participate in the community and contribute to this effort by submitting issues, participating in discussion forums and submitting pull requests through the following channels.

License

This library is licensed under the Apache 2.0 License.

Latest released version: v1.13.1

aws-iot-device-sdk-java-v2's People

Contributors

bgklika avatar bobwatso-aws avatar bretambrose avatar davidogunsaws avatar dependabot[bot] avatar fthompsonaws avatar graebm avatar jmklix avatar jonathanhenson avatar jpeddicord avatar justinboswell avatar kaibalopez avatar luyangli avatar mikedombo avatar prubcheuski avatar rccarper avatar sbstevek avatar singku-china avatar somayab avatar timmattison avatar tingdaok avatar twistedtwigleg avatar webermaster avatar xiazhvera avatar ytwig avatar zayeshaataws avatar

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.