469
280
+ 1
0

What is RxJS?

RxJS is a library for reactive programming using Observables, to make it easier to compose asynchronous or callback-based code. This project is a rewrite of Reactive-Extensions/RxJS with better performance, better modularity, better debuggable call stacks, while staying mostly backwards compatible, with some breaking changes that reduce the API surface.
RxJS is a tool in the Concurrency Frameworks category of a tech stack.
RxJS is an open source tool with 19.7K GitHub stars and 2.3K GitHub forks. Here’s a link to RxJS's open source repository on GitHub

Who uses RxJS?

Companies
175 companies reportedly use RxJS in their tech stacks, including ABEJA, Inc., Onefootball, and Frontend.

Developers
282 developers on StackShare have stated that they use RxJS.

Why developers like RxJS?

Here’s a list of reasons why companies and developers use RxJS
Top Reasons
Be the first to leave a pro
RxJS Reviews

Here are some stack decisions, common use cases and reviews by companies and developers who chose RxJS in their tech stack.

Eyas Sharaiha
Eyas Sharaiha
Software Engineer at Google · | 21 upvotes · 118.7K views
atGoogleGoogle
TypeScript
TypeScript
Angular 2
Angular 2
RxJS
RxJS
#Typescript
#Angular
#RXJS
#Async
#Frontend

One TypeScript / Angular 2 code health recommendation at Google is how to simplify dealing with RxJS Observables. Two common options in Angular are subscribing to an Observable inside of a Component's TypeScript code, versus using something like the AsyncPipe (foo | async) from the template html. We typically recommend the latter for most straightforward use cases (code without side effects, etc.)

I typically review a fair amount of Angular code at work. One thing I typically encourage is using plain Observables in an Angular Component, and using AsyncPipe (foo | async) from the template html to handle subscription, rather than directly subscribing to an observable in a component TS file.

Subscribing in components

Unless you know a subscription you're starting in a component is very finite (e.g. an HTTP request with no retry logic, etc), subscriptions you make in a Component must:

  1. Be closed, stopped, or cancelled when exiting a component (e.g. when navigating away from a page),
  2. Only be opened (subscribed) when a component is actually loaded/visible (i.e. in ngOnInit rather than in a constructor).

AsyncPipe can take care of that for you

Instead of manually implementing component lifecycle hooks, remembering to subscribe and unsubscribe to an Observable, AsyncPipe can do that for you.

I'm sharing a version of this recommendation with some best practices and code samples.

#Typescript #Angular #RXJS #Async #Frontend

See more
Praveen Mooli
Praveen Mooli
Engineering Manager at Taylor and Francis · | 12 upvotes · 362.6K views
MongoDB Atlas
MongoDB Atlas
Java
Java
Spring Boot
Spring Boot
Node.js
Node.js
ExpressJS
ExpressJS
Python
Python
Flask
Flask
Amazon Kinesis
Amazon Kinesis
Amazon Kinesis Firehose
Amazon Kinesis Firehose
Amazon SNS
Amazon SNS
Amazon SQS
Amazon SQS
AWS Lambda
AWS Lambda
Angular 2
Angular 2
RxJS
RxJS
GitHub
GitHub
Travis CI
Travis CI
Terraform
Terraform
Docker
Docker
Serverless
Serverless
Amazon RDS
Amazon RDS
Amazon DynamoDB
Amazon DynamoDB
Amazon S3
Amazon S3
#Backend
#Microservices
#Eventsourcingframework
#Webapps
#Devops
#Data

We are in the process of building a modern content platform to deliver our content through various channels. We decided to go with Microservices architecture as we wanted scale. Microservice architecture style is an approach to developing an application as a suite of small independently deployable services built around specific business capabilities. You can gain modularity, extensive parallelism and cost-effective scaling by deploying services across many distributed servers. Microservices modularity facilitates independent updates/deployments, and helps to avoid single point of failure, which can help prevent large-scale outages. We also decided to use Event Driven Architecture pattern which is a popular distributed asynchronous architecture pattern used to produce highly scalable applications. The event-driven architecture is made up of highly decoupled, single-purpose event processing components that asynchronously receive and process events.

To build our #Backend capabilities we decided to use the following: 1. #Microservices - Java with Spring Boot , Node.js with ExpressJS and Python with Flask 2. #Eventsourcingframework - Amazon Kinesis , Amazon Kinesis Firehose , Amazon SNS , Amazon SQS, AWS Lambda 3. #Data - Amazon RDS , Amazon DynamoDB , Amazon S3 , MongoDB Atlas

To build #Webapps we decided to use Angular 2 with RxJS

#Devops - GitHub , Travis CI , Terraform , Docker , Serverless

See more
Lars Lockefeer
Lars Lockefeer
Mobile Tech Lead at Picnic · | 4 upvotes · 18.8K views
atPicnic TechnologiesPicnic Technologies
React Native
React Native
TypeScript
TypeScript
Redux
Redux
RxJS
RxJS
CodePush
CodePush
styled-components
styled-components
React Storybook
React Storybook
Jest
Jest
Prettier
Prettier

Earlier this year, we started developing a new app to help our runners deliver groceries to our customers. We chose React Native over a native app or a PWA and are really happy with it. So far, we really like what we are seeing. Development speed is fast and the tooling is awesome. The “learn once, write anywhere”-promise is really fulfilled and when we ran our project for the first time on iOS after a few weeks of development, we were excited to see how well it worked and what it looked like.

Read our blog post to learn more about how we use React Native, TypeScript, Redux.js, RxJS, CodePush, styled-components, React Storybook, Jest, and Prettier to develop this app, as well as our thought of what else we will do with it at Picnic.

See more
NIDHISH PUTHIYADATH
NIDHISH PUTHIYADATH
Lead Software Engineer at EDIFECS · | 1 upvotes · 47.1K views
Material Design for Angular
Material Design for Angular
Angular 2
Angular 2
Node.js
Node.js
TypeScript
TypeScript
Spring Boot
Spring Boot
RxJS
RxJS
Microsoft SQL Server
Microsoft SQL Server
Hibernate
Hibernate
Spring MVC
Spring MVC

Material Design for Angular Angular 2 Node.js TypeScript Spring-Boot RxJS Microsoft SQL Server Hibernate Spring MVC

We built our customer facing portal application using Angular frontend backed by Spring boot.

See more

RxJS Alternatives & Comparisons

What are some alternatives to RxJS?
React
Lots of people use React as the V in MVC. Since React makes no assumptions about the rest of your technology stack, it's easy to try it out on a small feature in an existing project.
Ramda
It emphasizes a purer functional style. Immutability and side-effect free functions are at the heart of its design philosophy. This can help you get the job done with simple, elegant code.
Akka
Akka is a toolkit and runtime for building highly concurrent, distributed, and resilient message-driven applications on the JVM.
Netty
Netty is a NIO client server framework which enables quick and easy development of network applications such as protocol servers and clients. It greatly simplifies and streamlines network programming such as TCP and UDP socket server.
Finagle
Finagle is an extensible RPC system for the JVM, used to construct high-concurrency servers. Finagle implements uniform client and server APIs for several protocols, and is designed for high performance and concurrency.
See all alternatives

RxJS's Followers
280 developers follow RxJS to keep up with related blogs and decisions.
Prasad M
Jarrett Pulley
Maxime Gontier
johngrimsey
Andrey Kolybelnikov
Ali Amechghal
zhedream
sergio99nv8849
Дмитрий Михайлович Гесслер
texyh