Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

feathers

feathersjs8.4kMITdeprecated2.2.4TypeScript support: included

Feathers v3 is out and has moved to @feathersjs/feathers. See https://docs.feathersjs.com/migrating.html for more information.

Build Better APIs, Faster than Ever.

feathers, REST, socket.io, realtime

readme

Feathers logo

Very Important: THIS IS A PREVIOUS VERSION OF FEATHERS. The feathers package and latest version has been moved to @feathersjs/feathers. See docs.feathersjs.com/migrating.html for more information.

An open source REST and realtime API layer for modern applications.

Greenkeeper badge

Build Status Code Climate Test Coverage Dependency Status Download Status Slack Status

Feathers is a real-time, micro-service web framework for NodeJS that gives you control over your data via RESTful resources, sockets and flexible plug-ins.

Getting started

You can build your first real-time and REST API in just 4 commands:

$ npm install -g feathers-cli
$ mkdir my-new-app
$ cd my-new-app/
$ feathers generate app
$ npm start

To learn more about Feathers visit the website at feathersjs.com or jump right into the Feathers docs.

See it in action

Here is all the code you need to create a RESTful, real-time message API that uses an in-memory data store:

// app.js
const feathers = require('feathers');
const rest = require('feathers-rest');
const socketio = require('feathers-socketio');
const memory = require('feathers-memory');
const bodyParser = require('body-parser');
const handler = require('feathers-errors/handler');

// A Feathers app is the same as an Express app
const app = feathers();

// Add REST API support
app.configure(rest());
// Configure Socket.io real-time APIs
app.configure(socketio());
// Parse HTTP JSON bodies
app.use(bodyParser.json());
// Parse URL-encoded params
app.use(bodyParser.urlencoded({ extended: true }));
// Register our memory "messages" service
app.use('/messages', memory());
// Register a nicer error handler than the default Express one
app.use(handler());
// Start the server
app.listen(3000);

Then run

npm install feathers feathers-rest feathers-socketio feathers-errors feathers-memory body-parser
node app

and go to http://localhost:3000/messages. That's it! There's a lot more you can do with Feathers including; using a real database, authentication, authorization, clustering and more! Head on over to the Feathers docs to see just how easy it is to build scalable real-time apps.

Documentation

The Feathers docs are loaded with awesome stuff and tell you every thing you need to know about using and configuring Feathers.

Examples

Each plugin has it's own minimal example in the repo. To see a more complex example go to feathersjs/feathers-chat.

Security

We :heart: the community and take security very seriously. No one wants their app hacked. If you have come across a security concern please report it responsibly. Visit the Security section of the docs to learn more about how you can make sure your app is secure.

Long Term Support Schedule

We are going to be following along with the Node.js long term support cycle. As a result we have dropped official support for node v0.10, v0.12, and iojs versions. Feathers still works on those versions but we're not going to ensure it will going forward.

We will be supporting Node.js v4 until 2018-04-01. We will be supporting Node.js v6 until 2019-04-18.

License

MIT

Authors

Feathers contributors

changelog

Change Log

v2.2.3 (2017-10-20)

Full Changelog

Merged pull requests:

v2.2.2 (2017-09-30)

Full Changelog

Merged pull requests:

  • Update to latest secure dependencies #684 (daffl)

v2.2.1 (2017-09-25)

Full Changelog

Merged pull requests:

v2.2.0 (2017-09-01)

Full Changelog

Merged pull requests:

v3.0.0-pre.1 (2017-07-19)

Full Changelog

Merged pull requests:

  • Add a missing configure() method in typescript definition #624 (jansel369)

v2.1.7 (2017-07-16)

Full Changelog

v2.1.6 (2017-07-16)

Full Changelog

Merged pull requests:

  • Allows error hooks to swallow error by setting the result #621 (daffl)
  • typings: properly overload .create() #619 (j2L4e)
  • Update to new plugin infrastructure #614 (daffl)
  • Allow flag to return the hook object #607 (daffl)
  • Use inline version Babel plugin #606 (daffl)
  • Initial changes for Feathers v3 #605 (daffl)
  • Update index.d.ts #603 (j2L4e)

v2.1.4 (2017-06-26)

Full Changelog

Merged pull requests:

v2.1.3 (2017-05-29)

Full Changelog

Merged pull requests:

v2.1.2 (2017-05-09)

Full Changelog

Merged pull requests:

v2.1.1 (2017-03-03)

Full Changelog

Merged pull requests:

v2.1.0 (2017-03-01)

Full Changelog

Merged pull requests:

v2.0.3 (2016-12-10)

Full Changelog

Merged pull requests:

v2.0.2 (2016-09-15)

Full Changelog

Merged pull requests:

v2.0.1 (2016-04-28)

Full Changelog

Merged pull requests:

v2.0.0 (2016-02-22)

Full Changelog

Merged pull requests:

v2.0.0-pre.4 (2016-01-16)

Full Changelog

Merged pull requests:

v2.0.0-pre.3 (2016-01-16)

Full Changelog

Merged pull requests:

v2.0.0-pre.2 (2016-01-10)

Full Changelog

Merged pull requests:

v2.0.0-pre.1 (2016-01-05)

Full Changelog

Merged pull requests:

  • Migration to ES6 and API providers in separate modules #188 (daffl)

v1.3.0 (2015-12-16)

Full Changelog

v1.2.1 (2015-12-12)

Full Changelog

Merged pull requests:

  • Add ability to create, update, patch and remove many #179 (daffl)
  • Handle middleware passed after the service to app.use #178 (dbkaplun)
  • Adding tests to make sure that dispatcher context is set properly. #172 (daffl)

v1.2.0 (2015-11-07)

Full Changelog

Merged pull requests:

  • Make sure event hookups happens after method normalization #151 (daffl)
  • Add rubberduck args to service events parameters #148 (loris)
  • Debug should be for socket.io instead of primus #147 (marshallswain)

v1.1.1 (2015-09-22)

Full Changelog

Merged pull requests:

  • Fix 404 not being properly thrown by REST provider #146 (loris)

v1.1.0 (2015-07-22)

Full Changelog

Merged pull requests:

1.1.0-pre.0 (2015-04-10)

Full Changelog

Merged pull requests:

  • Run Socket configurations before service setup (#131) #132 (daffl)
  • Allow services to dispatch custom events. #128 (daffl)
  • Moving documentation into the main repository. #127 (daffl)
  • Adding contributing guidelines and updating build process. #126 (daffl)
  • Service method call normalization #124 (daffl)
  • Tests for socket message validation and errors. #123 (daffl)
  • Migrating shared functionality into the feathers-commons module #122 (daffl)
  • Adding debug module and messages. #117 (daffl)
  • Fix duplicate events in dynamic services. #115 (marshallswain)
  • Make sure .setup() runs on dynamic services. #110 (marshallswain)
  • Add a Gitter chat badge to readme.md #109 (gitter-badger)
  • Support for registering services dynamically #107 (marshallswain)

1.0.2 (2015-02-04)

Full Changelog

Merged pull requests:

  • Use Uberproto extended instance when creating services #105 (daffl)
  • Make sure that mixins are specific to each new app #104 (daffl)

1.0.1 (2014-12-31)

Full Changelog

Merged pull requests:

  • Rename Uberproto .create to avoid conflicts with service method #100 (daffl)

1.0.0 (2014-10-03)

Full Changelog

Merged pull requests:

  • Version 1.0 homepage #95 (daffl)
  • Remove app.lookup and make the functionality available as app.service #94 (daffl)
  • Allow not passing parameters in socket calls #92 (daffl)
  • Add _setup method #91 (daffl)
  • Better bodyParser usage, fix typo. #90 (olegskl)
  • Throw an error when registering a service after application start #78 (daffl)
  • Use URI parameters as service params and remove bodyParser dependendency #77 (daffl)
  • Send socket parameters as params.query #72 (daffl)
  • Send HTTP 201 and 204 status codes #71 (daffl)
  • Upgrade to SocketIO 1.0 #70 (daffl)
  • Allow service methods to return a promise #59 (daffl)
  • Allow to register services with custom middleware. #56 (daffl)
  • Upgrade to Express 4 #55 (daffl)

1.0.0-pre.5 (2014-06-13)

Full Changelog

Merged pull requests:

1.0.0-pre.1 (2014-06-04)

Full Changelog

0.4.0 (2014-04-08)

Full Changelog

Merged pull requests:

  • Allow to configure REST handler manually #52 (daffl)
  • Event filtering and params extension for Primus #51 (daffl)
  • SocketIO event filtering #50 (daffl)
  • Adding SocketIO handshake data to service call parameters #49 (daffl)
  • Added patch support #47 (mlaug)

0.3.2 (2014-03-28)

Full Changelog

Merged pull requests:

  • Use feathers/express apps #46 (bredele)
  • Upgrading dependencies and switching to Lodash #42 (daffl)

0.3.1 (2014-02-19)

Full Changelog

Merged pull requests:

0.3.0 (2014-01-06)

Full Changelog

Merged pull requests:

0.2.0 (2013-09-27)

Full Changelog

Merged pull requests:

  • Allows registering services with slashes #18 (daffl)
  • Allows setting service params in middleware #17 (daffl)

0.1.0 (2013-08-27)

Full Changelog

0.0.5 (2013-08-27)

Full Changelog

0.0.4 (2013-08-27)

Full Changelog

Merged pull requests:

  • Major refactoring and simplification #16 (daffl)

0.0.3 (2013-08-26)

Full Changelog

Merged pull requests:

  • Improved Mixin organization, updated tests and examples. #15 (daffl)

0.0.2 (2013-07-13)

Merged pull requests:

  • Added a couple examples. Started to add a mongo adapter. #2 (ekryski)

* This Change Log was automatically generated by github_changelog_generator