frontpage.
newsnewestaskshowjobs

Open Source @Github

fp.

Open in hackernews

Show HN: Swath – parallel S3 listing without knowing the key distribution

https://github.com/varveio/swath
1•sagiba•1h ago

Comments

sagiba•1h ago
Hi HN, I'm Sagi, founder of Varve (https://varve.io). For the past few months I've been working with S3 buckets in the Registry of Open Data on AWS. Some of them are enormous, with many billions of objects, and don't have a public inventory. Listing them serially with the AWS CLI would have taken days, or sometimes weeks, and if the process fails in the middle it's not always easy to resume from the right place without losing data.

I tested a bunch of existing tools that list S3 buckets in parallel (s3-fast-list, s3p, s7cmd and others). Each of them worked well in particular cases and crashed hard in others.

The challenge here is that S3 lists keys serially: you get the continuation token for page N+1 from page N, and each page contains up to 1000 keys. There's no API that tells you how many keys exist between two points, so you can't divide the keyspace evenly up front. The most common naive approach is to list each prefix individually, but this only works well for buckets that have a uniform key distribution. Another creative technique is using recursive bisection, that is, generating synthetic midpoint keys between two known keys.

Swath was born by researching how existing parallel listers work: the algorithms they use for splitting the keyspace, when they work well and when they fail, and then synthesizing those findings into a new architecture that combines those techniques into something that works well on most bucket shapes out of the box. Swath combines prefix seeding with adaptive work stealing, using observed density, structure probes and bounded bisection to place splits.

Swath also has a lot of operational goodies like crash-safe checkpoint and resume, very detailed metrics and the ability to write its output in JSONL/TSV/Parquet formats. It also supports producing globally sorted Parquet output. There's also a replay server that can take those sorted outputs and serve them back in an S3-compatible API, allowing testing of Swath and other tools against pathological buckets locally without hitting S3 again.

Swath was also an experiment in how far I could push AI-assisted development on systems code. Everything about its development was AI-driven, from the initial study of the existing tools and their shortcomings, through designing the new architecture and implementing it, to iterating in a loop and testing against hundreds of buckets, fine-tuning the algorithm until it handled any bucket that I threw at it. I'm thinking about writing more about the process and maybe releasing some of the transcripts and internal development notes later if this is of interest.

This is the first public release of Swath. I'm sure it's not perfect yet but I trust the list and resume paths enough to put them in other people's hands. I'm most interested in buckets that break it. If you run it on a large or unusual bucket and it doesn't do well, I'd love to hear about it.

Seven books I keep close because I love them

https://blog.plover.com/book/elbow-shelf.html
1•Brajeshwar•2m ago•0 comments

The Deleted Face: Why Facial Recognition Must Erase You First

https://smarterarticles.co.uk/the-deleted-face-why-facial-recognition-must-erase-you-first
1•dxs•2m ago•0 comments

Text and Test Anything Protocol

http://dtap.sparrowhub.io/doc/README
1•melezhik•3m ago•0 comments

The Mental Models I Use to Work with AI

https://metedata.substack.com/p/015-the-mental-models-i-use-to-work
1•young_mete•4m ago•0 comments

Fix Your Analog Life First

https://katherinemartinko.substack.com/p/fix-your-analog-life-first
1•speckx•5m ago•0 comments

Quantization hurts knowledge nonlinearly – Qwen3.6 27B case study

https://quesma.com/blog/quantization-hurts-knowledge/
1•stared•5m ago•0 comments

WAN 3.0 Deep Dive: Video Model Evolution from Open-Source Breakthrough

https://wan3video.art/blog/wan-3-0-deep-dive
2•wangneo276•6m ago•0 comments

How the heck do you catch a fly ball?

https://perthirtysix.com/how-the-heck-do-you-catch-a-fly-ball
1•robmoore•7m ago•0 comments

Europe opens bidding for seven AI 'gigafactories' in a €30B bid to catch up

https://thenextweb.com/news/eu-ai-gigafactories-call-30bn
1•doener•7m ago•0 comments

Show HN: Lunar, a "fast", memory-efficient Lua 5.1 VM written in Go

https://github.com/mmcdole/lunar
2•drakenot•9m ago•1 comments

My Personal Software Journey: Self-Hosting Agent-Built Apps

https://metedata.substack.com/p/016-my-personal-software-journey
2•young_mete•9m ago•0 comments

Why does Mail app contact iCloud when sending a non-iCloud email?

https://lapcatsoftware.com/articles/2026/8/2.html
2•cdrnsf•9m ago•0 comments

NASA's New 3D Model Shows the Earth Is a Lumpy Mess

https://www.wired.com/story/nasas-new-3d-model-shows-lumpy-earth/
1•haritha-j•10m ago•0 comments

Google plans to exempt sanctioned nations from Android developer verification

https://arstechnica.com/gadgets/2026/07/google-plans-to-exempt-sanctioned-nations-from-android-de...
2•nostrademons•12m ago•0 comments

IBM: Three Demonstrations Prove Quantum Advantage Has Been Reached

https://www.nextplatform.com/compute/2026/07/31/ibm-three-demonstrations-prove-quantum-advantage-...
1•rbanffy•12m ago•0 comments

A 21-hour dip could help explain Tabby's star's decade-long dimming mystery

https://phys.org/news/2026-07-hour-dip-tabby-star-decade.html
1•rbanffy•13m ago•0 comments

Restoring the Java Ring on a Japanese TV Show [video]

https://www.youtube.com/watch?v=LF5PrzP9YTs
1•kidmin•13m ago•0 comments

Show HN: jit - just-in-time secrets for your Mac, gated by Touch ID

https://github.com/jitpass/jit
1•bukershok•14m ago•1 comments

Sovereign Tech Fellowship for Rust Maintenance (June-July 2026 Report)

https://kobzol.github.io/rust/2026/08/03/stf-june-july-2026.html
1•Tomte•15m ago•0 comments

Dbctl – a terminal-native DB client with built-in SSH/SSM tunneling

https://github.com/stivio00/dbctl
1•stivio00•15m ago•0 comments

Transfer Files with QR Codes

https://decimen.app/
1•ramsj•17m ago•0 comments

Hank Green apologizes for relying too heavily on ChatGPT

https://mashable.com/life/hank-green-chatgpt-ai-apology
1•bjourne•18m ago•0 comments

Google Chrome may soon block New Tab hijacker extensions by default

https://www.bleepingcomputer.com/news/google/google-chrome-may-soon-block-new-tab-hijacker-extens...
2•Brajeshwar•18m ago•0 comments

3.2-Gigapixel LSST Camera Captures over Half a Million Galaxies

https://petapixel.com/2026/08/02/3-2-gigapixel-lsst-camera-captures-over-half-a-million-galaxies/
2•larodi•18m ago•1 comments

eek! it's a tiny rust LLM proxy in ~1k loc

https://github.com/Liana64/eek
1•saidarembrace•18m ago•1 comments

A quine in Piet – a GIF image that prints itself [video]

https://www.youtube.com/watch?v=GwMtzhjCzyc
1•surprisetalk•18m ago•0 comments

DARPA Lift Challenge – Aug 3 – Main Broadcast [video]

https://www.youtube.com/watch?v=KEGWvve7rls
1•stefan_•20m ago•0 comments

AUR malware wave forces Arch Linux to disable every package push

https://runtimewire.com/article/aur-malware-wave-forces-arch-linux-to-disable-every-package-push
3•ryanmerket•20m ago•0 comments

PostScript: Idle Frontier and on developing games with AI

https://ljvmiranda921.github.io/projects/2026/08/03/idle-frontier/
1•ljvmiranda•21m ago•1 comments

Installing Jcode on Nix/NixOS: A Practical Unofficial Guide

https://grigio.org/installing-jcode-on-nix-nixos-a-practical-unofficial-guide/
1•grigio•21m ago•0 comments