HN user

markyg

116 karma
Posts7
Comments7
View on HN
[dead] 6 months ago

I'm building a desktop app in Tauri (Rust + SvelteKit) and ran into a brutal performance wall when a beta tester tried to import 120,000 files. The app froze for 47 seconds.

The problem was straightforward in hindsight: I was sending all scanned files across Tauri's IPC bridge. ~70MB of JSON each way, UI thread blocked, user assumes crash.

Streaming in chunks helped responsiveness but killed throughput (8s scan → 45s with IPC overhead). The real fix was asking: does the frontend actually need this data?

It didn't. The frontend needed a summary—file counts, type breakdown, detected packages. The actual file list could stay in Rust, referenced by UUID, and never cross the bridge at all.

Result: 8 seconds with live progress, 70MB less memory, and a "send to background" feature so users can keep working during long scans.

The write-up covers the naive approach, the failed streaming attempt, the cache pattern that worked, and a subtle race condition I introduced when implementing background scanning.

I see this question pop up a lot, so I figured I'd just write down where I actually get my assets from.

Been collecting stuff for years.. 3D models, sprites, audio, textures, and these are the places I keep going back to. Tried to include the pros and cons of each since not all "free" is created equal.

https://assethoard.com/blog/where-to-find-free-game-assets-2...

Covers itch.io, OpenGameArt, Kenney, Poly Pizza, Freesound, and a bunch of others. Also got into the different Creative Commons licences because that trips people up (myself included).

Happy to add any I've missed if you've got favourites.

Hey HN,

I've been building games on the side for a few years and got fed up with the asset chaos. Unity packages I bought and forgot about, Blender models scattered across folders, sprite sheets from bundles I never unpacked. I'd spend ages hunting for something I knew I had, or worse, buy it twice.

So I built Asset Hoard. It's a desktop app that gives you one searchable library for all your game dev assets. Runs locally, no account required, your files stay on your machine.

Built with Tauri, Svelte, and SQLite. Supports 40+ file types with visual previews: 3D models (.fbx, .obj, .gltf, .blend), sprites with animations (.aseprite, .krita), audio with waveforms, textures. You can inspect Unity .unitypackage and Godot assets without importing them.

It's free during beta. Looking for feedback from anyone who's got a mess of assets they'd like to organise.

Site: https://assethoard.com

Happy to answer questions about the tech stack or the product.

A Neovim plugin to mark files and quickly access them, inspired by Harpoon and Lasso.

You can navigate in normal mode:

<leader>da - Add current file to marks <leader>dr - Remove current file from marks <leader>dl - List marked files in Telescope <leader>dc - Clear all marks <leader>1 through <leader>5 - Go to mark by index

And while in telescope

Press Ctrl-v to open in vertical split Press Ctrl-x to open in horizontal split Press Ctrl-d to remove the selected file from the list Press Ctrl-k to move the selected file up in the list Press Ctrl-j to move the selected file down in the list

I've got a browser based notepad using local storage as the key:value store. I needed a way to 'open notes' and in turn create various tabs, etc.

HTML wasn't an option in something so dynamic.

I guess all I'm saying is, there are use-cases where it's fine

el was shorthand for element. I wasn't aware of laconic until after I wrote this... I'm simply learning javascript and thought this would be a nice way to do it..

Online Word Counter 16 years ago

Thanks, its something I knocked up in a day.

The plan is to make a Natural Language Engine, giving you all sorts of interesting facts about your block of text.

I didn't think of doing a history of all text, thats actually a really cool idea! I'll have a bit of a think about how to implement this in a nice way.

What you see is the first step to hopefully something that I can grow over time.