6 ms·
Feathers 4: A framework for Real-Time apps and REST APIs
- Aldipower 7y agoI don´t get the "Real-Time" part. Are the API requests ensured to be responded by a given time? That would be sensational. Is it meant to be compatible with the newest Linux kernel shipping RT out-of-the-box? ;)
- JMTQp8lwXL 7y agoThe real time feature is 2-fold: 1. Feathers supports websockets, so you can push data to clients as the data is created/updated, etc. 2. The Feathers server can decide what types of events to send to the client. If you have multiple servers, you can keep the events in-sync by using redis/activemq with the feathers-sync module.
- EdwardMSmith 7y agoThis is "Web realtime" (https://en.wikipedia.org/wiki/Real-time_web https://en.wikipedia.org/wiki/Real-time_web) not real real-time.
- JMTQp8lwXL 7y agoFeathers is exactly what I want to see in a JavaScript library. It is not overly opinionated: far from it. It implements concepts that are sound, standing the test of time. It solves a few specific problems well. These are ideals all library creators should strive for.
- thosakwe 7y agoMajor kudos to the Feathers team on the release. FeathersJS was my first introduction to open source, and sets a very high standard in terms of documentation quality. Congrats, and looking forward to more to come!
- yasserf 7y agoAs a maintainer of another web realtime server (deepstream.io), I got to say FeatherJS is an inspiration in terms of documentation and tutorial standards. I spent quite a bit of time watching their live streams on youtube and browsing through their pages. I hope/am working to someday reach that level of clarity!
- tomcam 7y agoMight want to mention deepstream.io on your HN profile
- yasserf 7y agoWill do, cheers
- jaime-ez 7y agoyasserf, keep up the good work, deepstream is great: fast, flexible, simple and solid! Although must say that your previous docs where way better than the current version. Why don't you keep the same format?
- yasserf 7y agoThanks! Are you referring to the docs on deepstreamHub? If so it’s because we needed to separate what the OS version does better and I used the older OS website as a starting point (except now using Gatsby).Otherwise the docs were copied over verbatim minus navigation. Looking forward to feedback in a week or two time when that’s done!
- jaime-ez 7y agoI meant the docs UI, the content is the same but the interface is weak. Good to know there us a new version coming
- seph-reed 7y agoI've been using Feathers for a bit, and it's really nice. There's a few lock-ins I ran into that required sort of hacking my way out, but (for the most part) it's been amazing. Also, for whatever a contextless strangers opinion is worth, I highly recommend avoiding Loopback.
- hackerbabz 7y agoI tried the last feathers and my problem with it was it seemed so purely REST that it was unusable. Every object in your database gets CRUD endpoints, and if you need something other than CRUD, you are in for a tough time. Is this the case, or was I not understanding it?
- JMTQp8lwXL 7y agoThe FAQ addresses this question here. tl,dr: Yes, you can add custom methods: https://docs.feathersjs.com/help/faq.html#how-do-i-create-custom-methods https://docs.feathersjs.com/help/faq.html#how-do-i-create-cu... If you want to expose the custom methods to clients, you can use this add-on package: https://github.com/arve0/feathers-custom-methods https://github.com/arve0/feathers-custom-methods
- antigirl 7y agoWhy would you use this over using your own websockets convention. Also how does it handle mass connections? you would need redis or similar?
- JMTQp8lwXL 7y agoYou would use it in conjunction with the concept of Services [0]. Services are essentially are a group of CRUD operations that can be exposed over various transports: HTTP(s), Websockets, etc. You can use services with Feathers' Event Emitters [1] give you a service-level abstraction for sending data over websockets. If you want the full flexibility of using websockets directly-- by all means, do so! A common use case, however, is to send updates as service objects are created, updated, or deleted over websockets for real-time applications. You might take that updated record, insert it into your state management system (e.g., Redux), and then use your UI library (e.g., React) to repaint the user's screen. Feathers doesn't care what state management or UI library you use. [0]: https://docs.feathersjs.com/api/services.html#service-methods https://docs.feathersjs.com/api/services.html#service-method... [1]: https://docs.feathersjs.com/api/events.html#eventemitters https://docs.feathersjs.com/api/events.html#eventemitters
- swyx 7y agothis is so cool! ️ where can i know more about the team behind feathers and how it is run/funded? i love learning how long running OSS like this operates.
- JMTQp8lwXL 7y agoHigh-level funding information is available on the FeathersJS github homepage [0]. The core team is composed of the top contributors [1]. [0]: https://github.com/feathersjs/feathers https://github.com/feathersjs/feathers [1]: https://github.com/feathersjs/feathers/graphs/contributors https://github.com/feathersjs/feathers/graphs/contributors
- markandrewj 7y agoThe coolest thing about Feathers for me is that it was developed locally (Alberta, Canada).