GithubHelp home page GithubHelp logo

isabella232 / azure-ulib-c Goto Github PK

View Code? Open in Web Editor NEW

This project forked from azure/azure-ulib-c

0.0 0.0 0.0 745 KB

Azure utility library used in Azure SDKs for embedded and constrained devices.

License: MIT License

CMake 4.05% Shell 0.63% Batchfile 0.27% C 54.91% C++ 39.17% PowerShell 0.97%

azure-ulib-c's Introduction

Azure uLib C - PREVIEW

Build Status

THIS REPO IS CURRENTLY IN PREVIEW. THE API'S ARE NOT FINAL AND ARE SUBJECT TO CHANGE WITHOUT NOTICE.

The intention of this repository is to provide developers useful tools to make developing for small, limited-resource devices easier.

This repository contains the following:

  • uStream: avoid copying memory and expose large amounts of data without using a large amount of memory. Samples can be found here.
  • uLog: a small logging system with constant strings for reduced memory footprint.
  • uContract: define api contracts and validate arguments to functions.

Reference

Documentation for API's are automatically generated with doxygen. You can find the generated documentation on the Github Page for this repo.

Development Machine Requirements

This repo is built using cmake. The minimum requirement is version 3.2. You can download and install the latest cmake version here.

Building the Repo

  1. Clone the repo into the directory of your choosing with the following command

    git clone --recursive https://github.com/Azure/azure-ulib-c
  2. From here you can either use build scripts we have provided in build_all\ or elect to build by yourself using the commands detailed in the following Command Line section.

Scripts

  1. Find the script for the OS on your dev machine and run it. By default, the tests will be compiled and then run at the end of the script.

Command Line

  1. Create the cmake directory to put all of your build files:

    mkdir cmake
  2. cd into the cmake directory:

    cd cmake
  3. Run cmake. Here you have the option of building the tests as well. If you would like to build the tests, run:

    cmake .. -Drun_ulib_unit_tests:BOOL=ON -Drun_ulib_e2e_tests:BOOL=ON

    Otherwise, to just build the source files, run:

    cmake ..
  4. Build with cmake

    cmake --build .
  5. If you would like to run the tests and added the option from step 3, you can run the following:

    ctest -C "debug" -V

    The -C option chooses the build configuration to test and the -V turns on verbose output from the tests.

Creating Your Own uStream

Using the specification listed here in the documentation, you can create your own implementation of a ustream. In order to ensure that it behaves according to the specification, we have created tests which you can run against your implementation. You can use ustream_ut_sample.c and ustream_e2e_sample.c in tests_sample as a reference. TODO's have been placed in the sample files to help guide what you need to implement.

Contributing

This project welcomes contributions and suggestions. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. For details, visit Microsoft CLA.

When you submit a pull request, a CLA-bot will automatically determine whether you need to provide a CLA and decorate the PR appropriately (e.g., label, comment). Simply follow the instructions provided by the bot. You will only need to do this once across all repos using our CLA.

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact [email protected] with any additional questions or comments.

azure-ulib-c's People

Contributors

az-iot-builder-01 avatar danewalton avatar mamokarz avatar microsoftopensource avatar msftgits avatar rafilho avatar yodama 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.