Giter Site home page Giter Site logo

cpatti97100 / react-crypto-orderbook-using-websocket-webworker-and-sharedworker Goto Github PK

View Code? Open in Web Editor NEW
4.0 1.0 1.0 43 KB

React crypto orderbook using websocket, webworker and sharedworker

Home Page: https://react-crypto-orderbook-using-websocket-webworker-an-cpatti97100.vercel.app/

JavaScript 41.43% TypeScript 55.25% SCSS 2.61% HTML 0.71%
websocket scss html cryptocurrency orderbook comlink webworker sharedworker react webpack

react-crypto-orderbook-using-websocket-webworker-and-sharedworker's Introduction

Good day and thank you for checking out my crypto orderbook :)

Live link (Firefox only): https://react-crypto-orderbook-using-websocket-webworker-an-cpatti97100.vercel.app/

Get Firefox: https://www.mozilla.org/en-US/firefox/new/

Screenshot Screenshot

Here are few important notes:

This repository is a fork of https://github.com/glook/webpack-typescript-react (base react + webpack 5 boilerplate, see below)

This code is not for production use and only runs on Firefox due to SharedWorker and WebWorker specific features browser support.

I honestly just had so much fun playing with those that I could not resist going all in :)

For a real world application I would rely on a different setup, although less optimal probably.

Features

  • It shares one WebSocket connection with multiple component instances and/or tabs. No matter how many, there will always be only one connection.
  • It uses at most 2 WebWorkers, one for every currently displayed product.
  • Component updates are throttled no matter the message frequency from the WebSocket
  • Fully responsive

Performance

Memory usage in time memory usage

Absolutely stable

Firefox Profiler Firefox profiler

Very lightweight on the CPU

React Profiler react profiler

dev build rendering times

Improvements

  • Tests
  • SharedWorker is currently not supported in safari, but it is again under consideration (https://bugs.webkit.org/show_bug.cgi?id=149850)
  • SharedWorker cannot spin up WebWorker in Chrome
  • I used HTML tables and SVG as they are accessible and in theory the right tool for the job.
  • Naming of CSS classes and variables in general
  • ...many more, software is a never ending journey :D

Next ideas

  • I am very familiar with RxJS, and it would have probably be a nice fit here

Webpack 5 boilerplate

Webpack 5 boilerplate with support of most common loaders and modules:

Quick start

To run this locally:

  1. run git clone https://github.com/glook/webpack-typescript-react.git sample-project

  2. Install all dependencies using yarn or npm install

  3. Start the development server using yarn start or npm run start

  4. Open up http://localhost:8080

react-crypto-orderbook-using-websocket-webworker-and-sharedworker's People

Contributors

cpatti97100 avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar

Forkers

guzxup

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.