Sounds plausible, but the article itself lists a number of downsides to this, including a statement about potential security problems with a somewhat wishy washy "The input is almost never user-controlled". That "almost never" is a big red flag to me - sounds like there are known security holes that are being glossed over.<p>So my question is whether there are any real-world scenarios where the performance gains will make a difference to the end customer? Because if not, this framework would bring on the known downsides without a compelling reason for doing so aside from bragging rights of "we're the fastest"
Is doing stuff like constant folding pre-execution really worth it? I mean, won't the engine itself (V8, JSC, MozJS) be doing it anyway? I know that Google's Closure Compiler — probably still the most advanced JS optimized — also does it but I can't help but think it's probably pointless.
> Sucrose looks at code and tells the "compiler" to only parse params and skip parsing other parts of the request like body, query, headers entirely as it's not need.<p>My understanding is that just offering a request object with lazy accessors would solve this issue, although the accessor itself would have some overhead in repeat accesses.<p>> Elysia has two special optimizations for response mapping functions: mapResponse and mapCompactResponse.<p>This section feels a bit abstract - some transformation examples would be nice.
> Sucrose read the code without executing it by using Function.toString() then perform our own custom pattern-matching to extract useful information about what parts of the request are actually needed by the route handler.<p>Hmm.
Yup, this is a one-time, startup operation, using a proper parser would make it more robust at no runtime cost.
I was really confused about what a JIT "Compiler" for a JavaScript framework means, but it turns out it means something like I've done myself.<p>My site <a href="https://c50.fingswotidun.com/" rel="nofollow">https://c50.fingswotidun.com/</a> uses the same trick to generate code for the image generation.<p>Between the confusion of what Compile, JIT, Engine, Runtime, and FrameWork is (which I blame Bun a little bit for starting this entire Runtime/Engine confusion). I think we might need some new terminology to describe this method.<p>Maybe a made-up word is needed, JIT was good in that an acronym with a vowel made it wordable and specific.
I'm not familiar with Elysia but how does this handle subfunctions? e.g. if my code is<p>const app = new Elysia()
.patch('/user/:id', (request) => {
return handleUserRequest(request);
})<p>or some other custom logic, does it automatically need to fall back to full parsing?
Frameworks. Plural.
[dead]