Releases

Rust developer releases smb2, a faster pure-Rust SMB2/3 client

Slow NAS transfers in Finder pushed David Veszelovszki to build smb2, a pure-Rust SMB2/3 client that he says outpaces native macOS SMB in tests.

Nina Kowalski··2 min read
Published
Listen to this article0:00 min
Rust developer releases smb2, a faster pure-Rust SMB2/3 client
Source: static.crates.io

Slow NAS transfers in Finder were the annoyance that pushed David Veszelovszki to start over. Instead of patching around the existing smb crate, he built smb2 as a pure-Rust SMB2/3 client with pipelined I/O at the center. The goal was simple and specific: stop issuing one read at a time and make the client behave more like a native operating-system SMB stack.

Veszelovszki published the announcement on June 10, and the performance story is the part that lands hardest. In his benchmark write-up, smb2 beat native macOS SMB on a QNAP NAS over Gigabit LAN, with uploads, listings, downloads, and deletes all coming in faster. Small-file downloads were roughly five times faster, large-file downloads were also around five times faster, and the crate was reported as 3 to 8 times faster than the smb crate overall.

AI-generated illustration
AI-generated illustration

The project README frames the numbers a little more conservatively, saying smb2 was 1.3 to 5 times faster than native macOS SMB when tested against SMB 3.1.1 on the same QNAP setup. It also spells out the mechanics behind the speed: no C dependencies, no FFI, runtime-agnostic async I/O, pipelined operations by default, and chunking that follows the server’s MaxReadSize and MaxWriteSize. SMB 3.x signing, encryption, and LZ4 compression are in the mix too, which gives the crate enough protocol muscle for real file work, not just toy examples.

The benchmark method matters here because file sharing on macOS can look deceptively fast when the kernel page cache is doing the heavy lifting. Veszelovszki used F_NOCACHE to disable that cache so the test measured real network I/O instead of warm local reads. That lines up with Apple’s own documentation around SMB caching behavior on macOS, including settings that can disable local SMB directory enumeration caching when current share contents matter more than cached speed.

Underneath the measurements is a protocol story that fits Rust well. Microsoft’s MS-SMB2 spec is a living document, with revision 86.0 dated April 13, 2026, even though smb2 was built directly from revision 84.0 from January 14, 2026. SMB servers grant credits dynamically, and clients consume them as they send requests; Samba’s notes say Windows clients pipeline reads and issue as many simultaneous reads as their credits allow. smb2 is built around that reality instead of fighting it.

Veszelovszki’s broader context makes the release feel less like a one-off and more like a tool shaped by daily use. He says he is building Cmdr, an AI-native file manager in Rust, so SMB throughput is not an abstract protocol hobby. It is the difference between a sluggish drag-and-drop and a client that finally lets Rust take the hot path seriously.

This article was produced by Prism’s automated news system from verified source data, official records, and press releases, then run through automated quality and moderation checks before publishing. The system is built and supervised by the people who set the standards it runs under. Read our full AI policy.

Did this article answer your question?

Discussion

More Rust Programming News