Marble.js hits 4.0 - What's new in your favorite reactive Node.js framework?
Did you know that the framework was released over three years ago? It’s quite a long time for a JavaScript environment, to be honest. Back then, the framework was focused on very specific and narrow features that aimed to validate the usage of reactive paradigms on the server side. Multiple releases showed that the initial assumptions required a few design changes and reorganizations. In this short article, I will share the most important improvements I’ve made with the latest four releases. Enjoy!
Table of contents
Package ecosystem reorganization
Initially Marble.js was marked as a framework for building HTTP-based server-side applications, which meant that the protocol was the main building block for all Marble apps. Over time, the framework introduced support for WebSockets and other messaging transport layers, e.g. AMQP. This progress demonstrated that HTTP is not the only actor for the overall framework, and the core module cannot be bundled with any specific protocol.
The newest major release reorganizes the package ecosystem by introducing a @marblejs/http module that moves all HTTP-specific APIs under a new, dedicated package. What does that mean? The main core module is smaller and an API layer makes life easier for developers who want to build their server-side apps with more dedicated transport layers, e.g. RabbitMQ or Redis Pub/Sub. What’s more, the change opens the door for plenty of possible future options, e.g. browsers.
Contribution space
Together with the core package reorganization, Marble.js v4 moves old packages to a new space, opening up new possibilities and directions. From now on, the JOI-based validation package and JWT utilities can be accessed under the @marblejs-contrib package. The new space aims to encourage all potential contributors to build new tools or middleware that don’t have to be in line with official @marblejs package modules.
Upgraded dependencies
Marble.js v4 finally brings support for the latest TypeScript releases and RxJS v7 that were not compatible with previous versions. The newest RxJS version comes with some smaller breaking changes, deprecations and overall performance improvements. For a complete list of improvements please check the official rxjs.dev article.
Keep an eye on our GitHub Space Flight Center, Twitter, and docs.marblejs.com in order to grab the latest information and updates from space!
Happy hacking! 🚀
Are you curious how it feels to join Boldare as a Node.js Developer? Visit our career page and check the current vacancies!
Share this article: