What is Hamsters.js?

Hamsters.js is a JavaScript multi-threading and parallel processing library optimized around the concept of parallelism.

How did Hamsters.js start?

Throughout my full stack software development career I've often come across situations where front end performance was too limited to fully achieve a consistent experience for all users.
Browser lockups, crashes, out of memory errors, and general sluggishness are all things that hurt the user experience and reflect badly on the application and ultimately the company behind the application.

This frustration lead to an interest in high performance computing, big data, and parallel processing, this research combined with taking inspiration from real world use cases I came across during development of enterprise scale data heavy web applications lead to the creation of Hamsters.js.

Written from the ground up to be isomorphic, and as platform & hardware agnostic as possible, Hamsters.js runs anywhere JavaScript does (ECMA-262 5th Edition or newer). Supporting all major web browsers, Node.js, and even ReactNative on mobile so integrating multi threading into your applications has never been easier.

What makes Hamsters.js unique?

Hamsters.js is not like any other JavaScript multi-threading library on the market, while other libraries are designed around concurrency Hamsters.js is engineered around parallelism. Featuring a fully functional thread pool system and queue system Hamsters.js allows an application to offload any individual function onto it's own thread while simultaneously offloading any number of functions onto their own threads, with each function making use of a different number of threads, all at the same time, making Hamsters.js truly "Concurrently Parallel".

Why should I use Hamsters.js?

As we approach the end of Moores Law and single threaded performance gains in new hardware continue to show diminishing returns, multi core processing will become more and more important. Traditionally parallel processing can be very complex and should be considered it's own programming paradigm that introduces a myriad of complexity that just isn't present with single threaded data processing. Even now, years after this idea started the majority of applications do not make use of any multi-threading, concurrency, or parallel processing at all. Hamsters.js aims to abstract the majority of that complexity away from the user & help bring modern applications up to speed with newer hardware and make them future proof for many years to come.