
Brisa 0.2.10
π Brisa v0.2.10 is out!
This is a foundational release preparing the ground for binary compilation in future versions. While the feature isn't fully landed yet, this update already brings performance improvements and paves the way for what's next.
βοΈ Context: Towards Binary Compilation
To enable compiling Brisa into a single binary in future releases, we've started replacing dynamic imports with static modules inside server.js
. This change allows Bun to analyze dependencies staticallyβessential for producing a compiled binary.
Even though this is just the beginning, weβve already observed improvements in requests per second (RPS) thanks to fewer runtime evaluations and better startup performance.
We're releasing these changes incrementally to keep releases manageable and easier to test, instead of dropping a huge update later.
β¨ Key Improvements
π Replaced Dynamic Imports
The following parts of Brisa now use static imports instead of dynamic ones:
- β Middleware
- β i18n configuration
- β
brisa.config
- β Web integrations
- β Layout and page routes
- β WebSocket handlers
This transition helps prepare for compilation and reduces cold-start overhead.
π Bug Fixes & Improvements
- Improved Hot Reloading for
brisa-project-internals
during development β #821 - Fixed i18n script behavior on navigation and static builds β #823, #824
- Allow empty pages to build properly β #819
- More accurate page identification using page name instead of file path β #820
π Maintenance
- Upgraded Bun in multiple places for improved compatibility and speed β #803, #806, #814
- Updated MIME types and project internals resolution for correctness and stability β #807
π§ͺ What's Next?
The next steps will focus on leveraging all these static modules to produce an actual single binary executable of your Brisa app. Weβre getting close!
Stay tuned for that in upcoming releases. π§β¨
Full Changelog
- chore: migrate script to latest Bun way by @aralroca in #795
- fix(build): transform middleware import from dynamic to static by @aralroca in #796
- fix(build): transform i18n import from dynamic to static by @aralroca in #800
- fix(build): transform brisa.config import from dynamic to static by @aralroca in #802
- chore: upgrade bun by @aralroca in #803
- fix(build): transform web integrations import from dynamic to static by @aralroca in #805
- chore: upgrade bun by @aralroca in #806
- fix(build): fix
brisa-project-internals
resolution by @aralroca in #807 - fix(build): transform layout module from dynamic import to static by @aralroca in #809
- fix(build): transform all page routes import from dynamic to static by @aralroca in #811
- fix(build): transform websocket import from dynamic to static by @aralroca in #813
- chore: upgrade bun & mime-type by @aralroca in #814
- fix: export full static web integrations module by @aralroca in #816
- fix: export full static middleware module by @aralroca in #817
- fix: export full i18n + config static module by @aralroca in #818
- fix: allow build empty page by @aralroca in #819
- fix: use page name instead of filePath to identify pages by @aralroca in #820
- fix(hot-reload): fix hot-reloading with brisa-project-internals by @aralroca in #821
- fix(i18n): re-load client i18n keys during navigation by @aralroca in #823
- fix(i18n): fix i18n script navigation keys on static output by @aralroca in #824
π View on GitHub
β€οΈ Support Brisa β Get your swag!
ποΈ Wear Brisa with pride and help the project grow.