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...
For further actions, you may consider blocking this person and/or reporting abuse
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?
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).
Great questions! Both hit right at the core of real-world network resilience:
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.
Handling Stale Connections & Dropouts (e.g. Net drops for an hour)
Our resilience strategy relies on persistent byte-level journaling and validation guards:
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.
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.
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.
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.
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.
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!
@xulingfeng See, I do release things eventually 🙄 Still WIP, but it's something, I'll get started on the Resume tool 😁
Must download and try
Thanks and i appreciate your hard work and free.
Thanks Guy's for your valuable feedback.
I try and its best from FDM or other free download manager
Thanks Guy's for your valuable feedback.
Thanks NexDM Team
good very good i love this
Thanks Guy's for your valuable feedback.
Good i was searching this loveable application i like this thanks NexDM team.
Thanks Guy's for your valuable feedback.
Good I try this application its amazing fast and only 4MB size its true alternative of IDM. I really like this application and 🖕
Thanks Guy's for your valuable feedback.
Thanks for this application and we are appreciated you and your application
Thanks Guy's for your valuable feedback.
i tried yes its very powerful and size only 4MB and 100% amazing. I love this application.
Thanks Guy's for your valuable feedback.
I try this application 64 segments for big file very good performance