What does `Rust Free` mean when I'm still getting Rust panics?
I keep seeing blog posts by prisma claiming they have a
rust free engine now, but when I push the edge cases that broke the rust engine, they still break in the rust free version (see #28058).
Does rust free just mean rust isn't the one executing the query?
Rather than rust also not being involved in generating the query?
It feels like I'm being lied to...5 Replies
You chose to debug with a human. They'll tinker with your query soon. If you get curious meanwhile, hop into
#ask-ai for a quick spin!My schema before anyone asks:
Prisma v6.16.1
you're right, the new query compiler is still in rust, but compilled into wasm
but now the query is executed by native js driver by default instead
and query compiler is used to build the query
i think they do plan to port it to js in the future, but it takes time, so they decided to do it like that currently
I assume you're probably right, but then what are they going to call it when they're actually rust free?
rust free for real this time?
Rant:
Just because they compiled it to a different target doesn't make it rust free.
That would be like me saying I made windows x86 free because I ran it on a translation layer on ARM, even though the source is still C++
Plus if you know about the compiler architecture of rust, it's not like compiling to x86 or arm is uniquely different to wasm.
Especially because it's not like Rust actually compiles to either of them anyway, it compiles to LLVM-IR which then compiles down to x86/arm/wasm.
I completely understand the migration should be done in stages towards JS-Native, and using wasm as an intermediary step is a good choice. But calling it Rust free when it's objectively not is really annoying me - especially when I still get Rust errors in production often.
Thanks for sharing the link to the GitHub Issue, I see my colleague triaged it. This is something we will take a look at with upcoming Prisma 7 release 🙏