Hacker News
Show HN: Proa – A Rust web framework with fast SSR and multi-target rendering
Video on multi-target rendering: https://youtu.be/pJx84jdBDKU?si=HRRd6dgUWXiqeWhq
Benchmarks: https://github.com/Proa-Labs/proa-benchmarks
egeozcan
|next
[-]
One nit: Forgive me if I'm missing something but why do you have pro components? Won't people vibe-code clones anyway? I'd rather have a donate button these days.
burnrate
|root
|parent
[-]
DrammBA
|root
|parent
[-]
skrtskrt
|root
|parent
|next
[-]
PLus you're missing the licensing aspect, part of this is AGPL if you use the free version, lots of places are happy to throw down money to get a commercial license rather than hem and haw over AGPL.
killingtime74
|root
|parent
|previous
[-]
DrammBA
|root
|parent
[-]
kianN
|next
|previous
[-]
airstrike
|next
|previous
[-]
burnrate
|root
|parent
[-]
By default, WebContext composes RenderBuffer (but it can be overriden via generics) which uses fixed-size 4 KiB pages. When a page runs out of room, it adds another page without moving the HTML already written. This avoids copying the accumulated output during growth! Its designed to be a performance improvement over Vec<u8>
For context, the problem with Vec<u8> is that every time a vector reaches maximum capacity, it has to reallocate a new area of memory (typically 2x larger than the previous allocation) and then copy everything into that new buffer. This adds a ton of overhead, especially if you're writing large pages.
Checkout https://github.com/Proa-Labs/proa/blob/384136f87fc9f91747477... if you're curious about RenderBuffer's design