Feathers, Angular Snap.js, File-size.js

2013-12-10 00:00:00 +0000 by Alex R. Young


Feathers (GitHub: feathersjs / feathers, License: MIT, npm: feathers), sent in by Matthew Phillips, is an Express-based web framework for creating RESTful services that use Socket.IO.

Because it's based on Express, you can use existing Connect middleware. That means you could drop in an authentication module like everyauth, and your preferred client-side framework (like Backbone.js or AngularJS), and then use the Feathers conventions for CRUD-style server-side code and Socket.IO events.

Matthew wrote a glowing email about it -- he's been using it for client project. I had a look at the source, and it's actually pretty lightweight: it's basically based around events that bridge between Express routes and Socket.IO.

The main author, David Luecke, has built it with Rubberduck and Uberproto, two of his other modules. Uberproto is basically inheritance sugar, and Rubberduck allows methods to be wrapped with events.

Angular Snap.js

Angular Snap.js (GitHub: jtrussell / angular-snap.js, License: MIT) by Justin Russell is a Snap.js directive for AngularJS. Snap.js makes mobile-style "shelf" layouts a lot easier, and is intuitive to use -- touch gestures work as expected, and click-dragging the mouse opens the drawer as well.

The directive can be used as an attribute, or event an element:

<div snap-drawer>
  <p>I'm a drawer! I maybe I've got some sweet navigation links.</p>

  <p>I'm a drawer! I maybe I've got some sweet navigation links.</p>


File-size.js (GitHub: Nijikokun / file-size, License: MIT, npm: file-size) by Nijiko Yonskai is a module for generating human-readable file sizes. For example, filesize(186457865).to('MB') returns 177.82.

It supports various specifications, including JEDEC and IEC, and it works in browsers and Node.