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.

unabto's People

Contributors

christiansiegel avatar crgregersen avatar fusionfoxy avatar gammelby avatar marcustherkildsen avatar mkm85 avatar mrodalgaard avatar quarken avatar thomasenzinger avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

unabto's Issues

RTSP streaming is not working

HI!
I am getting RTSP stream which is plying in VLC well on gateway.
I followed https://www.nabto.com/rtsp-p2p-streaming-through-nabto/ guide but unable to view RTSP stream on mobile app.
On gateway termal showing
unabto_attach.c(563) State change from WAIT_GSP to ATTACHED
if I pass
pi@rpi:~ $ ./unabto/apps/tunnel/unabto_tunnel \ -d <id>\ -k <key>\ --allow-port <port> --allow-host <RTSP_IP> \ --no-access-control
Only App showing device offline
How to get rtsp streaming work on app?

Enhancement: Support Dart & flutter

Hello nabto team, Since google's flutter, a cross platform app development sdk has been taking over the development world, is there any support for unabto in flutter?

I'm looking for a simple Flutter package to connect, send/stream data from unabto devices to flutter apps. Since flutter uses dart, and unabto supports dartino, is there any way we can port it? Or will you guys give an official support for Flutter <3

Updating fingerprint file is not atomci

fp_acl_file.c is implemented as if it saves/updated the persistence file atomically, but that's not the case.

A ffsync() is missing in fp_acl_file_save_file() before the rename().

On a slow flash file system this has been seen to result in an empty persistence file.

unabto's license is unclear

The README.md says the code is Open Source. But there is no information saying what the licensing terms are. The only ones I see are at the bottom of the file and say "All rights reserved", which is pretty much the opposite of Open Source.

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.