Leveraging ECMAScript 2015 (aka ES6), Feathers lets developers use the latest JavaScript features and enables writing of “terse, elegant” code, said creator Eric Kryski. While acknowledging that developers have seen an influx of JavaScript frameworks lately, Kryski stresses Feathers is different. “You’re probably screaming ‘Not another JavaScript framework’, but hear me out,” he said. “Feathers isn’t just another Rails clone. Instead of the typical MVC pattern it encourages a service-oriented architecture paired with cross-cutting concerns allowing you to build complex real-time apps and scalable REST APIs very quickly and with very little code.”
Composed of a few hundred lines of code, Feathers helps developers transition from monolithic application development to microservices. It serves as a wrapper over the Express framework, the Socket.IO real-time engine, and the Primus real-time framework. Services in Feathers provide create, read, update, and delete capabilities via methods such as find, get, create, update, patch, and remove. RESTful and real-time APIs are exposed over HTTP/HTTPS via WebSockets. A real-time API can be built with four commands, according to Feathers documentation.
Feathers can be deployed in React Native via the browser or server side. Business logic can be shared between server and client for real-time capabilities. “Feathers is completely client-agnostic and easily integrates with any client-side framework. It plays especially well with React, Angular, and React Native,” Kryski said. Data can be accessed in databases including Postgres, MySQL, and MongoDB.
“Over the past few years Feathers has grown from a small library into a mature framework that, with an ecosystem of plug-ins, makes it really fun to build impressive real-time apps and APIs,” Kryski said. Feathers is available as an NPM and is offered through an MIT license.