Blog

Jan
14
2015

Cylon 0.22.0 - A New Year's Release

by Andrew Stewart

Happy New Year, everyone! We hope you had an amazing holiday season.

This release of Cylon.JS is focused on slimming down core and stabilizing some features.

As always, you can check out the compare view on GitHub.

Updates for Application Developers

  • New device syntax: - to simplify associations between devices and connections, and to support some upcoming projects, the following syntax is now valid:

    // these are equivalent
    Cylon.robot({
      connections: {
        leap: { adaptor: 'leapmotion' },
        arduino: { adaptor: 'firmata', port: '/dev/ttyACM0' }
      },
    
      devices: {
        led: { driver: 'led', pin: 13, connection: 'arduino' },
        button: { driver: 'button', pin: 9,  connection: 'arduino' }
      }
    });
    
    Cylon.robot({
      connections: {
        leap: { adaptor: 'leapmotion' },
    
        arduino: {
          adaptor: 'firmata',
          port: '/dev/ttyACM0',
    
          devices: {
            led:    { driver: 'led', pin: 13 },
            button: { driver: 'button', pin: 9 }
          }
        }
      }
    });
    
  • API no longer installed by default:: - Cylon's built-in API has been extracted out into the cylon-api-http plugin. We think this is a better fit for most users, since it dramatically reduces the number of dependencies Cylon has. This also opens up support for additional Cylon API plugins down the road.

  • Smaller install: - The removal of the API, combined with a few other changes, dramatically slims down the size of a Cylon.JS install. Our absolutely un-scientific estimates show a size drop of several megabytes, from 4.1MB down to 320kb. This space savings is cumulative, as cylon-* modules also include their own version of Cylon for internal use. It also makes it easier to install Cylon on smaller hardware devices with less storage.

Updates For Platform Developers

  • JSHint: - we've added stricter JSHint rules to the Cylon repos, along with CI enforcement. This should help enforce code quality in the future, and catch more obvious bugs before they make it into a release.

New Platform Support

Of course, any Cylon.js release would not be complete without some new and enhanced platform support. Since our last release, we've added support for the Electric Imp (cylon-imp), we've updated our support for AT&T's M2X to support their 2.0 release (cylon-m2x), and we've just added support for Intel's IoT Analytics (cylon-intel-iot-analytics). We will talk about the latter in more detail in an upcoming post.

This is going to be an exciting year for us! For the latest updates, be sure to follow us on Twitter at @CylonJS.