Bundlers like Webpack do a great job at providing a toolset needed to deliver an optimal out-of-the-box delivery solution for your end-users. Most loaders on the other hand, are focused on delivering only the requested assets, as they are needed, and have a much higher cacheability. Radpack fuses the best of both worlds by taking advantage of build-time bundling, with graph-based run-time loading to prevent wasteful waterfalls.
While Radpack has the potential to serve a wide area of use cases, it’s focus is on serving the neglected Enterprise space.
Enterprise build plugin for end-user-optimized isomorphic just-in-time dependency loader.
Let’s break that down:
- Multi-application dependency sharing
- Unopinionated packaging requirements (webpack, “applets”, rollup, etc)
- Deployments out-of-band of applications (optional)
- Build plugin
- Optimize run-time, including dependency graphing, at build time
- Support for webpack and rollup – more in the future
- End-user optimized
- End-user experience is optimized over developer experience
- Seamless dependency sharing between client and server
- Just in time dependency loader
- Load only what’s needed, when it’s needed
But let’s take a step back for a moment, and start with the basics.
There are a few definitions that are useful to understand prior to integrating Radpack.
- Entry - A pattern common amongst bundlers, entries are effectively named exports of the shared thing you’re exporting. Ex:
- Export - In the context of Radpack, exports are simply the the things you’re exporting to be consumed/shared by others.
- Registry - A collection of exports that may span many entries and even projects. The intention behind a registry is to provide a single source of truth (many exports) for applications to consume. The size and boundaries for a single registry should be determined by the needs of cross-application dependency usage.
- Producer - Whoever exports a registry is a producer.
- Consumer - Whoever bundles with a registry is a consumer.
- Runtime - Responsible for loading a registry and the requested assets on demand.