I built an implementation of the TC39 structs proposal that you can use today: `struct` and `shared struct`, Atomics.Mutex and Atomics.Condition, and objects that really are shared between workers. A compiler and a runtime, on npm as @arv/structs. structs.arv.tools
arv
arv
@arv.tools
Partner at rocicorp.dev, building zero.rocicorp.dev Ex V8, Chrome, TC39, Gmail, Gears
120 followers161 following56 posts
The playground runs your program on 1, 2, 4 and 8 workers, so you can watch it scale. The Mandelbrot demo gets about 7.7x on 8 workers in Chrome, then prints the picture. structs.arv.tools/playground/
It sticks closely to the spec, and the docs list each place it differs. npm install @arv/structs npm install -D @arv/structs-compiler Code: github.com/arv/structs
I built an implementation of the TC39 structs proposal that you can use today: `struct` and `shared struct`, Atomics.Mutex and Atomics.Condition, and objects that really are shared between workers. A compiler and a runtime, on npm as @arv/structs. structs.arv.tools
I built an implementation of the TC39 structs proposal that you can use today: `struct` and `shared struct`, Atomics.Mutex and Atomics.Condition, and objects that really are shared between workers. A compiler and a runtime, on npm as @arv/structs. structs.arv.tools
Last week I gave Porffor shared-everything threads: one heap, every object shared, races allowed but never a torn value. github.com/arv/porffor/tree/arv/shared-everything-threads/threads This week, the opposite bet: @arv/threads, threads for plain TypeScript on Web Workers 🧵 threads.arv.tools
Try it in the browser, the TypeScript and the JS it compiles to side by side: threads.arv.tools/playground/ npm install @arv/threads. Still experimental: the compiler is a tsgo fork you build yourself, for now. Built mostly by iterating with Claude Code.
Last week I gave Porffor shared-everything threads: one heap, every object shared, races allowed but never a torn value. github.com/arv/porffor/tree/arv/shared-everything-threads/threads This week, the opposite bet: @arv/threads, threads for plain TypeScript on Web Workers 🧵 threads.arv.tools
What is happening to all the Paris meetups? There hasn't been many lately? @parisjs.org @typescript.paris @bejs.bsky.social
Concurrent JavaScript, it works! Over the last couple of days I (Claude) have hacked on porffor.dev to add Threads! I've added concurrency primitives as described by Filip Pizlo here: webkit.org/blog/7846/co... You can play with in your browser at porffor-threads.up.railway.app/threads/play...
This is also what Bun is prototyping at github.com/oven-sh/WebK...
arv reposted
Journal: Stalling installing Trying to get past Webkit’s blockage at the W3C. 🔗https://adactio.com/journal/22757
arv reposted
Jarred Sumner experiments with multi-threaded JavaScript 🧪 Filip Pizlo's "wild thought experiment" from 2017 is brought to life 🔥 Unlike existing approaches (workers, SharedArrayBuffer) this shares the JS heap. It means threads directly access the same JS objects. github.com/oven-sh/WebK...
arv reposted
1️⃣ 4️⃣ Zero 1.4 available * Improved query analyzer * Periodic auto reset for disaster recovery * 7x faster index creation * 2x faster backfills * Up to ~50% faster hydration * ~20 misc fixes * A cute ad for Cloud Zero No breaking changes. You should update soon. zero.rocicorp.dev/docs/release...
arv reposted
arv reposted
Amazing post. I hope web devs understand this as downstream of antitrust pressure on Apple re: iOS & other browsers. @open-web-advocacy.org won the headcount Apple poured in since '20 because it allowed them to claim engagement w/o threatening the app store: blog.gitbutler.com/the-great-cs...
arv reposted
A nine-year-old CSS spec issue has been resolved! 🎉 `position: sticky` now tracks the nearest scrolling container per axis. Want to stick an element to a scroll container AND the document? Soon possible. Chromium only for now, but great to see this land! https://www.bram.us/2026...
arv reposted
This is absolutely beautiful and very well done. > Nothing you own is finished. Everything exists in a state of permanent incompletion, permanently needing. https://www.terrygodier....
arv reposted
Zero to 1.0 After two years of work, 50+ releases, thousands of commits, and hundreds of bugfixes, we are officially declaring Zero stable and ready for production workloads. zero.rocicorp.dev/docs/release...
@diabrowser.com bsky.app/profile/orpa... Opensearch please.
Opensearch is such a good feature, it's a shame nothing besides firefox supports it anymore. (you can right-click on the URL bar to easily add it on npmx.dev) In chrom*, they expect you to use an extension per search engine or manually add the replacement string in the settings window.
arv reposted
Debounces, delays, intervals... they either break your tests or slow them down. ⏩ Since @vitest.dev 4.1.0, you can now "fast-forward" time in your tests with `nextTimerAsync` tick mode. ❤️ credit goes to Andrew Scott (@angular.dev team) 🧑🍳 recipe → cookbook.marmicode.io/angular/test...
I really like where @remix.run is going in v3. So much less magic and using the platform for its strength. Disclaimer: I designed and implemented ES6, custom elements, shadow dom, some "modern" dom apis (classList, template element, append, remove...), making EventTarget concrete etc...
I'm really sold on fine grained reactivity - all the way from your database (zero.rocicorp.dev) to your UI (zero.rocicorp.dev/docs/solidjs)
Another master piece by @nolanlawson.com nolanlawson.com/2026/02/18/y... The passion of becoming a programmer really resonates with me. Thank you Nolan.
arv reposted
Man customizable select is sooo cool! Modern CSS is another level of powerful. svelte.dev/playground/8...
I really like where @remix.run is going in v3. So much less magic and using the platform for its strength. Disclaimer: I designed and implemented ES6, custom elements, shadow dom, some "modern" dom apis (classList, template element, append, remove...), making EventTarget concrete etc...
I really like where @remix.run is going in v3. So much less magic and using the platform for its strength. Disclaimer: I designed and implemented ES6, custom elements, shadow dom, some "modern" dom apis (classList, template element, append, remove...), making EventTarget concrete etc...
I'm also intrigued by the higher level events they designed. It looks really nice. We did this in Closure Library but we didn't get it right and in the end it wasn't used much. Here is our "action" event. github.com/google/closu...
arv reposted
ZVM - Zero View Management @aaronboodman.com introduced the incredible tech that enables the zerosync.dev sync engine to almost instantaneously update realtime queries.
arv reposted
arv reposted