DEV Community

Why I Built an Ultra-Lightweight 64-Segment IDM Alternative in Rust: Meet NeXDM

NexDM on August 24, 2026

For over a decade, Internet Download Manager (IDM) has been the undisputed king of download accelerators for Windows. But as we move deeper into 20...
Collapse
 
unitbuilds profile image
UnitBuilds •

You know, if you go the zero-alloc route, you could probably stabilize the ram usage, so it's constant? Ngl this is right up my alley, I've lately also been looking at practically everything I run in to on the daily and decide to just write a Rust alternative, because it's faster, lighter and it's actually annoying how everything these days has to just be monetized. I thought Inno Setup was free, till I saw free... Till your app makes you money... So I did what any sane person does, I wrote my own installer in Rust, expanded on it, ran into a snag with rust-msi, so wrote an entire MSI crate, just so I dont have to pay for a tool, or annoy people with ads included by the installer. Keep up the good work, what you thinking of doing next?

Collapse
 
unitbuilds profile image
UnitBuilds •

Makes me think, did you consider multiplexing across multiple internet connections? Would be an interesting scenario, we dont much think about it, but our phones do it quite often with LTE/5G and Wifi. Also, how are you handling retries and retries on stale connections (eg. net dies for an hour, you want to resume).

Collapse
 
nexdm2026 profile image
NexDM • • Edited

Great questions! Both hit right at the core of real-world network resilience:

  1. Multi-Interface Multiplexing (Dual-WAN / Wi-Fi + Ethernet / 4G) This is actually one of the coolest superpowers of building in Rust with reqwest and socket2!

Because we control the underlying connection pool, we can bind individual chunk workers to specific local IP interfaces using ClientBuilder local_address (or socket binding).

If a user is plugged into Ethernet and simultaneously tethered to a 5G mobile hotspot, we can allocate 32 segments through Adapter A and 32 segments through Adapter B. The OS routes them across separate physical gateways, and NexDM stitches them into the same target file on disk—effectively combining both internet pipes into a single bonded bandwidth stream. We are polishing the UI toggle for auto-detecting multiple active network adapters in our upcoming release.

  1. Handling Stale Connections & Dropouts (e.g. Net drops for an hour)
    Our resilience strategy relies on persistent byte-level journaling and validation guards:

  2. Atomic State Journaling: Every segment maintains an atomic progress tracker (start byte, current cursor, end byte). Written chunks are periodically flushed to the pre-allocated disk space, so completed bytes are never lost.

  3. Exponential Backoff & Heartbeat Polling: When a socket drops (ConnectionReset, TimedOut, or HostUnreachable), the chunk worker does not destroy the queue. It pauses and enters an exponential backoff loop with jitter, waiting for network connectivity to restore.

  4. ETag & Last-Modified Validation on Reconnect: When the network comes back alive (even hours later), before issuing new range requests, NexDM fires a lightweight HEAD check. It compares the server's ETag and Last-Modified timestamp against the initial task metadata to ensure the remote file was not replaced on the server.

  5. Resuming Remaining Deltas: If valid, chunk workers request only the delta (Range: bytes=current_cursor to end_byte) and continue as if nothing happened.

This makes multi-gigabyte transfers completely immune to flaky Wi-Fi, ISP drops, or laptop sleep/wake cycles.

Thread Thread
 
unitbuilds profile image
UnitBuilds •

That's AWESOME! Sounds about like what I built into VCTP, where it's UDP data transfer, combined with validation, to make sure that doesnt matter the origin or order, it ensures that each chunk is validated and the whole is validated. Best for high-transfer speeds, with minimal overhead. I used the Slabs system, with a merkle hash with previous chunk to make sure that each chunk is validated in it's own chunk and across chunks and a final SHA hash to validate the full transfer's state. I used uniform chunks with a header, so any data transfer looks the same as any other, with fixed chunk sizes, that way you can apply them directly using io uring to completely bypass deserialization tax, everything stays encrypted during transfer and on arrival too, so it essentially keeps your data as safe as possible with AES, but that's P2P transfer, not generic downloading, so while not completely applicable, there are some things that would be useful. I'll also public V.E.L.O.C.I.T.Y. Share for you later, so you can have a look at it too, in terms of zero-alloc file transfer, I think it does a pretty decent job, I've been using it internally for my OTA updating while using Drone for testing.

Thread Thread
 
unitbuilds profile image
UnitBuilds •

github.com/UnitBuilds-CC/msi-crate Here's the MSI-crate and here's the installer (still WIP) github.com/UnitBuilds-CC/V.E.L.O.C..., here's also Share (also WIP) github.com/UnitBuilds-CC/V.E.L.O.C... I'll let you know once they're done, but you can review in the meantime if you like. Hope they help!

Thread Thread
 
unitbuilds profile image
UnitBuilds •

@xulingfeng See, I do release things eventually 🙄 Still WIP, but it's something, I'll get started on the Resume tool 😁

Collapse
 
nexdm2026 profile image
NexDM •

Must download and try

Collapse
 
help_ker_f6bd330793f0b5e2 profile image
Help Ker •

Thanks and i appreciate your hard work and free.

Collapse
 
nexdm2026 profile image
NexDM •

Thanks Guy's for your valuable feedback.

Collapse
 
mohd_jalilansari_ba99e45 profile image
Mohd jalil Ansari •

I try and its best from FDM or other free download manager

Collapse
 
nexdm2026 profile image
NexDM •

Thanks Guy's for your valuable feedback.

Collapse
 
election_election_d469522 profile image
Election Election •

Thanks NexDM Team

Collapse
 
mohd_jalilansari_ba99e45 profile image
Mohd jalil Ansari •

good very good i love this

Collapse
 
nexdm2026 profile image
NexDM •

Thanks Guy's for your valuable feedback.

Collapse
 
election_election_d469522 profile image
Election Election •

Good i was searching this loveable application i like this thanks NexDM team.

Collapse
 
nexdm2026 profile image
NexDM •

Thanks Guy's for your valuable feedback.

Collapse
 
javed_ansary_93b2a8da53be profile image
Javed Ansary •

Good I try this application its amazing fast and only 4MB size its true alternative of IDM. I really like this application and 🖕

Collapse
 
nexdm2026 profile image
NexDM •

Thanks Guy's for your valuable feedback.

Collapse
 
farjana_khatoon_fead2e304 profile image
Farjana Khatoon •

Thanks for this application and we are appreciated you and your application

Collapse
 
nexdm2026 profile image
NexDM •

Thanks Guy's for your valuable feedback.

Collapse
 
help_ker_f6bd330793f0b5e2 profile image
Help Ker •

i tried yes its very powerful and size only 4MB and 100% amazing. I love this application.

Collapse
 
nexdm2026 profile image
NexDM •

Thanks Guy's for your valuable feedback.

Collapse
 
javed_ansary_93b2a8da53be profile image
Javed Ansary •

I try this application 64 segments for big file very good performance