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
Prisma AI Help
Prisma AI Help3mo ago
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!
AJabaroni
AJabaroniOP3mo ago
My schema before anyone asks:
generator client {
provider = "prisma-client"
engineType = "client"
output = "../dist/prisma"
previewFeatures = ["fullTextSearchPostgres", "relationJoins", "postgresqlExtensions", "typedSql", "postgresqlExtensions"]
runtime = "deno"
importFileExtension = "ts"
}
generator client {
provider = "prisma-client"
engineType = "client"
output = "../dist/prisma"
previewFeatures = ["fullTextSearchPostgres", "relationJoins", "postgresqlExtensions", "typedSql", "postgresqlExtensions"]
runtime = "deno"
importFileExtension = "ts"
}
Prisma v6.16.1
unrok4009
unrok40093mo ago
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
AJabaroni
AJabaroniOP3mo ago
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.
Nurul
Nurul3mo ago
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 🙏

Did you find this page helpful?