Code Monkey home page Code Monkey logo

unabto's Introduction

uNabto SDK

Build Status Windows Build Status

Nabto provides a full communication infrastructure to allow direct, encrypted communication between clients and IoT devices - the Nabto communication platform. The platform supports direct peer-to-peer connectivity through NAT traversal.

uNabto (pronounced 'micro nabto') is an open source C framework supplied by Nabto, which can be integrated with your existing device application.

Documentation

A general introduction to the Nabto platform can be found on www.nabto.com. More detailed documentation and tutorials are available on developer.nabto.com. Also see our blog blog.nabto.com with examples and projects.

The document TEN036 "Security in Nabto Solutions" is mandatory read when considering Nabto for use in production solutions.

The TESTING.md document in this directory describes how integrators may test their uNabto SDK based applications and what their responsibilities are.

Example applications and demos

This repository contains example applications for the three major OS's Windows, Linux and Mac. Demos for these platforms is located in the apps folder.

We have repositories for other embedded platforms as well.

Source code

Core

The unabto core is located in src/unabto/ this source is needed by all unabto instances.

Modules

In the folder src/modules there are modules for encryption, random, timers, utilities, etc. These modules makes it easier to implement unabto on a platform.

Platforms

The src/platforms folder includes various modules and implementation which together forms as a platform adapter for some specific platforms.

build/cmake/unabto_files.cmake

The build/cmake/unabto_files.cmake is a file which lists all the source code in the repository which is used together with cmake projects. The file does not have any logic included it is only a list of variables assigned to specific files or definitions.

build/cmake/unabto_project.cmake

The build/cmake/unabto_project.cmake is a cmake project definition file which is used to simply create unabto projects for Windows, Linux and Mac.

A simple unabto static library project based on unabto_project.cmake is created as follows:

cmake_minimum_required(VERSION 2.8)
project(example)
include(${CMAKE_CURRENT_SOURCE_DIR}/ ... /build/cmake/unabto_project.cmake)

add_definitions(${unabto_definitions})
add_library(example ${unabto_src})
target_link_libraries(example ${unabto_link_libraries})

Building Linux, Windows And MacOS

General build instructions

clone repository
mkdir builddir
cd builddir
cmake ..
make

Windows

Prerequisities:

  • CMake,
  • Visual studio E.g. 2015
clone repository
mkdir builddir
cd builddir
cmake -DCMAKE_GENERATOR_TOOLSET=v140_xp ..
cmake --build .

License

Copyright (C) 2008-2016 Nabto - All Rights Reserved.

This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)"

FreeRTOS+UDP uses a dual license model that allows the software to be used under a standard GPL open source license, or a commercial license. The standard GPL license (unlike the modified GPL license under which FreeRTOS itself is distributed) requires that all software statically linked with FreeRTOS+UDP is also distributed under the same GPL V2 license terms.

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.