Levelup, RethinkDB, and More Docs

Lots of improvements

Now that a few more people are paying attention to FeathersJS we wanted to make it easier for everyone to get visibility into the ongoing changes in the Feathers ecosystem.

Since Feathers is so modular and our Slack is like a conveyor belt we know that it can be tough to keep up with what is happening. That’s why we are going to be posting updates to Medium every 2–4 weeks in a “What’s New With Feathers” series. We think that Medium is the perfect platform to share these updates because it’s easy to digest at your leisure but still allows you to get your input in when you have time. That way you don’t feel like you are missing out on anything and can be heard.

So without further ado, I’m happy to report that we’ve had some really big updates since the official Feathers 2 launch. In no particular order…

A New RethinkDB Adapter

Marshall Thompson started the RethinkDB adapter a while back but with everything else on our plate we didn’t have time to fully wrap it up. Over the last couple weeks Marshall and David Luecke worked really hard on getting the RethinkDB adapter over the last 10 yards and ready for public consumption.

We have a common test suite that we run against all the database adapters so we are certain that it complies with the common query syntax and has the same interface as the other adapters, however since RethinkDB has this fancy real-time feature called “change feeds”, if you use this new adapter you get real time all the way from the front to the back!

This is the first database that allows you to get real-time updates even if the database was updated directly without going through a service. This is particularly useful when you have worker jobs or a non-Feathers app talking to the same DB.

I know this adapter is something that a lot of people have been waiting for so we’re excited to hear your feedback.

A New LevelUP Adapter

Our newest core team member Derek Watson made a pretty massive contribution by adding a Feathers LevelUP adapter. This is huge because it opens up even more database possibilities and brings the total number of different datastores you can use with Feathers out of the box to over 25. Just like the RethinkDB adapter; it passes our common test suite, has some awesome docs, conforms to the standard query syntax, and can be swapped out with very few changes to your application code.

Feathers CLI

Another big effort by Derek Watson has been to create a standalone Feathers CLI. Don’t worry, we still have the Yeoman generator and will continue to support it. In fact, the new Feathers CLI module just wraps it. However, we have much bigger plans with the CLI tool than just being able to generate an app, services and hooks! 😏

The first version is out and is now the preferred method to get started with Feathers, so feel free to switch over! Simply npm install feathers-cli.

Reactive Service Extensions

David Luecke has been hard at work on a plugin that uses RxJS to turn any Feathers service into a reactive service. This is pretty awesome because it allows you to simplify your Feathers code further and treat a service like an observable. What this means is that you can now get any change events for your service in one event stream. You don’t need to set up 4 separate event listeners (one for create, update, patch, remove). Yay!

But that’s not all! You can also set filters for the events that you care about. So you can do things like only receive change events for messages from a specific user or group of users.

Authentication Improvements

The last couple of weeks the Feathers authentication plugin really got battle tested. As a result a bunch of issues were uncovered. Over a couple releases we squashed a ton of bugs, made a bunch of security fixes, finalized the bundled hooks, and added over 200 tests! The additional test coverage definitely makes me sleep better at night and with a lot of these improvements, based on your feedback, we are getting really close to an official 1.0 release. 🎉

Documentation Improvements

Last but not least, we had a ton of feedback from the community about the Feathers docs. The whole team has been really blown away by how much people appreciate the time we’ve spent on the documentation. So… thank you! It makes all those arduous edits worth it. 💖

However, nothing is perfect so we also found a few things that were missing, unclear or straight up wrong. Along with a lot of pull requests from the community we’ve made various updates, fixes and clarifications across much of the docs. Thank you to everyone that helped and submitted a PR! There are too many of you to name but we really appreciate it and so do all of your fellow developers.