Packem

A precompiled JavaScript module bundler

Absolutely Fast

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.

Safe Binaries

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.

Adaptable Plugin System

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.