Giter Site home page Giter Site logo

melnarte / aws-iot-device-client Goto Github PK

View Code? Open in Web Editor NEW

This project forked from awslabs/aws-iot-device-client

0.0 1.0 0.0 1.28 MB

The AWS IoT Device Client provides device-side functionality for AWS IoT Services.

License: Apache License 2.0

CMake 2.94% Dockerfile 1.90% Shell 5.93% C++ 89.22%

aws-iot-device-client's Introduction

AWS IoT Device Client

Notice: Running the AWS IoT Device Client will incur usage of AWS IoT services, and is likely to incur charges on your AWS account. Please refer the pricing pages for AWS IoT Core, AWS IoT Device Management, and AWS IoT Device Defender for more details.

Jump To:

Introduction

Sections:

Back To The Top

The AWS IoT Device Client is free, open-source, modular software written in C++ that you can compile and install on your Embedded Linux based IoT devices to access AWS IoT Core, AWS IoT Device Management, and AWS IoT Device Defender features by default. It serves as a reference implementation for your IoT devices to work with AWS IoT services, with operational best practices baked in – using it is the easiest way to create a proof-of-concept (PoC) for your IoT project. What’s more, since it is open-source, you can modify it to fit your business needs, or optimize it when you wish to scale up from a PoC to production.

Current Capabilities

The modular IoT Device Client consists of a “base client” and discrete “client-side features” that support the following:

  • The base client handles MQTT connectivity with AWS IoT core - it enables your IoT device to automatically connect and make subscriptions to feature-relevant MQTT topics. It also provides a logging API for device side logs.
  • The client-side Jobs feature enables you to execute remote actions on your device when you use the Jobs feature of the AWS IoT Device Management service. It provides support for a few remote actions by default, and extensibility for custom actions. You can use custom actions to remotely control the state of your IoT devices.
  • The client-side Secure Tunneling feature enables secure, privileged access to your IoT device when you use the Secure Tunneling feature in the AWS IoT Device Management service.
  • The client-side Device Defender feature enables you to collect standard Device Side Metrics when you use the Rules Detect feature in the AWS IoT Device Defender service.
  • The client-side Fleet Provisioning feature enables you to replace provisional credentials with device-specific ones when you onboard a fleet of devices to AWS IoT Core. It creates a device specific certificate and private key, and registers the device on AWS IoT Core.

List of Supported Platforms

The AWS IoT Device Client currently works on IoT devices with common microprocessors (x86_64, ARM architectures), and common Linux software environments (Debian, Ubuntu, and RHEL).

Installation

Sections:

Back To The Top

Minimum Requirements

Note: The TLS stack, and the version of the SDK mentioned above is what our CI uses. You could potentially use a different TLS stack for example, we just don't actively test or support this.

Building from source

To use the AWS IoT Device Client, you'll need to compile an executable using the source code provided by this repository. Below, you'll find instructions for how to build the AWS IoT Device Client for your target machine.

Quick Start

The following commands should work for most users when you plan to run the AWS IoT Device Client on the same machine that you're performing the compilation on:

# Building
git clone https://github.com/awslabs/aws-iot-device-client
cd aws-iot-device-client
mkdir build
cd build
cmake ../
cmake --build . --target aws-iot-device-client

# Setup
cd ../
./setup.sh # At this point you'll need to respond to prompts for information, including paths to your thing certs

# Run the AWS IoT Device Client
./aws-iot-device-client # This command runs the executable

Running the tests

./build/test/test-aws-iot-device-client 

Advanced Compilation

Advanced Compilation

Setup and Configuration

Setting Up The Device Client
Configuring the AWS IoT Device Client
File and Directory Permission Requirements

AWS IoT Features

Jobs Feature Readme
Fleet Provisioning Feature Readme
Device Defender Feature Readme
Secure Tunneling Feature Readme

AWS IoT Device Client Samples

MQTT Pub/Sub Sample Feature

Logging

Logging Readme

Doxygen Documentation

Doxygen Documentation Readme

Additional Resources

This section provides links to additional AWS IoT resources that may help you use and modify the AWS IoT Device Client:

Security

See CONTRIBUTING for more information.

License

This project is licensed under the Apache-2.0 License.

Back To The Top

aws-iot-device-client's People

Contributors

amazon-auto avatar doronbl avatar fufranci avatar giordzaws avatar harshgandhi-aws avatar kareali avatar lwilkovich avatar matthewpaul avatar miaozhangaws avatar satheshantanu avatar

Watchers

 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.