Launched this week

CSV Deduper
100% Private B2B CSV Lead List Cleaner via Telegram
14 followers
100% Private B2B CSV Lead List Cleaner via Telegram
14 followers
Ultra-fast B2B CSV Deduper & Lead List Cleaner built on Rust + WebAssembly.

14 followers
14 followers
Hey Hunters! 👋
I built this tool because I was tired of uploading sensitive lead lists and B2B data backups to random websites just to clean duplicates.
This is a Telegram Mini App powered by pure Rust + WebAssembly.
Why use it?
• 100% Private: Zero backend. Processing happens strictly inside your device's WebView. Your data never leaves your chat.
• Blazing Fast: Thanks to Rust compilation, it handles large CSV files easily on the fly without lagging your phone.
• No Signup: Launch right inside Telegram and clean your files in seconds.
I'd love to hear your feedback on the performance and UI. Give it a spin at t.me/csv_deduper_bot
The Rust + WebAssembly combo here is a smart call for something crunching huge CSVs, makes the whole thing feel instant instead of dragging. Curious how you handled memory for those massive lead lists under the hood.
@savayldzcwyzm Thanks for checking it out, Savaş!
Memory management is exactly why we went with Rust here. Under the hood, we don't load or materialize the entire massive CSV file or string into memory.
Instead, we stream the data using csv::ReaderBuilder and process records line-by-line via a single loop iteration. To keep memory consumption at an absolute minimum, our IndexSet stores only unique dedup keys (hashes/strings) rather than full CSV lines.
For whole-row comparison, we join fields using an ASCII Unit Separator (\u{1F}) to avoid collisions without allocations overhead. If a specific column like "email" is picked, only that trimmed field is kept in the unique set.
This keeps the memory footprint tight and deterministic even within a constrained mobile WebView container. Try throwing a nasty file at it!
the rust + wasm choice is genuinely smart for something like this, processing lead lists client-side without round trips to a server just feels right. curious how you handle the larger files though.
@zehra38pu Thanks, Zehra! Client-side processing via WASM is our core feature for total privacy.
For larger files, we stream the data line-by-line using buffered readers, so we never load the whole file into the browser memory at once. Memory footprint stays tight and deterministic. Appreciate your support!
Cleaned a messy 50k row lead list in seconds right in the browser, no upload needed. The Rust + WASM combo really shows, it handled fuzzy matches way better than the spreadsheets I usually fight with.
@ykbeyhanljbp Thanks for the feedback, Öykü! Glad to hear it saved you from spreadsheet hell.
You're exactly right — running the Rust engine directly inside the browser via WebAssembly is what allows us to analyze massive datasets instantly without any UI lag.
Appreciate your support and glad the performance met your expectations
Handled a messy 50k row list in seconds and the Rust + WASM combo really does feel snappy compared to my old Python scripts. Wish I'd found this sooner.
@sultansr23 Thanks, Sultan! Python is great, but compiled Rust to WebAssembly brings that raw native speed straight into the browser container. Glad it felt snappy and saved you some time. Appreciate the support
Rust + WASM for CSV deduping is a smart stack choice and it actually feels snappy on big lists. The matching options are straightforward without burying you in settings.
@cansel812054 Thanks for the support, Cansel! Keeping the UI clean and the settings straightforward was a priority. Glad you found the matching modes simple and the Rust/WASM core responsive on large datasets.
Was skeptical about wasm doing dedup fast but this actually chewed through a messy 50k row export in seconds. Nice work.
@tuncaybalnqnxd Thanks for the support, Tuncay! Compiled Rust to WebAssembly allows us to bypass the usual browser performance bottlenecks. Glad the 50k row processing speed met your expectations!