Packem is +2X faster than ParcelJS. It abstracts most heavy operations into Rusty dynamic libraries. This reduces compilation time by a huge fraction. Additionally, safe FFI connections are leveraged that apply native ABIs to control the bundling cycle.
Check the advanced section to find more on the Packem’s runtime procedure.
Built-in OS-specific binaries are utilized as safe C++ node addons in Packem’s core. This creates a non-breaking environment for Packem to bundle properly. Plugins, features and optimizers can safely import low-level APIs to allow close-to-the-metal integration with the platform.
This gives the advantage point of using Rust’s OS threads.
The class-based event model is quite common and Packem uses it to expose built-in events to plugins. The
PackemEventDispatcher can be used to dispatch custom events synchronously which is then exposed to other plugins.
This pattern is used heavily in the
packem-dev-plugin which serves as a development plugin.