I can confirm a naive rewrite won't make things faster. I've been working on rewriting Postgres in Rust. I rewrote things function by function similar to how Jarred did. Even though the new Rust code mapped closely with the previous C code, it was 8x slower. This was due to myriad of reasons. For example naively converting a C union into a Rust enum can be slower because Rust stores a tag with the enum, while C unions do not.

I've been working on a new rewrite that's focused on beating Postgres on performance. As of this morning I got to 100% of the tests passing and have meaningful performance gains over Postgres.

I hope that you're going to call it PostGrust.

Na, PostPostgres would be much cooler.

Then you'll have postgrest on postgrust

I find it curious that people who take other's people product and rewrite in their favorite programming language still name their own creation the name of the original one.

Like, you have now created your own new database engine that happens to be compatible with Postgres. Wouldn't you take an absolute pride in giving it your own name? Why call it "Postgres rewrite in <programming language>"?

If they did the opposite and called it Mygres or whatever people would give them shit for that too.

Maybe not everyone is utterly obsessed with vanity and its delusion?

Then why use someone else's established brand for your toy project?

Would love to follow your journey!

If you want to follow along, I've been writing about it on my blog (https://malisper.me/) an you can follow the github repo here: https://github.com/malisper/pgrust

Bookmarked. I love ambitious projects like this. I'll check in!