Git Product home page Git Product logo

libxively's Introduction

Xively C library (libxively)

Beta Release Notes

The goals of the design had been focused on supporting embedded platforms and providing simple wrapper methods that will enable users to implement a very functional Xively agent application on an embedded SoC or MCU device.

Our design has a very well defined layering model. It is currently comprised of the following layers:

  • communication layer - wraps platform-specific networking functions (to open socket connections, read and send data, close sockets)
  • transport layer - encode/decode protocol-level requests/responses (e.g. HTTP or WebSocket)
  • data layer - encodes/decodes Xively data formats (e.g. CSV or JSON)

Given the resource constraints of embedded clients and the typical usage of the Xively API in such end-devices, we have not implemented methods to cover functionalities such as the historic queries or feed search at this point. Also methods for creating and deleting feeds are not provided, as the end-device should use provisioning API, which will be implemented in the upcoming version of the library.

At the present time there is no JSON support in this library. If users need JSON support, the CSV layer can be replaced easily. With so many JSON libraries to chose from with varying performance, size and features, we have intentionally chosen to not to include a JSON library. As we advance the library, JSON support may be introduced.

Please watch this repository on GitHub to be first to find out of any upcoming features. Make sure to submit your feedback via an issue ticket, tweet or email [email protected].

Get started

Run this from the shell:

  git clone --recursive https://github.com/xively/libxively
  cd libxively
  make all

You will find compiled examples under src/bin, which you can run if you like, however we recommend to read the source code first. Have fun!

Stability

Build status
Developmentongoing

This library is continuously tested on Travis CI as well as Xively's internal infrastructure, therefore it is rather safe to use the latest revision. Users may need to make changes to their code, as minor improvements are likely to be introduced in the library functions calls until 1.0.0 and the following major releases.

Support

Any issues that appear to be a bug in the library code, examples or documentation, should be submitted via GitHub and should get fixed once confirmed and understood. Feature request should be submitted via GitHub also. Any coding help is best to find on Stack Overflow, where you will get answers from ourselves as the entire community of professionals. For commercial needs, please refer to Xively website.

Contributing

We use GitHub fork/pull-request model and encourage users to contribute changes back. The general guideline is to submit no more then one feature in a single pull-request and each individual commit should contain only related changes.

TBD: Code style.

Documentation is generated using latest version of Doxygen with markdown support, which is often a little bit different with GitHub's markdown. You should check for output on both when making changes to the docs.

Commit message should begin with one of the following tags enclosed in square brackets: fix, feature, docs, build, style. You shouldn't need to use more then three tags. If the message contains additional description, put a dash at the end of the summary line. There are also layer and platform

Here is a single-line commit message with platform and layer tags:

  [fix][comm][mbed] Check for errors after creating a socket (close #123)

As you can see, the command close #123 should be placed in braces if you intend to close GitHub issue #123.

Here is a feature story with it's acceptance criteria and some notes:

  [feature][comm][uip] Basic implementation -

    * tested with 1.0
    * has simple error handling

    This needs more testing.

A few more:

  [style] Strip whitespaces and double blank lines
  [build] Fix issues with armcc

githalytics.com alpha

libxively's People

Contributors

errordeveloper avatar olgierdh avatar levent avatar jksong avatar frasermac avatar martintrojer avatar arthur-xively avatar chut avatar sim0nf avatar

Watchers

Jongsoo Jeong avatar  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.