Coder Social home page Coder Social logo

yotta's Introduction

yotta: Build Software with Reusable Components

Build Status Build Status

yotta is a tool from ARM mbed, to make it easier to build better software with C++ and C by re-using modules. Publish your own modules to the yotta registry to share them with other people, or re-use them privately in your own projects.

Whenever you build a project with yotta, you first select a yotta target. Targets describe the platform that you're building for (such as an embedded IoT development board, or natively for Mac or Linux), and provide all the information that yotta and modules you're using need to configure themselves correctly for that platform.

Installation

yotta is written in python, and is installed using pip. Install yotta itself by running:

pip install yotta

Note that yotta needs several non-python dependencies to be installed correctly (such as a C++ compiler). The detailed installation instructions include a full guide.

Exactly which other dependencies (such as compilers and other build tools) are required will also depend on the yotta target description that you intend to use, so please be sure to also check the target description's own documentation.

Get Started!

The best way to get started is to follow the tutorial, or if you have questions/feedback please create an issue!

How yotta works

Every yotta module or application includes a module.json file, which lists the other modules that it needs (amongst other information like the module's license, and where to submit bug reports).

When you run yotta build to build your project, yotta downloads your dependencies, and makes them available to your project. It's similar in concept to npm, pip or gem: although because C and C++ are compiled languages, yotta also controls the build of your software in order to ensure downloaded modules are available to use in your code.

To add a new module to your program run yotta install <modulename>. yotta will install both the module you've specified and any of its dependencies that you don't already have. It will also update your module.json file to reflect the new dependency.

The best way to really understand how yotta works is to follow the tutorial.

Further Documentation

For further documentation see the yotta docs website.

Tips

  • yt is a shorthand for the yotta command, and it's much quicker to type!
  • yotta is strongly influenced by npm, the awesome node.js software packaging system. Much of the syntax for module description and commands is very similar.

License

yotta is licensed under Apache-2.0

yotta's People

Contributors

aewp2 avatar alessandroa avatar autopulated avatar bearsh avatar blackstoneengineering avatar bogdanm avatar bremoran avatar bridadan avatar coldnew avatar eyeye avatar geky avatar hugovincent avatar ilg-ul avatar iriark01 avatar jacobrosenthal avatar javier-moreno-tridonic-com avatar kylemanna avatar markus-becker-tridonic-com avatar marshall avatar matthewelse avatar meriac avatar mlnx avatar mousius avatar niklarm avatar patater avatar stephenpaulger avatar stevep-arm avatar thegecko avatar theotherjimmy avatar

Watchers

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