David Sherret
dsherret.bsky.social
David Sherret
@dsherret.bsky.social
Software developer at Deno. Also working on ts-morph, dprint, and more (https://github.com/dsherret)
Reposted by David Sherret
In his talk at #EuroRust25, @kettmeir.dev shared how the @deno.land project improved error handling by migrating from the anyhow crate to using thiserror and concrete error types – watch it on YouTube now! 🦀

👉 youtu.be/f6eofqicw_s

#RustLang #RustConference #EuroRust
From Any to This - Leo Kettmeir | EuroRust 2025
YouTube video by EuroRust
youtu.be
November 6, 2025 at 11:23 AM
Wrote a library this weekend for modifying JSONC files david.deno.dev/posts/jsonc-...
First-class JSONC manipulation in JavaScript
Manipulating JSONC in JavaScript using a CST via jsonc-morph
david.deno.dev
October 12, 2025 at 11:30 PM
Reposted by David Sherret
August 7, 2025 at 6:58 PM
Reposted by David Sherret
🌟 Speaker Spotlight: David Sherret

@dsherret.bsky.social will walk us through the JSR package registry: why it exists, how it improves on previous approaches such as HTTPS specifiers, and the design decisions behind its module resolution.

Schedule, speakers & more info: squiggleconf.com
July 18, 2025 at 12:00 PM
Reposted by David Sherret
Importing bytes and texts:
✅ adds to your module graph
✅ type checking
✅ works with deno bundle and deno compile

deno.com/blog/v2.4#im...
July 3, 2025 at 4:49 PM
Type checking text and bytes imports is now working.
June 25, 2025 at 5:56 PM
Should have importing files as text and bytes ready for Deno 2.4 -- will be unstable because it hasn't been standardized.
June 20, 2025 at 8:23 PM
This is now published to JSR as a rolldown plugin: jsr.io/@deno/rolldo...
Got bundling JSR/Deno code with Rolldown working.

This is using Rolldown's and Deno's crates respecting Deno's lockfile, config discovery, and resolution. Finally Deno's crates have been refactored enough for this to be feasible (~500 LOC). I'll update with more details later.
June 4, 2025 at 9:34 PM
Got bundling JSR/Deno code with Rolldown working.

This is using Rolldown's and Deno's crates respecting Deno's lockfile, config discovery, and resolution. Finally Deno's crates have been refactored enough for this to be feasible (~500 LOC). I'll update with more details later.
May 31, 2025 at 2:19 AM
I've come across so many bugs caused by using wildcard matches in Rust. Even though it can be verbose, I think it's better to avoid them in most cases so that adding a new enum variant causes compiler errors, forcing you to re-evaluate each match.
March 27, 2025 at 9:50 PM
It was getting difficult to debug Deno's npm resolution so I wrote a tool to help visualize each step it makes.
March 20, 2025 at 7:35 PM
Reposted by David Sherret
My closing keynote from Rust Nation UK last week is now online: "Microsoft is Getting Rusty: A Review of Successes and Challenges"
Microsoft is Getting Rusty: A Review of Successes and Challenges - Mark Russinovich
YouTube video by Rust Nation UK
www.youtube.com
February 26, 2025 at 10:18 PM
Neat to see software I used to work on and features I helped implement in Severance.
February 25, 2025 at 1:37 AM
Reposted by David Sherret
Lint plugins are now available 🎉
February 19, 2025 at 4:18 PM
Beware: npm doesn't show non-npm dependencies in the dependencies tab. Check out this package—npm lists it as having zero dependencies, but if you look at the package.json, it definitely has dependencies.
February 7, 2025 at 9:58 PM
Did some work on the url Rust crate the past two days and got it parsing a 400 character URL more than twice as fast (still have a few PRs not merged).
February 7, 2025 at 9:34 PM
I feel like making node resolution "just work" leaves the JS ecosystem in a worse place.
February 5, 2025 at 1:28 AM
Reposted by David Sherret
@jsr.io is now openly governed — meet its board members and check out its governance charter 👇

deno.com/blog/jsr-ope...
Introducing the JSR open governance board
JSR, a modern open source JavaScript registry, is meant for the greater JavaScript and TypeScript community. We're thrilled to announce its own independent governing body.
deno.com
February 3, 2025 at 6:18 PM
TypeScript <5.7 on left, TypeScript 5.7 on right. Glad this seems to work lol. Anyone have a better solution for dealing with Uint8Array being generic now?
January 28, 2025 at 5:34 PM
Worked on this slowly over 5 months, but Deno's config discovery and module resolution logic has been extracted out of the CLI and into a re-usable crate (not yet published). Also a few days ago this setup code was hundreds of lines, but now it's only a few.
January 24, 2025 at 2:13 AM
Wasmbuild is getting simpler thanks to Wasm imports.
January 8, 2025 at 12:20 AM
Recently I've started using a different approach to pre-allocating strings in Rust.
Maintainable string and bytes pre-allocation in Rust
How to stop manually calculating capacity by using a single source of truth.
david.deno.dev
December 30, 2024 at 12:10 AM
After many years, we finally have control of the deno package on npm. Thank you, GitHub!

Now to get it all wired up and distributing the Deno executable...
December 12, 2024 at 5:08 PM
Reposted by David Sherret
So in @deno.land 2.1 you can directly import WASM. That's pretty cool... but they also automatically generate typescript types for the WASM. Pretty wild... here's how they do it: github.com/denoland/den.... Uses this crate: github.com/denoland/was....

@dsherret.bsky.social, you do good work.
github.com
December 7, 2024 at 3:53 AM
It's been a few months so let's bring this up again with an example of what other languages do—unawaited async function call detection is standard in other languages, but missing in TypeScript. So many bugs could be prevented if this were built-in and didn't require separate tooling.
November 29, 2024 at 6:39 PM