gitwtfhub

wtf is demandmap?

sonthonaxrk/demandmap — explained in plain English

Analysis updated 2026-05-18

26RustAudience · developerComplexity · 4/5Setup · moderate

TL;DR

A Rust tool that lets you read very large numeric arrays stored on S3 by lazily downloading and caching only the small pieces you actually access.

Mindmap

mindmap
  root((demandmap))
    What it does
      Lazy S3 array access
      Userfaulting memory
      Local disk cache
    Tech stack
      Rust
      Python via maturin
      Amazon S3
    Use cases
      Probe remote data
      Skip full downloads
      Fast repeated reads
    Audience
      Developers
      Data engineers

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Why would anyone build with this?

REASON 1

Read a slice of a huge numeric array stored on S3 without downloading the whole file first.

REASON 2

Combine multiple large remote array files into a data table in about 100 milliseconds.

REASON 3

Cache downloaded chunks locally so repeated runs or restarts skip re-downloading the same data.

What's in the stack?

RustPythonMaturinS3

How it stacks up

sonthonaxrk/demandmapgeekgineer/needle-rsipetkov/conch-runtime
Stars262626
LanguageRustRustRust
Last pushed2021-05-24
MaintenanceDormant
Setup difficultymoderatemoderatemoderate
Complexity4/54/52/5
Audiencedeveloperdeveloperdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you spin it up?

Difficulty · moderate Time to first run · 30min

Only supports macOS today, Linux and Windows userfaulting support is unfinished.

Wtf does this do

Demandmap is a Rust based tool for working with very large numeric arrays stored in cloud storage, specifically Amazon S3 or S3 compatible services, without downloading the whole file first. Normally, to read a big array of numbers stored remotely, you have to download the entire file to your computer before you can use any of it. Demandmap avoids that by using a low level operating system feature called userfaulting, which lets the program pretend a large chunk of memory already exists and only fetch the real data from the network the moment your code actually tries to read a specific part of it. As you read through the array, Demandmap quietly downloads just the pieces you touch, in small chunks, and saves those chunks to a local cache file on disk. Repeated reads of the same data, or restarting the program later, are then fast because the pieces are already cached locally instead of being re-downloaded. The README shows an example using two large numeric files, each over 400 megabytes, being loaded and combined into a table with tens of millions of rows in about 100 milliseconds, because only the small pieces actually needed were pulled over the network. The project exposes both a Python interface, built with a tool called maturin that connects Rust code to Python, and a native Rust interface for programs written directly in Rust. The Python demo installs a few packages, builds the Rust extension, and runs a script that fetches and reads remote array data as if it were a normal local array. The author is upfront that this is an early, rough project, not ready for production use, and that it currently only works on macOS. Support for Linux and Windows, proper error and signal handling, and other caching options are listed as still unfinished.

Yoink these prompts

Prompt 1
Show me how to install and run the demandmap Python demo against my own S3 bucket.
Prompt 2
Explain how userfaulting lets demandmap avoid downloading a full array file.
Prompt 3
Write a Rust program that reads a specific byte range from an S3 file using demandmap's callback_buffer API.
Prompt 4
List what platforms demandmap currently supports and what is still missing.

Frequently asked questions

wtf is demandmap?

A Rust tool that lets you read very large numeric arrays stored on S3 by lazily downloading and caching only the small pieces you actually access.

What language is demandmap written in?

Mainly Rust. The stack also includes Rust, Python, Maturin.

How hard is demandmap to set up?

Setup difficulty is rated moderate, with roughly 30min to a first successful run.

Who is demandmap for?

Mainly developer.

View the repo → Decode another repo

This repo across BitVibe Labs

Don't trust strangers blindly. Verify against the repo.