Carl Lerche (creator of Tokio, former Ruby on Rails core team) just posted a Topcoat 0.9 update. Worth reading for the author background alone. 🦀
The pitch: make building web apps with Rust as productive as Rails. From someone who's actually done both.
What's new in 0.9:
Shards : server components that re-render when browser-side signals change. Type a character in a search box, the browser sends the signal value, the server re-runs the component against the database and sends back updated HTML. No API layer, no client state management.
Server-push via WebSocket : a live! macro and emit! for streaming UI updates over long-lived connections. Progress bars, chat messages, real-time dashboards, all from the server, in Rust.
Signal-based reactivity without roundtrips : simple state like counters and toggles runs as transpiled JavaScript in the browser. Server roundtrips only happen when you actually need the database.
Toasty (the ORM) also got substantial updates:
update! macro : toasty::update!(user { name: "Alicia", login_count.increment() }) compiles to a single SQL UPDATE with SET login_count = login_count + 1. No load, no save.
Document fields : #[document] on a struct field maps it to JSONB in PostgreSQL, with typed filter support: User::fields().settings().theme().eq("dark").
Polymorphic relations via enums owner: Owner where Owner is User or Team, handled with #[shared] and #[belongs_to] annotations instead of awkward workarounds.
The closing paragraph is the most honest thing in the post: "I don't know where we are going. The world of software engineering is completely different every three months."
🔗
tokio.rs/blog/2026-09-24-top…
#RustLang #WebDev #Tokio #FullStack #OpenSource