6 ms·
What we learned building a Rust runtime for TypeScript
- jauntywundrkind 6mo agoVery side note, but really liking seeing Elysia so close to the top on the benchmark list. I've been using it, and pointing my LLM's to it as example code, because it's type system is so so much better than Hono's. https://elysiajs.com/ https://elysiajs.com/ I didn't know that it was also flipping fast as frell. (Encore's benchmark is showing them as faster still, of course!)
- pier25 6mo ago> because it's type system is so so much better than Hono's Can you elaborate?
- jauntywundrkind 6mo agoI wish I had a better encapsulation, a better anecdote, that shared the improvement I've felt nicely. Elysia does have a write up on how they compare to Hono. Their sound type safety section helps show some differences: https://elysiajs.com/migrate/from-hono.html#sound-type-safety https://elysiajs.com/migrate/from-hono.html#sound-type-safet...
- speak_on 6mo agoType system via a single schema looks similar to Hono+OpenApi+RPC, or is there a different advantage?
- caditinpiscinam 6mo agoUI note in case the creators of this site are reading: having a right-click on the site logo open a special logo-download menu is probably the wrong choice. If I right click on your site logo it's because I want to open your homepage in a new tab while keeping the original blog post open. The current behavior is unexpected and makes it hard to navigate the site.
- airstrike 6mo agoCtrl+Click or Cmd+Click to open in a new tab? I for one loved the context menu on logos
- owenpalmer 6mo agoI can't seem to tell exactly what they built. They call it a runtime, but they're using NodeJS? Did they implement a transpiler in Rust? They also seem to be calling Rust from JS, but not through wasm... They seem to be doing something with Rust and http, but they're also just using "Pingora"... Additionally, their homepage is about 20 fps while scrolling on my phone (pixel 4a, brave) I would honestly love for someone to explain to me wtf is going on.
- wmf 6mo agoLooks like a Node.js wrapper.
- owenpalmer 6mo agoThat does what?
- xbar 6mo agoI like the seeing the avoidance of generics hell. Traitsmaxxing.
- deleted 6mo ago[deleted]
- waterTanuki 6mo ago> First, we knew we wanted to extend Encore to more languages over time, and we'd seen projects like Prisma and Pydantic successfully use a Rust core with bindings into Node.js and Python respectively. On an unrelated note Prisma decided to rewrite their Rust core in Typescript. https://www.prisma.io/blog/from-rust-to-typescript-a-new-chapter-for-prisma-orm https://www.prisma.io/blog/from-rust-to-typescript-a-new-cha...
- pjmlp 6mo agoBecause in real life deployments, outside of winning benchmarking charts, a JIT is fast enough, and the burden of multiple languages cake layer isn't worth the trouble. Thanks for sharing the link.
- re-thc 6mo ago> outside of winning benchmarking charts Prisma didn’t win the benchmark charts either.
- pjmlp 6mo agoYes, and? That was the point, delivering business value within a specific set of KPIs makes more sense than winning benchmarks, if the outcome remains the same.
- re-thc 6mo ago> That was the point Of what? Doing Rust? Prisma Rust failed to win the benchmarks. Prisma Typescript also fails to win the benchmarks. > if the outcome remains the same Then don't drive a car. You can walk. The outcome is the same.
- deleted 6mo ago[deleted]
- mavelikara 6mo agoWhat is meant by snapshot testing in this context?